Skip Navigation
top

Course Listings

Social Networking and Cybersecurity Best Practices

CMSC 100 | 3 Credits

Course Desc: (Formerly CMIS 111). A hands-on study of current social networking applications and approaches to protect against cyber attacks and enhance personal cybersecurity. The goal is to collaborate and interact through personal and professional social networking while developing and using computer security best practices. Discussion covers issues associated with the impact of social computing on individuals and society. Projects include creating and maintaining accounts on selected social networking sites. Students may receive credit for only one of the following courses: CMIS 111 or CMSC 100.

Introduction to Problem Solving and Algorithm Design

CMSC 105 | 3 Credits

Course Desc: (Formerly CMIS 102). A study of techniques for finding solutions to problems through structured programming and step-wise refinement. The objective is to design programs using pseudocode and implement them in an appropriate programming language. Hands-on practice in debugging, testing, and documenting is provided. Topics include principles of programming, the logic of constructing a computer program, and the practical aspects of integrating program modules into a cohesive application. Algorithms are used to demonstrate programming as an approach to problem solving. Students may receive credit for only one of the following courses: CMIS 102, CMIS 102A, CMSC 101, or CMSC 105.

Introductory Programming

CMSC 115 | 3 Credits

Course Desc: CMSC 115 (Formerly CMIS 141). Prerequisite: CMSC 105 (or CMIS 102). A study of structured and object-oriented programming using the Java language. The goal is to design, implement, test, debug, and document Java programs, using appropriate development tools. Projects require the use of algorithms, simple data structures, and object-oriented concepts. Students may receive credit for only one of the following courses: CMIS 141, CMIS 141A, or CMSC 115.

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.

Intermediate Programming

CMSC 215 | 3 Credits

Course Desc: (Formerly CMIS 242). Prerequisite: CMSC 115 (or CMIS 141). Further study of the Java programming language. The objective is to design, implement, test, debug, and document Java programs, using appropriate development tools. Topics include object-oriented design, event driven programming, exceptions, recursion, arrays, and data structures. Students may receive credit for only one of the following courses: CMSC 215 or CMIS 242.

Artificial Intelligence Applications

CMSC 307 | 3 Credits

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

Computer Systems and Architecture

CMSC 310 | 3 Credits

Course Desc: (Formerly CMIS 310). Prerequisite: CMSC 115 (or CMIS 141). A study of the fundamental concepts of computer architecture and factors that influence the performance of a system. The aim is to apply practical skills to computer systems architecture. Topics include data representation, assembly language, central processing unit architecture, memory architecture, and input/output (I/O) architecture. Students may receive credit for only one of the following courses: CMIS 270, CMIS 310, CMSC 310, CMSC 311, or IFSM 310.

Data Structures and Analysis

CMSC 315 | 3 Credits

