Schedule of Classes




2022 Summer: May 18 - August 9
Stateside hybrid classes for Winter 2023 and Spring 2023 will be made available the weekend of September 9th, 2022. Registration will open September 12th, 2022.

Course Class No. Section Start & End Date Day Time Status Location
CMSC 150 Introduction to Discrete Structures (3)
Prerequisite or corequisite: MATH 140. A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.
Start date has passed. Please register for the next start date.
50294 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Linker, Sheldon O Syllabus Course Materials
CMSC 150 Introduction to Discrete Structures (3)
Prerequisite or corequisite: MATH 140. A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.
Start date has passed. Please register for the next start date.
50994 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Marcello, Cynthia V. Syllabus Course Materials
CMSC 150 Introduction to Discrete Structures (3)
Prerequisite or corequisite: MATH 140. A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.
Start date has passed. Please register for the next start date.
51444 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Romero, Jose A Syllabus Course Materials
CMSC 150 Introduction to Discrete Structures (3)
Prerequisite or corequisite: MATH 140. A survey of fundamental mathematical concepts relevant to computer science. The objective is to address problems in computer science. Proof techniques presented are those used for modeling and solving problems in computer science. Discussion covers functions, relations, infinite sets, and propositional logic. Topics also include graphs and trees, as well as selected applications. Students may receive credit for only one of the following courses: CMSC 150 or CMSC 250.
Start date has passed. Please register for the next start date.
51766 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Shash, Abdulnasir M Syllabus Course Materials
CMSC 307 Artificial Intelligence Applications (3)
(No programming or math background required.) An interactive, hands-on study of current artificial intelligence (AI) applications spanning multiple disciplines and domains, including business, science, communications, and computing. The goal is to use datasets with AI and machine learning applications from leading cloud vendors, including Amazon and Microsoft. Projects and laboratory exercises demonstrate how AI can be used to solve problems across a wide variety of disciplines.
Start date has passed. Please register for the next start date.
51092 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Lusby, Jack C Syllabus Course Materials
CMSC 307 Artificial Intelligence Applications (3)
(No programming or math background required.) An interactive, hands-on study of current artificial intelligence (AI) applications spanning multiple disciplines and domains, including business, science, communications, and computing. The goal is to use datasets with AI and machine learning applications from leading cloud vendors, including Amazon and Microsoft. Projects and laboratory exercises demonstrate how AI can be used to solve problems across a wide variety of disciplines.
Start date has passed. Please register for the next start date.
52425 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Potolea, Rodica Syllabus Course Materials
CMSC 307 Artificial Intelligence Applications (3)
(No programming or math background required.) An interactive, hands-on study of current artificial intelligence (AI) applications spanning multiple disciplines and domains, including business, science, communications, and computing. The goal is to use datasets with AI and machine learning applications from leading cloud vendors, including Amazon and Microsoft. Projects and laboratory exercises demonstrate how AI can be used to solve problems across a wide variety of disciplines.
Start date has passed. Please register for the next start date.
54400 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Potolea, Rodica Syllabus Course Materials
CMSC 325 Game Design and Development (3)
Prerequisite: CMSC 230 or CMIS 242. A project-driven study of the theory and practice of game design and development. The aim is to build realistic graphical 3-D worlds, animate characters, and add special effects to games. Discussion covers critical mathematical concepts and real-time game physics. Projects include collaborative development of interactive games.
Start date has passed. Please register for the next start date.
52169 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Marcello, Cynthia V. Syllabus Course Materials
CMSC 330 Advanced Programming Languages (3)
Prerequisite: CMSC 230 or CMSC 350. A comparative study of programming languages. The aim is to write safe and secure computer programs. Topics include the syntax and semantics of programming languages and run-time support required for various programming languages. Programming projects using selected languages are required.
Start date has passed. Please register for the next start date.
50528 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Gubanov, Vladimir Syllabus Course Materials
CMSC 330 Advanced Programming Languages (3)
Prerequisite: CMSC 230 or CMSC 350. A comparative study of programming languages. The aim is to write safe and secure computer programs. Topics include the syntax and semantics of programming languages and run-time support required for various programming languages. Programming projects using selected languages are required.
Start date has passed. Please register for the next start date.
51442 6380 18 May 2022-12 Jul 2022 Closed Online
Faculty: Suciu, Alin D Syllabus Course Materials
CMSC 330 Advanced Programming Languages (3)
Prerequisite: CMSC 230 or CMSC 350. A comparative study of programming languages. The aim is to write safe and secure computer programs. Topics include the syntax and semantics of programming languages and run-time support required for various programming languages. Programming projects using selected languages are required.
Start date has passed. Please register for the next start date.
51908 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Elms, Michael A Syllabus Course Materials
CMSC 330 Advanced Programming Languages (3)
Prerequisite: CMSC 230 or CMSC 350. A comparative study of programming languages. The aim is to write safe and secure computer programs. Topics include the syntax and semantics of programming languages and run-time support required for various programming languages. Programming projects using selected languages are required.
Start date has passed. Please register for the next start date.
54450 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Ghosh, Soumajit Syllabus Course Materials
CMSC 335 Object-Oriented and Concurrent Programming (3)
Prerequisite: CMSC 230 or CMSC 350. A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.
Start date has passed. Please register for the next start date.
50529 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Vergamini, Didier Syllabus Course Materials
CMSC 335 Object-Oriented and Concurrent Programming (3)
Prerequisite: CMSC 230 or CMSC 350. A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.
Start date has passed. Please register for the next start date.
51569 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Mujeye, Douglas Syllabus Course Materials
CMSC 335 Object-Oriented and Concurrent Programming (3)
Prerequisite: CMSC 230 or CMSC 350. A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.
Start date has passed. Please register for the next start date.
51896 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Ghosh, Soumajit Syllabus Course Materials
CMSC 335 Object-Oriented and Concurrent Programming (3)
Prerequisite: CMSC 230 or CMSC 350. A study of object-oriented and concurrent programming using features of Java. The goal is to design, implement, test, debug, and document complex robust programs in an object-oriented language. Concepts of object-oriented programming (such as composition, classification, and polymorphism) are explored. Topics include the principles of concurrent programming (such as task synchronization, race conditions, deadlock, threads, and event-driven graphic user interface programs). Programming projects are implemented in Java. Students may receive credit for only one of the following courses: CMSC 300 or CMSC 335.
Start date has passed. Please register for the next start date.
54428 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Schmeelk, Suzanna E Syllabus Course Materials
CMSC 350 Data Structures and Analysis (3)
Prerequisite: CMIS 242. A study of user-defined data structures and object-oriented design in computer science. The aim is to develop secure Java programs. Topics include linked lists, stacks, queues, arrays, maps, vectors, and trees. Algorithms that perform sorting, searching, and recursion are discussed and analyzed.
Start date has passed. Please register for the next start date.
50496 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Specioso, Richard E Syllabus Course Materials
CMSC 350 Data Structures and Analysis (3)
Prerequisite: CMIS 242. A study of user-defined data structures and object-oriented design in computer science. The aim is to develop secure Java programs. Topics include linked lists, stacks, queues, arrays, maps, vectors, and trees. Algorithms that perform sorting, searching, and recursion are discussed and analyzed.
Start date has passed. Please register for the next start date.
51009 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Beyer, Tristan A Syllabus Course Materials
CMSC 350 Data Structures and Analysis (3)
Prerequisite: CMIS 242. A study of user-defined data structures and object-oriented design in computer science. The aim is to develop secure Java programs. Topics include linked lists, stacks, queues, arrays, maps, vectors, and trees. Algorithms that perform sorting, searching, and recursion are discussed and analyzed.
Start date has passed. Please register for the next start date.
51501 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Huskins, James M Syllabus Course Materials
CMSC 350 Data Structures and Analysis (3)
Prerequisite: CMIS 242. A study of user-defined data structures and object-oriented design in computer science. The aim is to develop secure Java programs. Topics include linked lists, stacks, queues, arrays, maps, vectors, and trees. Algorithms that perform sorting, searching, and recursion are discussed and analyzed.
Start date has passed. Please register for the next start date.
51774 6381 18 May 2022-12 Jul 2022 Closed Online
Faculty: Schmeelk, Suzanna E Syllabus Course Materials
CMSC 405 Computer Graphics (3)
Prerequisite: CMSC 325 or CMSC 350. A hands-on, project-based introduction to computer graphics. The goal is to develop projects that render graphic images and animate three-dimensional objects. Topics include programming in OpenGL and transforming, viewing, and modeling 2-D and 3-D objects.
Start date has passed. Please register for the next start date.
50499 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Sanford, Jeff H Syllabus Course Materials
CMSC 405 Computer Graphics (3)
Prerequisite: CMSC 325 or CMSC 350. A hands-on, project-based introduction to computer graphics. The goal is to develop projects that render graphic images and animate three-dimensional objects. Topics include programming in OpenGL and transforming, viewing, and modeling 2-D and 3-D objects.
Start date has passed. Please register for the next start date.
52057 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: King, Lauren Beth Syllabus Course Materials
CMSC 405 Computer Graphics (3)
Prerequisite: CMSC 325 or CMSC 350. A hands-on, project-based introduction to computer graphics. The goal is to develop projects that render graphic images and animate three-dimensional objects. Topics include programming in OpenGL and transforming, viewing, and modeling 2-D and 3-D objects.
Start date has passed. Please register for the next start date.
52058 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Johnson, Tiffany N Syllabus Course Materials
CMSC 412 Operating Systems (3)
Prerequisite: CMIS 310 or CMSC 311. A study of the fundamental principles underlying modern operating systems. The objective is to design and implement a small-scale operating system and design a virtual memory management system. Discussion covers the essential components of a typical operating system and the interactions among them. Topics also include methods of managing processes and resources in computer systems. A programming project that implements part of an operating system is required.
Start date has passed. Please register for the next start date.
51571 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Gebreyesus, Nega Syllabus Course Materials
CMSC 412 Operating Systems (3)
Prerequisite: CMIS 310 or CMSC 311. A study of the fundamental principles underlying modern operating systems. The objective is to design and implement a small-scale operating system and design a virtual memory management system. Discussion covers the essential components of a typical operating system and the interactions among them. Topics also include methods of managing processes and resources in computer systems. A programming project that implements part of an operating system is required.
Start date has passed. Please register for the next start date.
51916 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Tarquinio, Michael Syllabus Course Materials
CMSC 430 Compiler Theory and Design (3)
Prerequisites: CMSC 330 and programming experience in C or C++. An examination of the formal translation of programming languages, syntax, and semantics. The goal is to write programs that are constructed using program generators. Topics include evaluation of finite-state grammars and recognizers; context-free parsing techniques, such as recursive descent, precedence, LL(K), LR(K), and SLR(K); and improvement and generation of machine-independent code and syntax-directed translation schema. Programming projects that implement parts of a compiler are required.
Start date has passed. Please register for the next start date.
50530 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Mikulski, George R Syllabus Course Materials
CMSC 430 Compiler Theory and Design (3)
Prerequisites: CMSC 330 and programming experience in C or C++. An examination of the formal translation of programming languages, syntax, and semantics. The goal is to write programs that are constructed using program generators. Topics include evaluation of finite-state grammars and recognizers; context-free parsing techniques, such as recursive descent, precedence, LL(K), LR(K), and SLR(K); and improvement and generation of machine-independent code and syntax-directed translation schema. Programming projects that implement parts of a compiler are required.
Start date has passed. Please register for the next start date.
50998 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: McDonald, Renee C Syllabus Course Materials
CMSC 430 Compiler Theory and Design (3)
Prerequisites: CMSC 330 and programming experience in C or C++. An examination of the formal translation of programming languages, syntax, and semantics. The goal is to write programs that are constructed using program generators. Topics include evaluation of finite-state grammars and recognizers; context-free parsing techniques, such as recursive descent, precedence, LL(K), LR(K), and SLR(K); and improvement and generation of machine-independent code and syntax-directed translation schema. Programming projects that implement parts of a compiler are required.
Start date has passed. Please register for the next start date.
51149 6982 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Mikulski, George R Syllabus Course Materials
CMSC 451 Design and Analysis of Computer Algorithms (3)
Prerequisites: CMSC 150 and CMSC 350 (or CMSC 230). A presentation of fundamental techniques for designing and analyzing computer algorithms. The aim is to apply Big-O estimates of algorithms and proof-of-correctness techniques and to design algorithms. Basic methods include divide-and-conquer techniques, search and traversal techniques, dynamic programming, greedy methods, and induction. Programming projects are included.
Start date has passed. Please register for the next start date.
51033 6980 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Smith, Therese M Syllabus Course Materials
CMSC 451 Design and Analysis of Computer Algorithms (3)
Prerequisites: CMSC 150 and CMSC 350 (or CMSC 230). A presentation of fundamental techniques for designing and analyzing computer algorithms. The aim is to apply Big-O estimates of algorithms and proof-of-correctness techniques and to design algorithms. Basic methods include divide-and-conquer techniques, search and traversal techniques, dynamic programming, greedy methods, and induction. Programming projects are included.
Start date has passed. Please register for the next start date.
51573 6380 18 May 2022-12 Jul 2022 Open Online
Faculty: Didulo, Dennis Syllabus Course Materials
CMSC 451 Design and Analysis of Computer Algorithms (3)
Prerequisites: CMSC 150 and CMSC 350 (or CMSC 230). A presentation of fundamental techniques for designing and analyzing computer algorithms. The aim is to apply Big-O estimates of algorithms and proof-of-correctness techniques and to design algorithms. Basic methods include divide-and-conquer techniques, search and traversal techniques, dynamic programming, greedy methods, and induction. Programming projects are included.
Start date has passed. Please register for the next start date.
52462 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Smith, Therese M Syllabus Course Materials
CMSC 495 Current Trends and Projects in Computer Science (3)
(Intended as a final, capstone course to be taken in a student's last 9 credits.) Prerequisite(s): Either CMSC 330 and CMSC 335, CMIS 320 and CMIS 330, or SDEV 425. An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.
Start date has passed. Please register for the next start date.
50659 6980 15 Jun 2022-09 Aug 2022 Closed Online
Faculty: Rajani, Janak R Syllabus Course Materials
CMSC 495 Current Trends and Projects in Computer Science (3)
(Intended as a final, capstone course to be taken in a student's last 9 credits.) Prerequisite(s): Either CMSC 330 and CMSC 335, CMIS 320 and CMIS 330, or SDEV 425. An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.
Start date has passed. Please register for the next start date.
51117 6981 15 Jun 2022-09 Aug 2022 Open Online
Faculty: Kayed, Rabiha J Syllabus Course Materials
CMSC 495 Current Trends and Projects in Computer Science (3)
(Intended as a final, capstone course to be taken in a student's last 9 credits.) Prerequisite(s): Either CMSC 330 and CMSC 335, CMIS 320 and CMIS 330, or SDEV 425. An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.
Start date has passed. Please register for the next start date.
51582 6380 18 May 2022-12 Jul 2022 Closed Online
Faculty: Dao, Hung Syllabus Course Materials
CMSC 495 Current Trends and Projects in Computer Science (3)
(Intended as a final, capstone course to be taken in a student's last 9 credits.) Prerequisite(s): Either CMSC 330 and CMSC 335, CMIS 320 and CMIS 330, or SDEV 425. An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.
Start date has passed. Please register for the next start date.
52450 6381 18 May 2022-12 Jul 2022 Open Online
Faculty: Kuchenbecker, Shanna Nicole Syllabus Course Materials
CMSC 495 Current Trends and Projects in Computer Science (3)
(Intended as a final, capstone course to be taken in a student's last 9 credits.) Prerequisite(s): Either CMSC 330 and CMSC 335, CMIS 320 and CMIS 330, or SDEV 425. An overview of computer technologies, with an emphasis on integration of concepts, practical application, and critical thinking. The goal is to research, plan, conduct, and complete collaborative computer-related projects in compliance with schedule deadlines. Analysis covers innovative and emerging issues in computer science. Assignments include working in teams throughout the analysis, design, development, implementation, testing, and documentation phases of the projects, including periodic peer reviews.
Start date has passed. Please register for the next start date.
52459 6382 18 May 2022-12 Jul 2022 Open Online
Faculty: Chan, Philip W Syllabus Course Materials
Top of Page