Catalog Course Descriptions
See below for the catalog descriptions of CSci undergraduate and graduate classes. Relevant Engr graduate level courses are also listed.
The first digit of the course number more or less gives the year-level of the course in the curriculum. Courses numbered in the range 100-499 are undergraduate courses. Courses in the 500-599 range are available for both undergraduate and graduate students. Courses 600 and above are graduate courses.
Visit the University’s main catalog to read descriptions of all University courses.
Computer Science Courses
CSci 103: Survey of Computing
Introduction to computers and computing for students with no prior computer experience.
(Not to be used to satisfy computer science major requirements).
3 Credits
PREREQUISITES
Course cannot be booked if completed one of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 103
Lecture: Web based lecture for CSci 103
Lecture: iStudy for CSci 103
Lecture: Independent Study for CSci 103
Lecture: WEB Washington Internship for CSci 103
COURSE FEE(S)
Computer Science 4
$100.00 per 3 Semester Credit Hours
Online, Internet, or Web-based
Students may be required to pay additional fees to an outside vendor for identity verification prior to a proctored assessment.
$100.00 per 3 Semester Credit Hours
Catalog
CSci 111: Computer Science I
Introduction to computer science with emphasis on problem solving and algorithm development. Using high-level, block-structured programming language, students design, implement, debug, test, and document computer programs for various applications.
3 Credits
PREREQUISITES
One of the following: Minimum Math ACT score of 22 | Math 121 or above | ALEKS PPL score of 61
Engineering Majors Only.
CROSS-LISTED COURSES
CIS 111: Computer Science I
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for CSci 111
Catalog
CIS 111: Computer Science I
Introduction to computer science with emphasis on problem solving and algorithm development. Using high-level, block-structured programming language, students design, implement, debug, test, and document computer programs for various applications.
3 Credits
PREREQUISITES
One of the following: Minimum Math ACT score of 22 | Math 121 or above | ALEKS PPL score of 61
Non-engineering Majors Only.
CROSS-LISTED COURSES
CSci 111: Computer Science I
COURSE FEE(S)
Computer Science 5
$75.00
Catalog
CSci 112: Computer Science II
Continuation of CSci 111 with emphasis on computer programming as a systematic discipline. The topics include data structures, abstract data types, algorithm design and analysis, and programming methods and standards.
3 Credits
PREREQUISITES
One of the following: CSci 111/CIS 111 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: C-)
Engineering students only.
CROSS-LISTED COURSES
CIS 112: Computer Science II
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for CSci 112
Catalog
CIS 112: Computer Science II
Continuation of CSci 111 with emphasis on computer programming as a systematic discipline. The topics include data structures, abstract data types, algorithm design and analysis, and programming methods and standards.
3 Credits
PREREQUISITES
One of the following: CSci 111/CIS 111 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: C-)
CROSS-LISTED COURSES
CSci 112: Computer Science II
COURSE FEE(S)
Computer Science 5
$75.00
Catalog
CSci 113: Honors Computer Science I
Introduction to computer science with an emphasis on problem solving and algorithm development. Using high-level, block-structured programming language, students will design, implement, debug, test, and document computer programs. In addition, topics related to data structures, abstract data types, algorithm design and analysis will also be emphasized.
3 Credits
PREREQUISITES
Limited to students in the Sally McDonnell Barksdale Honors College
One of the following: Minimum Math ACT score of 22 | Math 121 or above
Engineering students only.
CROSS-LISTED COURSES
CIS 113: Honors Computer Science I
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 113
Catalog
CIS 113: Honors Computer Science I
Introduction to computer science with an emphasis on problem solving and algorithm development. Using high-level, block-structured programming language, students will design, implement, debug, test, and document computer programs. In addition, topics related to data structures, abstract data types, algorithm design and analysis will also be emphasized.
3 Credits
PREREQUISITES
Limited to students in the Sally McDonnell Barksdale Honors College
One of the following: Minimum Math ACT score of 22 | Math 121 or above
CROSS-LISTED COURSES
CSci 113: Honors Computer Science I
COURSE FEE(S)
Computer Science 5
$75.00
Catalog
CSci 191: Office Applications
Introduction to the use of computers with emphasis on the Windows platform and the Microsoft Office suite of application tools. (Not to be used to satisfy computer science major requirements).
3 Credits
PREREQUISITES
Course cannot be booked if completed one of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 191
Lecture: Web Based Lecture for CSci 191
Lecture: iStudy for CSci 191
Lecture: WEB Washington Internship for CSci 191
COURSE FEE(S)
Computer Science 4
$100.00 per 3 Semester Credit Hours
Online, Internet, or Web-based
Students may be required to pay additional fees to an outside vendor for identity verification prior to a proctored assessment.
$100.00 per 3 Semester Credit Hours
Catalog
CSci 192: Computing Applications
Introduction to the use of computers with emphasis on the Windows platform and the WordPerfect suite of application tools. (Not to be used to satisfy computer science major requirements).
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 192
Catalog
CSci 193: Personal Computer Systems
Study of the hardware and software components of personal computer systems for experienced computer users. (Not to be used to satisfy computer science major requirements).
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 193
Catalog
CSci 203: Introduction to Computational Media
This course introduces computing and programming with emphasis on interactive media, including graphics, images, animation, and sound. It explores core computing concepts such as variables, conditionals, loops, functions, objects, arrays, and algorithms
3 Credits
PREREQUISITES
One of the following: Minimum Math ACT score of 22 | Math 121 or above
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 203
Lecture: Web-based Lecture for CSci 203
COURSE FEE(S)
Computer & Info Science 4
$125.00
Online, Internet, or Web-based
Students may be required to pay additional fees to an outside vendor for identity verification prior to a proctored assessment.
$100.00 per 3 Semester Credit Hours
Catalog
CSci 211: Computer Science III
Continuation of CSci 112 with emphasis on advanced data structures, algorithm design analysis, advanced programming techniques, and user interfaces.
3 Credits
PREREQUISITES
One of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-)
Engineering students only.
CROSS-LISTED COURSES
CIS 211: Computer Science III
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for CSci 211
Catalog
CIS 211: Computer Science III
Continuation of CSci 112 with emphasis on advanced data structures, algorithm design analysis, advanced programming techniques, and user interfaces.
3 Credits
PREREQUISITES
One of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-)
CROSS-LISTED COURSES
CSci 211: Computer Science III
COURSE FEE(S)
Computer Science 5
$75.00
Catalog
CSci 223: Computer Org and Assembly Language
Introduction to the architecture of computer systems. The topics include processor and external device structures and operation, machine operation, machine operations and instructions, assembly language concepts, and assembly language programming.
3 Credits
PREREQUISITES
Pre-requisite: Csci 112 or CIS 112 (Minimum grade: C-); or Csci 113 or CIS 113 (Minimum grade: B-).
Catalog
CSci 251: Programming for Engineering and Sciences
Algorithm development and structured programming techniques; numerical and graphical applications related to engineering and scientific problem solving.
Corequisite for this course may also be satisfied by consent of instructor.
3 Credits
PREREQUISITES
Engineers students only.
ONE-WAY COREQUISITE
Math 261: Unified Calculus & Analytic Geometry I
CROSS-LISTED COURSES
CIS 251: Programming for Engineering and Sciences
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for CSci 251
Lecture/Lab: Hybrid Lecture/Lab for CSci 251
Lecture/Lab: Web-based Lecture/Lab for CSci 251
COURSE FEE(S)
Online, Internet, or Web-based
Students may be required to pay additional fees to an outside vendor for identity verification prior to a proctored assessment.
$100.00 per 3 Semester Credit Hours
Catalog
CSci 256: Programming in Python
Problem solving, algorithm development, and programming techniques, including applications from a range of disciplines.
3 Credits
PREREQUISITES
One of the following: Minimum Math ACT score of 22 | Math 121 or above | ALEKS PPL score of 61
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 256
Catalog
CSci 259: Programming in C++
Study of programming in the language C++, covering character processing; use of pointers with strings, arrays and functions; data structures; bitwise operators.
3 Credits
PREREQUISITES
One of the following: Minimum Math ACT score of 22 | Math 121 or above | ALEKS PPL score of 61
One of the following: CSci 111 | CSci 251
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 259
Lecture: Hybrid Lecture for CSci 259
Catalog
CSci 300: Social Responsibility in Computer Science
CSci 305: Software for Global Use
CSci 311: Models of Computation
Introduction to the theoretical foundations of computer science, including automata and formal languages.
3 Credits
PREREQUISITES
One of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-)
24 Earned Hours
ONE-WAY COREQUISITES
Math 301: Discrete Mathematics
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 311
Lecture: Hybrid Lecture for CSci 311
Catalog
CSci 323: Systems of Programming
Study of a contemporary operating system and its set of tools from the perspective of software professionals and system administrators. The course analyzes the system components and their interactions, the tool environment, and system administration issues such as configuration, installation, networking, security, and performance tuning.
3 Credits
PREREQUISITES
One of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-)
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 323
Catalog
CSci 325: Foundations of Computer Security
This course covers fundamental tools and concepts of computer security. Topics include symmetric and asymmetric cryptography, cryptographic hashing, basic security principles, and legal and ethical issues.
3 Credits
PREREQUISITES
CSci 223: Computer Org. & Assembly Language (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 325
Catalog
CSci 333: Digital Design and 3D Printing
This course introduces the principles and methods for computer-aided design of objects that can be rendered effectively on 3D printers. It surveys the design techniques and the hardware and software technologies in 3D printing workflows. Students create designs and render them on 3D printers.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 251/CIS 251 | CSci 256
Engineering students only.
CROSS-LISTED COURSES
CIS 333: Digital Design and 3D Printing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 333
Catalog
CIS 333: Digital Design and 3D Printing
This course introduces the principles and methods for computer-aided design of objects that can be rendered effectively on 3D printers. It surveys the design techniques and the hardware and software technologies in 3D printing workflows. Students create designs and render them on 3D printers.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 251/CIS 251 | CSci 256
CROSS-LISTED COURSES
CSci 333: Digital Design and 3D Printing
COURSE FEE(S)
Computer Science
$50.00
Catalog
CSci 343: Fundamentals of Data Science
Data science is the study of discovering knowledge from data. This course explores the field using a broad perspective. Topics include data collection and integration, exploratory data analysis, descriptive statistics, prediction, and regression, and evaluating and communicating results. Significant programming is required.
3 Credits
PREREQUISITES
One of the following: CSci 112/CIS 112 | CSci 251/CIS 251 | CSci 256 | CSci 113/CIS 113 (Minimum grade: B-)
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 343
Catalog
CSci 345: Information Storage and Retrieval
Examination of systems for storage and retrieval of information in textual and other formats. The topics include query processing, matching and ranking algorithms, text analysis, user interfaces, and evaluation of retrieval effectiveness.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 345
Catalog
CSci 353: Introduction to Numerical Methods
This course provides an overview of numerical methods and optimization techniques, laying the foundation for advanced studies in machine learning, data science, and related engineering disciplines. It covers
fundamental concepts like numerical errors and algorithm efficiency, delves into topics like interpolation, integration techniques, and matrix factorization, and explores various computational topics
essential for data science and engineering.
3 Credits
PREREQUISITES
Math 263: Unified Calculus & Analytic Geometry III or Math 319: Linear Algebra
One of the following: CSci 111/CIS 111 | CSci 113/CIS 113 | CSci 251/CIS 251 | CSci 256 | CSci 259 (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 353
Catalog
CSci 354: Web Programming
This course introduces programming for the World Wide Web. Topics include development principles and practice with current Web development tools such as HTML5, CSS, JavaScript, jQuery, Ajax, JSON, and PHP.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 354
Lecture: Web-based Lecture for CSci 354
Catalog
CSci 356: Data Structures in Python
This course will introduce data structures and their application using the Python programming language. Abstract data types for stack, queue, various lists, trees and graphs will be studied. Built-in data structures such as lists, dictionaries, and tuples will be used extensively.
3 Credits
PREREQUISITES
One of the following: CSci 112/CIS 112 (Minimum grade: C-) | CSci 113/CIS 113 (Minimum grade: B-) | CSci 256 (Minimum grade: C-)
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 356
Lecture: Web-based Lecture for CSci 356
Catalog
CSci 361: Introduction to Computer Networks
Analysis of loosely coupled computer communication protocols and network services. A generic network model is presented and compared to selected examples of computer networks including the Internet TCP/IP and Internet-based applications.
3 Credits
PREREQUISITES
One of the following: CSci 223 | El E 235
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 361
Catalog
CSci 387: Software Design and Development
Study of techniques for the construction of large, complex software systems, including project management, requirements analysis, specification, design, development, testing, documentation, deployment, and maintenance. Students develop software systems in a group structure that simulates an industrial setting.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 (Minimum grade: C-)
CSci 223: Computer Org. & Assembly Language (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 387
Catalog
CSci 390: Special Topics in Programming
CSci 391: Computer Graphics
Introduction to the fundamentals of computer graphics, including elementary figures, shading, geometric transformations, graphics program design, and interactive techniques.
3 Credits
PREREQUISITES
Math 262: Unified Calculus & Analytic Geometry II
One of the following: CSci 211/CIS 211
CSci 223: Computer Org. & Assembly Language
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 391
Catalog
CSci 405: Computer Simulation
Introduction to computer-based simulation and its applications to engineering, the sciences, and management.
3 Credits
PREREQUISITES
Math 262: Unified Calculus & Analytic Geometry II
One of the following: CSci 211/CIS 211
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 405
Catalog
CSci 423: Introduction to Operating Systems
Study of the basic concepts of operating systems, including user interfaces, process management, state saving, interprocess communication, input/output, device drivers, timing services, memory management, file management, and system abstractions.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 (Minimum grade: C-) | CSci 356 (Minimum grade: C-)
One of the following: CSci 223 (Minimum grade: C-) | El E 385 (Minimum grade: C-)
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 423
Catalog
CSci 426: System Security
This course covers the fundamentals of computer security with an emphasis on computer systems security. Areas covered include operating system security mechanisms, access control models, and other relevant topics.
3 Credits
PREREQUISITES
CSci 325: Foundations of Computer Security (Minimum grade: C-)
CSci 423: Introduction to Operating Systems (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 426
Catalog
CSci 427: Network Security
This course explores the concepts and methods of computer security with an emphasis on network security and the appropriate tools to identify and remedy vulnerabilities across leading network platforms. It emphasizes both offensive and defensive analysis tools, including scanners, sniffers, intrusion detection systems, and firewalls.
3 Credits
PREREQUISITES
CSci 325: Foundations of Computer Security (Minimum grade: C-)
CSci 361: Introduction to Computer Networks (Minimum grade: C-)
Engineering students only.
24 Earned Hours
CROSS-LISTED COURSES
CIS 427: Network Security
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 427
Catalog
CIS 427: Network Security
This course explores the concepts and methods of computer security with an emphasis on network security and the appropriate tools to identify and remedy vulnerabilities across leading network platforms. It emphasizes both offensive and defensive analysis tools, including scanners, sniffers, intrusion detection systems, and firewalls.
3 Credits
PREREQUISITES
CSci 325: Foundations of Computer Security (Minimum grade: C-)
CSci 361: Introduction to Computer Networks (Minimum grade: C-)
24 or more earned hours
CROSS-LISTED COURSES
CSci 427: Network Security
COURSE FEE(S)
Computer Science 4
$100.00
Catalog
CSci 431: Robotics Programming
The goal of this course is to provide students hands-on experience in the design, construction, and programming of robots that are driven by micro-controllers (e.g., LEGO EV3 mobile robots). Upon completion of this course, students should be able to develop a robotic system from available modular units; to understand the role of knowledge representation, problem solving, and learning in intelligent-system engineering; and to explain the basic concepts of robotics systems.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211
CSci 223: Computer Org. & Assembly Language
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 431
Catalog
CSci 433: Algorithm and Data Structure Analysis
Study of the design and analysis of algorithms and data structures. The topics include analysis techniques, sorting, searching, advanced data structures, graphs, string matching, and NP-completeness.
3 Credits
PREREQUISITES
Math 301: Discrete Mathematics
One of the following: CSci 211/CIS 211 (Minimum grade: C-) | CSci 356 (Minimum grade: C-)
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 433
Catalog
CSci 443: Advanced Data Science
This course extends the study in CSci 343 to processing and analysis of big data. Topics include machine learning, natural language processing, and data intensive processing techniques such as MapReduce, NoSQL, and other state-of-the-art frameworks.
3 Credits
PREREQUISITES
CSci 343: Fundamentals of Data Science
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 443
Catalog
CSci 444: Information Visualization
This course introduces the principles and methods for data and information visualization. It emphasizes the evaluation of alternative visualizations and the design of presentations that enable people to understand and analyze the information effectively. It addresses a variety of data types, such as quantitative, categorical, topological, geospatial, temporal, and unstructured data, and practical tools for rendering the visualizations.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 444
Catalog
CSci 447: Immersive Media
This course explores the applications, methods, and technologies for the realization of immersive virtual environments. Students will develop virtual reality applications, immersive virtual worlds, and interactive media. Topics include virtual reality, augmented reality, 3-D content authoring, motion tracking, and current trends in immersive media.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343
Engineering students only.
24 Earned Hours
CROSS-LISTED COURSES
CIS 447: Immersive Media
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 447
Catalog
CIS 447: Immersive Media
This course explores the applications, methods, and technologies for the realization of immersive virtual environments. Students will develop virtual reality applications, immersive virtual worlds, and interactive media. Topics include virtual reality, augmented reality, 3D content authoring, motion tracking, and current trends in immersive media.
3 Credits
PREREQUISITES
One of the Following: CSci 211/CIS 211 | CSci 343
24 Earned Hours
CROSS-LISTED COURSES
CSci 447: Immersive Media
COURSE FEE(S)
Computer Science
$50.00
Catalog
CSci 450: Organization of Programming Languages
History and concepts of programming languages; run-time behavior; formal aspects; language definition; data types and structures; control; and data flow, compilation, and interpretation.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 (Minimum grade: C-)
CSci 223: Computer Org. & Assembly Language (Minimum grade: C-)
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 450
Lecture: Web-based Lecture for CSci 450
Catalog
CSci 458: Mobile Application Development
This course introduces the design and development of cross-platform mobile applications, focusing on effective design for mobile and desktop browsers and conversion to native applications for common mobile devices, such as Android and iOS. Topics include user interface design, event handling, application programming interfaces (APIs) for accessing hardware components (e.g., GPS, camera, accelerometer), and developing for restricted resources, such as power, memory, and network speed.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 458
Catalog
CSci 475: Introduction to Database Systems
This course introduces database systems covering basic concepts and best practices. Topics include data models (e.g., relational, object- oriented, NoSQL), normalization, SQL, security and privacy, current trends in data management, and web-to-database application programming.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343
24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 475
Catalog
CSci 487: Senior Project
Each student conducts an in-depth study of a current problem in computer science or related area. Upon completion, the student presents the results in both oral and written form.
3 Credits
PREREQUISITES
6 Hours of CSci 300 or above (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 487
Catalog
CSci 490: Special Topics
Study of topics in computer science according to the interests of the instructor and students. May be repeated for credit when the topic varies.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211
CSci 223: Computer Org. & Assembly Language
24 Earned Hours
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for CSci 490
Individual Based: Web based Individual Based Study for CSci 490
Catalog
CSci 491: Special Topics in Computer Security
Study of topics in computer security according to the interests of the instructor and students. May be repeated for credit when the topic varies.
3 Credits
PREREQUISITES
CSci 325: Foundations of Computer Security (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 491
Catalog
CSci 492: Special Topics in Data Science
Study of topics in data science according to the interests of the instructor and students. May be repeated for credit when the topic varies.
3 Credits
PREREQUISITES
One of the following CSci 211/CIS 211 (Minimum grade: C-) | CSci 343 (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 492
Catalog
CSci 500: Fundamental Concepts in Computing
An intensive study of the formal concepts needed for graduate study in computer science.
3 Credits
PREREQUISITES
Graduate Program Level Only
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 500
Catalog
CSci 501: Fundamental Concepts in Systems
An intensive study of the fundamental concepts of operating system and machine structures and the associated programming techniques.
3 Credits
PREREQUISITES
Graduate Program Level Only
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 501
Catalog
CSci 502: Fundamental Concepts in Algorithms
An intensive study of the fundamental concepts of algorithms and data structures and the associated programming techniques.
3 Credits
PREREQUISITES
Graduate Program Level Only
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 502
Catalog
CSci 503: Fundamental Concepts in Languages
An intensive study of the fundamental concepts of programming languages and the associated software system structures.
3 Credits
PREREQUISITES
Graduate Program Level Only
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 503
Catalog
CSci 517: Natural Language Processing
Computer processing of natural language text at morphological, lexical, syntactic, and semantic levels; algorithms and procedures for sentence parsing and analysis; applications of natural language processing techniques.
3 Credits
PREREQUISITES
One of the following: CSci 211 | CSci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 517
Catalog
CSci 520: Formal Theory of Computer Languages
A detailed study of mathematical models of regular and context-free languages, nondeterministic and deterministic models; closure properties, design algorithms, simplification of grammars.
3 Credits
PREREQUISITES
One of the following: CSci 311 | CSci 500 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 520
Catalog
CSci 521: Computer Systems Engineering
Analysis of computer system components and manufacturing economics, and how they influence design goals, direct architectural development, create hardware/software issues and modify implementation concepts, as well as system and circuit packaging.
3 Credits
PREREQUISITES
One of the following: CSci 423 | CSci 501 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 521
Catalog
CSci 524: Distributed Operating Systems Design
Analysis of operating system design principles for multiple computers; a distributed operating system model is presented and compared to selected network and distributed operating system examples.
3 Credits
PREREQUISITES
One of the following: CSci 423 | CSci 501 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 524
Catalog
CSci 525: Compiler Construction
Introduction to techniques used in current compilers for computer languages; the syntactic specification of programming languages and an introduction to syntax-directed compiling.
3 Credits
PREREQUISITES
One of the following: CSci 311 | CSci 450 | CSci 500 | CSci 503 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 525
Catalog
CSci 526: Parallel Computing
This course explores the conceptual, theoretical, and practical issues raised by developing software for parallel environments and architectures. Students will write several programs using different languages and platforms.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | Graduate Standing
One of the following: CSci 223 | Graduate Standing
One of the following: Junior standing (60 hrs.) | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 526
Catalog
CSci 530: Computer Architecture and Design
This course studies the past evolution and current trends in computer architecture and the factors influencing the design of hardware and software components of computer systems. Topics include processor micro- architecture, instruction set architecture, hardware parallelism, memory subsystems, various processor design paradigms (superscalar, VLIW, multicore, and GPU), and performance analysis.
3 Credits
PREREQUISITES
CSci 223: Computer Org. & Assembly Language
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 530
Catalog
CSci 533: Analysis of Algorithms
Introduction to the analysis of the efficiency of computer algorithms and concepts of computational complexity; sorting, matrix multiplication, others.
3 Credits
PREREQUISITES
One of the following: CSci 433 | CSci 502 | Graduate Standing
Junior standing (60 hrs).
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 533
Catalog
CSci 541: Expert Systems and Logic Programming
Expert systems and knowledge engineering. Computer systems to emulate human expertise. Rule-based and other knowledge representation techniques. Knowledge engineering as a model for expert systems development; logic programming for expert systems implementation.
3 Credits
PREREQUISITES
One of the following : Math 301: Discrete Mathematics | Graduate Standing
One of the following: CSci 211/CIS 211 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 541
Catalog
CSci 543: Data Mining
This course focuses on techniques for analyzing large datasets to identify patterns of information and organize them for use in decision making. The topics include exploratory data analysis, classification, clustering, text mining, web mining, recommender systems, and neural networks as well as advanced topics covering the applications of data mining in cross-cutting domains.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | CSci 343 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 543
Catalog
CSci 547: Digital Image Processing
Present mathematical models for image formation. Introduce statistical, geometric, and inferential methods to extract information from single and multiple images. Discuss applications of computer vision.
3 Credits
PREREQUISITES
One of the following: Math 262: Unified Calculus & Analytic Geometry II | Graduate Standing
One of the following: CSci 211/CIS 211 | CSci 251 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 547
Catalog
CSci 550: Program Semantics and Derivation
A study of formal methods for the specification, derivation, and verification of computer programs. Predicate logic; notations for specification of programs; programming language semantics; calculational techniques for derivation of programs; case studies.
3 Credits
PREREQUISITES
One of the following: Math 301: Discrete Mathematics | Graduate Standing
One of the following: CSci 211/CIS 211 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 550
Catalog
CSci 551: Computer System Performance Analysis
Defining, parameterizing, and evaluating models of computer systems. The emphasis is on applying queuing network models and simulation techniques as tools to evaluate the performance of centralized and distributed computer systems.
3 Credits
PREREQUISITES
One of the following: CSci 423 and Math 375 | CSci 501 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 551
Catalog
CSci 554: Web Architecture and Programming
Study of Web architecture and programming tools. Analysis of public-port protocols such as HTTP, embedded browser languages, browser extensions and interoperability. Server-side Web components, design, tuning, and security. Server components include HTTP, Common Gateway Interface, database engine, and extensions.
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 | Graduate Standing
One of the following: CSci 223 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 554
Catalog
CSci 555: Functional Programming
The principles and techniques of programming with functions. Purely functional programming languages; recursion; higher-order functions; reduction models; strictness; type systems; list operations; infinite data structures; program synthesis and transformation.
3 Credits
PREREQUISITES
One of the following: Math 301: Discrete Mathematics | Graduate Standing
One of the following: CSci 211/CIS 211 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 555
Catalog
CSci 556: Multiparadigm Programming
Principles and practices of software design and programming using languages that feature explicit and convenient support for multiple programming paradigms (e.g., imperative, object-oriented, and functional).
3 Credits
PREREQUISITES
One of the following: CSci 211/CIS 211 and CSCI 223 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 556
Catalog
CSci 557: GPU Computing
This course examines the use of GPU for general-purpose high performance parallel computing. It covers the key principles, practices, and hardware/software architectures for design of general-purpose, parallel programs using GPUs. The course surveys and analyzes real-world applications that benefit from GPUs, and involves hands-on programming as well as performance profiling and analysis. The fundamentals of concurrent programming and its challenges at algorithm and coding levels are also discussed.
3 Credits
PREREQUISITES
One of the following: CSci 211 and CSci 223 | EL E 385 and CSci 356 | Graduate Standing.
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 557
Catalog
CSci 561: Computer Networks
Analysis of loosely coupled computer communication, communication protocols, and network services; an open systems interconnection model is presented and compared to selected examples of computer networks.
3 Credits
PREREQUISITES
One of the following: CSci 423 | CSci 501 | Graduate Standing
Junior standing (60 hrs.) | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 561
Catalog
CSci 562: Software Engineering
Software engineering paradigms, requirement analysis and specification, design of reliable software; data flow, data structure, and object-oriented design methodologies.
3 Credits
PREREQUISITES
One of the following: CSci 387 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 562
Lecture: Compressed Video for CSci 562
Catalog
CSci 575: Database Systems
Review of database systems with special emphasis on data description and manipulation languages; data normalization; functional dependencies; database design; data integrity and security; distributed data processing; design and implementation of a comprehensive project.
3 Credits
PREREQUISITES
One of the following: CSci 423 | CSci 475 | CSci 501 | Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 575
Catalog
CSci 632: Machine Learning
Presents the theory of and algorithms for constructing computer programs that automatically learn from experience. Introduces key concepts from statistics, artificial intelligence, and computational complexity to the design of practical machine learning systems.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 632
Catalog
CSci 658: Software Language Engineering
Study of topics on the design, implementation, use, and evolution of artificial languages for the engineering of software. Languages of interest include general-purpose programming languages, domain-specific languages, and modeling languages as well as application programming interfaces and collections of design patterns that implicitly define languages.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 658
Catalog
CSci 663: Software Families
Study of concepts, methods, patterns, and tools for the analysis, design, and implementation of software families (e.g., software frameworks and software product lines) and other reusable, generic, and flexible programming artifacts.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 663
Catalog
CSci 665: Wireless and Sensor Networks
This course uses wireless and sensor networks as case studies to enable students to understand and analyze loosely coupled computer networks, network protocols, and network services. Building on basic knowledge about wireless and sensor networks, the course explores recent research on related topics. Students learn to use appropriate embedded programming languages (e.g., nesC) and operating system platforms (e.g., TinyOS) to develop embedded and network programs. Students also learn to design and implement mote-based wireless and sensor network systems by completing a series of programming projects (e.g., multiple access control, multi-hop routing, and data collection from sensors).
3 Credits
PREREQUISITES
CSci 561: Computer Networks
INSTRUCTION TYPE(S)
Lecture: Lecture for CSci 665
Catalog
Engr Courses
Engr 596: Special Projects I
Special topics course or investigation under the direction of Engineering faculty or staff member.
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Junior standing (60 hrs).
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 596
Individual Based: Compressed Video for Engr 596
Individual Based: Study Abroad for Engr 596
Catalog
Engr 597: Special Projects II
Special topics course or investigation under the direction of Engineering faculty or staff member.
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Junior standing (60 hrs).
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 597
Individual Based: Compressed Video for Engr 597
Individual Based: Web based Individual Based Study for Engr 597
Catalog
Engr 598: Special Projects III
Special topics course or investigation under the direction of Engineering faculty or staff member.
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Junior standing (60 hrs).
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 598
Individual Based: Compressed Video for Engr 598
Catalog
Engr 652: Advanced Compiler Design
Investigation into the theory of lexical analysis, syntax-directed translation, type checking, code generation, code optimization, and compiler project coordination.
3 Credits
PREREQUISITES
CSci 525: Compiler Construction
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 652
Catalog
Engr 653: Computer Structures
In-depth study of the upper levels of computer structure (down to the internal register transfer level) including design choices, design needs, and structural variations in organizing processors, memories, I/O devices, controllers, and communication links. An extensive review of several current machines is made.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 653
Catalog
Engr 654: Information Systems Principles
Introduction to the theory and practice related to the development and operation of information systems. Study of database management principles, data management systems, and general purpose software for data management systems. System and performance evaluation.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 654
Catalog
Engr 656: Operating Systems Design Concepts
Introduction to the theory and practice related to the development and operation of information systems. Study of database management principles, data management systems, and general purpose software for data management systems. System and performance evaluation.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 654
Catalog
Engr 657: Timesharing Computer Systems
A study of the major design goals, implementation concepts and mechanisms of timesharing systems, including motivation for the development of timesharing systems and discussions of the hardware/software concepts important to timesharing system implementation.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 657
Catalog
Engr 659: Advanced Information Retrieval
Theoretical aspects of information retrieval. Comparison and evaluation of techniques for enhancement of recall and precision performance. Design of user/system interface; applications of natural language processing. Experimental and intelligent information retrieval systems.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 659
Catalog
Engr 660: Software Engineering II
Software quality assurance, software testing techniques, software testing strategies, software maintenance, and configuration management.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 660
Catalog
Engr 661: Computer Networks II
Continued analysis of loosely coupled computer communication, constraints on intercomputer communication, communication protocols, and network services. LAN data link protocols, transport services, and other high-level network functions are examined in detail.
3 Credits
PREREQUISITES
CSci 561: Computer Networks (Minimum grade: C)
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 661
Catalog
Engr 662: Advanced Artificial Intelligence
Advanced aspects of artificial intelligence. Logical foundations of AI. Machine learning, planning, representation of common-sense knowledge, image understanding. Intensive study of artificial intelligence programming techniques and languages.
3 Credits
PREREQUISITES
CSci 531: Artificial Intelligence
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 662
Catalog
Engr 664: Theory of Concurrent Programming
Topics in the theory of concurrent programming. Models of concurrency. Programming logics. Emphasis on the formal specification and verification of concurrent programs. Case studies drawn from several areas of computer science.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 664
Catalog
Engr 666: Fault Tolerant Computing
Reliability, safety, availability, maintainability, and performance modeling; fault-tolerant design in VLSI; software reliability growth models; fault-tolerant data structures and algorithms; design diversity; self-stabilizing fault tolerance; Byzantine failures; performance and reliability tradeoffs.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 666
Catalog
Engr 691: Special Topics in Engineering Science I
May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 691
Catalog
Engr 692: Special Topics in Engineering Science II
May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 692
Catalog
Engr 693: Research Topics in Engineering Science I
Individual research in selected areas of interest. May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 693
Catalog
Engr 694: Research Topics in Engineering Science II
Individual research in selected areas of interest. May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 694
Catalog
Engr 695: Seminar
Papers by faculty, visiting lecturers, and graduate students. May be repeated for credit.
1 Credit
INSTRUCTION TYPE(S)
Seminar: Seminar for Engr 695
Catalog
Engr 697: Thesis
1 – 12 Credits
INSTRUCTION TYPE(S)
Thesis: Thesis for Engr 697
Catalog
Engr 699: Special Topics in Engineering Science
Individual design or research projects in selected areas of interest. May be repeated for credit.
1 – 6 Credits
INSTRUCTION TYPE(S)
Individual Based: Individual Based Study for Engr 699
Catalog
Engr 797: Dissertation
1 – 18 Credits
INSTRUCTION TYPE(S)
Dissertation: Dissertation for Engr 797
Catalog