Course Desc: (Formerly CMSC 350). Prerequisite: CMSC 215 (or 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. Students may receive credit for only one of the following courses: CMSC 350 or CMSC 315.

Relational Database Concepts and Applications

CMSC 320 | 3 Credits

Course Desc: (Formerly CMIS 320). Prerequisite: CMSC 115 (or CMIS 141). A study of the functions, underlying concepts, and applications of enterprise relational database management systems (RDBMS) in a business environment. The aim is to appropriately use databases to meet business requirements. Discussion covers entity/relationship diagrams, relational theory, normalization, integrity constraints, the Structured Query Language (SQL), and physical and logical design. Business case studies and projects include hands-on work using an industry-standard RDBMS. Students may receive credit for only one of the following courses: CMIS 320, CMSC 320, or IFSM 410.

Game Design and Development

CMSC 325 | 3 Credits

Course Desc: Prerequisite: CMSC 215 (or CMIS 242). A project-driven study of the theory and practice of game design and development. The aim is to build realistic graphical 3D 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.

Advanced Programming Languages

CMSC 330 | 3 Credits

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

Object-Oriented and Concurrent Programming

CMSC 335 | 3 Credits

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

Web Programming

CMSC 340 | 3 Credits

Course Desc: Prerequisite: CMSC 115 (or CMIS 141). This course is designed to give students the fundamental knowledge required for developing web applications. The course covers basic Web architecture, core Web standards (such as HTTP, HTML, CSS) client-side scripting with JavaScript and server-side programming with PHP. Students will understand the applications of networking protocols, aspects of system design and concepts of web security.

Software Engineering Principles and Techniques

CMSC 345 | 3 Credits

Course Desc: (Formerly CMIS 330). Prerequisite: CMSC 115 (or CMIS 141). A study of soft-ware engineering from initial concept through design, development, testing, and maintenance of the product. Discussion covers software development life-cycle models. The goal is to analyze, customize, and document multiple processes to solve information technology problems. Topics include configuration management, quality, validation and verification, security, human factors, and organizational structures. Students may receive credit for only one of the following courses: CMIS 330, CMIS 388A, or CMSC 345.

Computer Graphics

CMSC 405 | 3 Credits

Course Desc: Prerequisite: CMSC 325 or CMSC 315 (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 2D and 3D objects.

Operating Systems

CMSC 412 | 3 Credits

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

Distributed Database Systems

CMSC 415 | 3 Credits

Course Desc: Prerequisite: CMSC 320 or CMIS 320. An examination of the fundamental concepts of distributed databases. Discussion covers distributed database architecture and distributed database design, as well as relevant topics of big data management and distributed NoSQL databases.

Advanced Relational Database Concepts and Applications

CMSC 420 | 3 Credits

Course Desc: Prerequisite: CMSC 320 (or CMIS 320), IFSM 410, or IFSM 411. A comprehensive study of the features and techniques of relational database management appropriate to the advanced end user, database designer, or database administrator. The goal is to complete hands-on work using an industry-standard enterprise relational database management system. Topics include basic database administration functions, advanced SQL and complex data types, stored procedures, user-defined functions, triggers, and data warehousing. Students may receive credit for only one of the following courses: CMIS 420, CMSC 420, IFSM 420, or IFSM 498I.

Mobile App Development

CMSC 425 | 3 Credits

Course Desc: Prerequisite: CMSC 215 or CMIS 242. A study of techniques for designing and developing mobile applications using the Android operating system. Topics include mobile architecture, operating systems, programming languages, user interface design, and security and privacy issues related to mobile apps.

Artificial Intelligence Foundations

CMSC 427 | 3 Credits

Course Desc: Prerequisite: CMSC 315 (or CMSC 350) or 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.

Compiler Theory and Design

CMSC 430 | 3 Credits

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

Advanced Programming in Java

CMSC 440 | 3 Credits

Course Desc: (Formerly CMIS 440) Prerequisites: CMSC 215 (or CMIS 242) and CMSC 320 (or CMIS 320). An exploration of advanced Java programming, using the Java Enterprise edition. The objective is to analyze, design, develop, test, deploy, and document small- to medium-scale web applications. Hands-on projects in Java server pages, servlets, and Java database connectivity are included. Students may receive credit for only one of the following courses: CMIS 440, CMSC 440 or CMIS 498A.

Design and Analysis of Computer Algorithms

CMSC 451 | 3 Credits

Course Desc: Prerequisites: CMSC 150 and CMSC 315 (or CMIS 350). 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 315 (or 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.

Capstone in Computer Science

CMSC 495 | 3 Credits

Course Desc: Prerequisite(s): Either CMSC 330 and CMSC 335, CMSC 320 (or CMIS 320) and CMSC 345, 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.

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
Contact Information
This is a required field.
Additional Information
This field is required.
This field is required.

By submitting this form, you acknowledge that you intend to sign this form electronically and that your electronic signature is the equivalent of a handwritten signature, with all the same legal and binding effect. 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.

Please wait as we send your request.