Catalog Course Descriptions
See below for the catalog descriptions of CSci undergraduate and graduate classes. Relevant Engr and Engs 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
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 Csci 112 with a grade of C or better.
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
$50.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
$0.00 per 3 Semester Credit Hours
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
Pre-requisite: Math ACT 22 or Math 121 (or above)
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for Csci 111
COURSE FEE(S)
Computer & Information Science
$75.00
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
CSci 111: Computer Science I (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for CSci 112
COURSE FEE(S)
Computer & Information Science
$75.00
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
Cannot book with Csci 112 Completed.
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
$50.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
$0.00 per 3 Semester Credit Hours
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
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
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
Pre-requisite: Math ACT 22 or Math 121 (or above)
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 203
Lecture: Web-based Lecture for Csci 203
COURSE FEE(S)
Computer & Information Science
$75.00
Continuation of Csci 112 with emphasis on advanced data structures, algorithm design analysis, advanced programming techniques, and user interfaces.
3 Credits
PREREQUISITES
Csci 112: Computer Science II (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for Csci 211
COURSE FEE(S)
Computer & Information Science
$75.00
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
Csci 112: Computer Science II (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture/Lab: Lecture/Lab for Csci 223
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
Csci 251 Requires: One Way-Co-Requisite Math 261
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)
Computer & Information Science
$75.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
$0.00 per 3 Semester Credit Hours
Problem solving, algorithm development, and programming techniques, including applications from a range of disciplines.
3 Credits
PREREQUISITES
Pre-requisite: Math 121 or higher.
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 256
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
Csci 111 or Csci 251
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 259
Lecture: Hybrid Lecture for Csci 259
Study of the nature of and need for social responsibility and ethical behavior in computing and the computer professions.
1 Credit
PREREQUISITES
Csci 211: Computer Science III
Csci 223: Computer Org. & Assembly Language
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 300
Study of the principles and practice of software internationalization with emphasis on the design and customization of software to accommodate linguistic and cultural diversity.
3 Credits
PREREQUISITES
Csci 211: Computer Science III
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 305
Introduction to the theoretical foundations of computer science, including automata and formal languages.
3 Credits
PREREQUISITES
Csci 112: Computer Science II (Minimum grade: C-)
Pre-Requisite: 24 Earned Hours
ONE-WAY COREQUISITES
Math 301: Discrete Mathematics
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 311
Lecture: Hybrid Lecture for Csci 311
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
Csci 112: Computer Science II
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 323
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
This course introduces the principles and methods for computer-aided design of objects that can be rendered effectively on 3-D printers. It surveys the design techniques and the hardware and software technologies in 3-D printing workflows. Students create designs and render them on 3- D printers.
3 Credits
PREREQUISITES
Prerequisite: Csci 211 or Csci 251 or Csci 256
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 333
COURSE FEE(S)
Computer Science
$50.00
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
Prerequisite: Csci 112 or Csci 251 or Csci 256
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 343
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
Csci 211 or Csci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 345
Numerical solution of problems; problem analysis, algorithm design, coding, testing, interpretation of results; use of software packages on mainframe computers.
3 Credits
PREREQUISITES
Math 263: Unified Calculus & Analytic Geometry III
Csci 111 or Csci 251
INSTRUCTION TYPE(S)
Lecture: Lecture for CSCI 353
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
Pre-Requisite: 24 Earned Hours
Csci 211 or Csci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 354
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
Pre-Requisite: 24 Earned Hours
Pre-requisite Csci 256 or Csci 112 minimum C-
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 356
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
Prerequisite Csci 223 OR El E 235
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 361
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
Csci 211: Computer Science III (Minimum grade: C-)
Csci 223: Computer Org. & Assembly Language (Minimum grade: C-)
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 387
Study of topics in programming according to the interests of the instructor and students. May be repeated for credit when the topic varies.
3 Credits
PREREQUISITES
Csci 211: Computer Science III
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 390
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
Csci 211: Computer Science III
Csci 223: Computer Org. & Assembly Language
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 391
Introduction to computer-based simulation and its applications to engineering, the sciences, and management.
3 Credits
PREREQUISITES
Math 262: Unified Calculus & Analytic Geometry II
Csci 211: Computer Science III
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 405
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
Prerequisite: Csci 211 minimum grade C- or Csci 356 minimum grade C-
Pre-Requisite: 24 Earned Hours
Prerequisite Csci 223 C- OR El E 385 C-
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 423
This course examines how machine code is generated and optimized to harness the computing power of modern processors. The course surveys a range of topics including the compilation process and techniques, interface between software and hardware, and program optimizations at different levels (e.g., algorithm, high-level, and assembly level).
3 Credits
PREREQUISITES
Csci 211: Computer Science III
Csci 223: Computer Org. & Assembly Language
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 425
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
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-)
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 427
COURSE FEE(S)
Computer Science
$100.00
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
Csci 211: Computer Science III
Csci 223: Computer Org. & Assembly Language
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 431
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
Prerequisite: Csci 211 minimum grade C- or Csci 356 minimum grade C-
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 433
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
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 443
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
Pre-Requisite: 24 Earned Hours
Csci 211 or Csci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 444
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
Pre-Requisite: 24 Earned Hours
Csci 211 or Csci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 447
COURSE FEE(S)
Computer Science
$50.00
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
Csci 211: Computer Science III (Minimum grade: C-)
Csci 223: Computer Org. & Assembly Language (Minimum grade: C-)
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 450
Lecture: Web-based Lecture for Csci 450
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
Pre-Requisite: 24 Earned Hours
Csci 211 or Csci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 458
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
Pre-Requisite: 24 Earned Hours
Csci 211 or Csci 343
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 475
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
Pre-requisite: 6 Hours of CSCI 300 or above (C- minimum grade)
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 487
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
Csci 211: Computer Science III
Csci 223: Computer Org. & Assembly Language
Pre-Requisite: 24 Earned Hours
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Csci 490
Indiv Based: Web based Indiv Based Study for Csci 490
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
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
Prerequisite Csci 211 min C- OR Csci 356 C-
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 492
An intensive study of the formal concepts needed for graduate study in computer science.
3 Credits
PREREQUISITES
Graduate Program Level Only
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 500
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
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 501
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
An intensive study of the fundamental concepts of programming languages and the associated software system structures.
3 Credits
PREREQUISITES
Graduate Program Level Only
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 503
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
Pre-requisite: CSCI 311 or CSCI 500 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 517
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
Pre-requisite: CSCI 311 or CSCI 500 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 520
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
Pre-requisite: CSCI 423 or CSCI 501 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 521
Design and construction of operating systems for shared program computers; various contemporary operating systems.
3 Credits
PREREQUISITES
Pre-requisite: CSCI 423 or CSCI 501 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 523
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
Pre-requisite: CSCI 423 or CSCI 501 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 524
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
Pre-requisite: CSCI 311 or CSCI 450 or CSCI 500 or CSCI 503 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 525
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
Csci 211 and Csci 223 or graduate standing
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 526
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
Use of the computer in human problem solving. Game theory, decision trees, Markov decision problems, selected topics.
3 Credits
PREREQUISITES
Pre-requisite: CSCI 433 or CSCI 502 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 531
Introduction to the analysis of the efficiency of computer algorithms and concepts of computational complexity; sorting, matrix multiplication, others.
3 Credits
PREREQUISITES
Pre-requisite: CSCI 433 or CSCI 502 or Graduate Standing
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 533
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
Pre-requisite: CSCI 211 and Math 301 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 541
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
Pre-Requisite: CSCI 211 and CSCI 223 or Graduate standing in Computer Science.
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 543
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
Pre-requisites: (Csci 211 and Math 262) OR (Csci 251 and Math 262) OR Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 547
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
Pre-requisite: CSCI 211 and Math 301 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 550
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
Pre-requisite: (CSCI 423 and Math 375) or CSCI 501 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 551
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
Either CSCI 211 and CSCI 223 or Graduate Standing.
Csci 211 or Csci 223
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 554
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
Pre-requisite: CSCI 211 and Math 301 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 555
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
Either CSCI 211 and CSCI 223 or Graduate Standing.
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 556
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
Pre-requisite: CSCI 423 or CSCI 501 or Graduate Standing
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 561
Software engineering paradigms, requirement analysis and specification, design of reliable software; data flow, data structure, and object-oriented design methodologies.
3 Credits
PREREQUISITES
Pre-requisite: CSCI 387 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 562
Lecture: Compressed Video for Csci 562
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
Pre-requisite: CSCI 423 or CSCI 475 or CSCI 501 or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 575
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Pre-requisite: (CSCI 211 and CSCI 223) or Graduate Standing
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 581
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Pre-requisite: (CSCI 211 and CSCI 223) or Graduate Standing
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 582
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
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 implicity define languages.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Csci 658
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
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
Engr Courses
Special topics course or investigation under the direction of Engineering faculty or staff member.
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 596
Indiv Based: Compressed Video for Engr 596
Indiv Based: Study Abroad for Engr 596
Special topics course or investigation under the direction of Engineering faculty or staff member.
May be repeated for credit.Special
1 – 3 Credits
PREREQUISITES
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 597
Indiv Based: Compressed Video for Engr 597
Indiv Based: Web based Indiv Based Study for Engr 597
Special topics course or investigation under the direction of Engineering faculty or staff member.
May be repeated for credit.
1 – 3 Credits
PREREQUISITES
Prerequiste: Junior standing (60 hr).
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 598
Indiv Based: Compressed Video for Engr 598
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
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
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
Design objectives of operating systems. Sequential and concurrent processes, processor management, memory management, scheduling algorithms, resource protection. System design and performance evaluation.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 656
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
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
Software quality assurance, software testing techniques, software testing strategies, software maintenance, and configuration management.
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engr 660
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
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
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
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
May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 691
May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 692
Individual research in selected areas of interest. May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 693
Individual research in selected areas of interest. May be repeated for credit.
1 – 3 Credits
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 694
Papers by faculty, visiting lecturers, and graduate students. May be repeated for credit.
1 Credit
INSTRUCTION TYPE(S)
Seminar: Seminar for Engr 695
1 – 12 Credits
INSTRUCTION TYPE(S)
Thesis: Thesis for Engr 697
Individual design or research projects in selected areas of interest. May be repeated for credit.
1 – 6 Credits
INSTRUCTION TYPE(S)
Indiv Based: Individual Based Study for Engr 699
1 – 18 Credits
INSTRUCTION TYPE(S)
Dissertation: Dissertation for Engr 797
Engs Courses
Introduction of the analysis of computer algorithms as well as concepts of computational complexity; sorting, matrix multiplication, other (for computer engineering/telecommunications majors).
3 Credits
INSTRUCTION TYPE(S)
Lecture: Lecture for Engs 603