Skip Navigation

Course Listings

Object-Oriented and Concurrent Programming

CMSC 335 | 3 Credits

Course Desc: 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.

Current Trends and Projects in Computer Science

CMSC 495 | 3 Credits

Course Desc: (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.

Computer Graphics

CMSC 405 | 3 Credits

Course Desc: 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.

Advanced Programming Languages

CMSC 330 | 3 Credits

Course Desc: 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.

Introduction to Discrete Structures

CMSC 150 | 3 Credits

Course Desc: 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.

Artificial Intelligence Foundations

CMSC 427 | 3 Credits

Course Desc: Prerequisite SDEV 300. A study of the theoretical foundations and practical applications of artificial intelligence. The objective is to develop algorithms and systems to demonstrate intelligent behavior. Topics include intelligent agents, searching algorithms, knowledge representation, probability, logic, and learning.

Game Design and Development

CMSC 325 | 3 Credits

Course Desc: 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.

Compiler Theory and Design

CMSC 430 | 3 Credits

Course Desc: 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.

Design and Analysis of Computer Algorithms

CMSC 451 | 3 Credits

Course Desc: 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.

Image and Signal Processing

CMSC 465 | 3 Credits

Course Desc: Prerequisites: MATH 141 and CMSC 350. A project-driven study of image and signal processing. The goal is to apply spectral analysis techniques to analyze time series data for the purpose of recognizing and classifying signals and to apply image segmentation, representation, and description techniques to recognize and classify objects. Topics include discrete Fourier transforms, fast Fourier transforms, sampling and filtering, and image transformations and enhancements.

To check other courses, please check our course information page.

Contact Us

Our helpful admissions advisors can help you choose an academic program to fit your career goals, estimate your transfer credits, and develop a plan for your education costs that fits your budget. If you're a current UMGC student, please visit the Help Center.

Personal Information
This field is required.

This field is required.

Contact Information
Please recheck your email address.
This field is required.

Numbers only, between 10-15 digits.
This field is required.

International numbers, start with a plus sign (+) & country code

This is a required field.
Additional Information
This field is required.
This field is required.

By submitting this form, you are giving your express written consent without obligation for UMGC to contact you regarding our educational programs and services using e-mail, phone, or text, including automated technology for calls and/or texts to the mobile number(s) provided. For more details, including how to opt out, read our privacy policy or contact an admissions advisor.