University of Maryland, College Park Computer Science Program: An Overview
The University of Maryland, College Park (UMCP) offers a comprehensive Computer Science program designed to equip students with the skills and knowledge necessary to excel in various computing fields. This article provides an overview of the program, covering its curriculum, specializations, and career prospects.
Department Overview
The MS-Computer Science is offered by the Department of Computer Science (CS) in the College of Computer, Mathematical, and Natural Sciences. The department’s graduate programs (MS and Ph.D.) are ranked among the top in the nation and in the top ten among public universities. CS has strong research programs in the following areas: artificial intelligence, computer systems and networking, database systems, programming languages, software engineering, scientific computing, algorithms and computation theory, computer vision, geometric computing, graphics, human-computer interaction, and bioinformatics.
Bachelor's Degree Program
The Computer Science major at UMCP is a Limited Enrollment Program. Much of the knowledge at the early stage of the degree program is cumulative. To ensure that transfer and new students start with the appropriate courses, the department offers exemption exams for CMSC131, CMSC132, CMSC216, and CMSC250. Students who have had CS courses prior to starting at Maryland are encouraged to schedule and take exemption exams.
Curriculum
A "C-" or better must be earned in all major requirements. The curriculum includes required lower-level courses, additional required courses, and upper-level computer science courses.
Required Lower Level Courses (Unless Exempt)
- MATH140 Calculus I (see your advisor) (4 Credits)
- MATH141 Calculus II (4 Credits)
- CMSC131 Object-Oriented Programming I (4 Credits)
- CMSC132 Object-Oriented Programming II (4 Credits)
- CMSC216 Introduction to Computer Systems (4 Credits)
- CMSC250 Discrete Structures (4 Credits)
Additional Required Courses
- CMSC330 Organization of Programming Languages (3 Credits)
- CMSC351 Algorithms (3 Credits)
- STAT4xx (2-3 Credits). This course must have prerequisite of MATH141 or higher; cannot be cross-listed with CMSC.
- MATH/AMSC/STAT xxx (2-4 Credits)
Upper Level Computer Science Courses
Select five 400 level courses from at least three of the following areas with no more than three courses in a given area: (15 Credits)
Read also: University of Georgia Sorority Guide
- Area 1: Systems
- CMSC411 Computer Systems Architecture
- CMSC412 Operating Systems
- CMSC414 Computer and Network Security
- CMSC416 Introduction to Parallel Computing
- CMSC417 Computer Networks
- Area 2: Information Processing
- CMSC420 Advanced Data Structures
- CMSC421 Introduction to Artificial Intelligence
- CMSC422 Introduction to Machine Learning
- CMSC423 Bioinformatic Algorithms, Databases, and Tools
- CMSC424 Database Design
- CMSC426 Computer Vision
- CMSC427 Computer Graphics
- CMSC470 Introduction to Natural Language Processing
- CMSC471 Introduction to Data Visualization
- CMSC472 Introduction to Deep Learning
- Area 3: Software Engineering and Programming Languages
- CMSC430 Introduction to Compilers
- CMSC433 Programming Language Technologies and Paradigms
- CMSC434 Introduction to Human-Computer Interaction
- CMSC435 Software Engineering
- CMSC436 Programming Handheld Systems
- CMSC471 Introduction to Data Visualization
- Area 4: Theory
- CMSC451 Design and Analysis of Computer Algorithms
- CMSC452 Elementary Theory of Computation
- CMSC454 Algorithms for Data Science
- CMSC456 Cryptography
- CMSC457 Introduction to Quantum Computing
- CMSC474 Introduction to Computational Game Theory
- Area 5: Numerical Analysis
- CMSC460 Computational Methods or CMSC466 Introduction to Numerical Analysis I
Upper Level Concentration Requirement
Select at least 12 credits of 300-400 level courses from one discipline outside of CMSC. (12 Total Credits)
All students, regardless of specialization, must complete 12 credit hours of 300 - 400 level courses in one discipline outside of Computer Science with a cumulative GPA of 1.7 or higher in this coursework. No course that is in, or crosslisted as, CMSC may be counted in this requirement (e.g., AMSC460). Only 1 independent study or experiential learning course may be used. Students who are pursuing a minor or a double major/dual degree may use those credits in this area with the exception of a few majors/disciplines (e.g., Information Science). Please consult with your advisor to ensure the courses you plan to take to ensure they will satisfy this requirement.
Specializations
Students within the Computer Science major may choose to pursue our General Track or one of four specializations offered. Students are not required to pursue a specialization but may find one best fits their interests. Students, regardless of specialization, are required to fulfill their computer science upper level course requirements from at least 3 areas. Courses that fall within each area are listed in the General Track degree requirements. For tracks allowing CMSC electives, three 1-credit CMSC STIC courses are equivalent to one 3-credit 300-400 level elective course. Machine learning is a rapidly developing field within computer science.
The Computer Science department offers several specializations, including:
- Cybersecurity Specialization
- Data Science Specialization
- Machine Learning Specialization
- Quantum Information Specialization
Cybersecurity Specialization
Students looking to pursue the cybersecurity specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, MATH/STATXXX and STAT4xx beyond MATH141), and the upper level concentration requirements as detailed above. The difference in the specialization is the upper level computer science courses. Students must fulfill their computer science upper level course requirements from at least 3 areas.
Read also: History of the Block 'M'
Students are required to take:
- CMSC414 Computer and Network Security (3 Credits)
- CMSC456 Cryptography (3 Credits)
Students must choose four courses from: (12-13 Credits)
- CMSC411 Computer Systems Architecture
- CMSC412 Operating Systems
- CMSC417 Computer Networks
- CMSC430 Introduction to Compilers
- CMSC433 Programming Language Technologies and Paradigms
- CMSC451 Design and Analysis of Computer Algorithms
Upper Level Elective Courses: three credits from CMSC3XX or CMSC4XX excluding CMSC330 and CMSC351
Total Credits: 21-22
Students may fulfill an area requirement under the Upper Level Elective Courses requirement. Courses that fall within each area are listed in the General Track degree requirements. The five areas are: Area 1: Systems, Area 2: Information Processing, Area 3: Software Engineering and Programming Languages, Area 4: Theory, and Area 5: Numerical Analysis.
Read also: Legacy of Fordham University
Data Science Specialization
Students looking to pursue the data science specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, STAT400 and MATH240), and the upper level concentration requirements as detailed above. The difference in the specialization is the upper level computer science courses. Students must fulfill their computer science upper level course requirements from at least 3 areas.
Students are required to take:
- CMSC320 Introduction to Data Science (3 Credits)
- CMSC422 Introduction to Machine Learning (3 Credits)
- CMSC424 Database Design (3 Credits)
Select one of the following: (3 Credits)
- CMSC420 Advanced Data Structures
- CMSC421 Introduction to Artificial Intelligence
- CMSC423 Bioinformatic Algorithms, Databases, and Tools
- CMSC425 Game Programming
- CMSC426 Computer Vision
- CMSC427 Computer Graphics
- CMSC470 Introduction to Natural Language Processing
Select one of the following:
- CMSC451 Design and Analysis of Computer Algorithms
- CMSC454 Algorithms for Data Science
- CMSC460 Computational Methods
Select two of the following: (6-7 Credits)
- CMSC411 Computer Systems Architecture
- CMSC412 Operating Systems
- CMSC414 Computer and Network Security
- CMSC417 Computer Networks
- CMSC430 Introduction to Compilers
- CMSC433 Programming Language Technologies and Paradigms
- CMSC434 Introduction to Human-Computer Interaction
- CMSC435 Software Engineering
Total Credits: 18-19
Courses that fall within each area are listed in the General Track degree requirements. The five areas are: Area 1: Systems, Area 2: Information Processing, Area 3: Software Engineering and Programming Languages, Area 4: Theory, and Area 5: Numerical Analysis.
Machine Learning Specialization
Students looking to pursue the machine learning specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, STAT4xx beyond MATH141, and MATH240), and the upper level concentration requirements as detailed above. The difference in the specialization is the upper level computer science courses. Students must fulfill their computer science upper level course requirements from at least 3 areas.
Students are required to take:
- CMSC320 Introduction to Data Science (3 Credits)
- CMSC421 Introduction to Artificial Intelligence (3 Credits)
- CMSC422 Introduction to Machine Learning (3 Credits)
Select two of the following: (6 Credits)
- CMSC426 Computer Vision
- CMSC/AMSC460 Computational Methods or CMSC/AMSC466 Introduction to Numerical Analysis I or MATH401 Applications of Linear Algebra
- CMSC470 Introduction to Natural Language Processing
- CMSC472 Introduction to Deep Learning
- CMSC473 Capstone in Machine Learning
- CMSC474 Introduction to Computational Game Theory
- CMSC476
Upper Level Elective Courses: six credits from CMSC3XX or CMSC4XX excluding CMSC330 and CMSC351
Total Credits: 21
Students may fulfill an area requirement under the Upper Level Elective Courses requirement. Courses that fall within each area are listed in the General Track degree requirements. The five areas are: Area 1: Systems, Area 2: Information Processing, Area 3: Software Engineering and Programming Languages, Area 4: Theory, and Area 5: Numerical Analysis.
Quantum Information Specialization
Students looking to pursue the quantum information specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, STAT4xx beyond MATH141, and MATH240), and the upper level concentration requirements as detailed above. The difference in the specialization is the upper level computer science courses. Students must fulfill their computer science upper level course requirements from at least 3 areas.
Students are required to take:
- CMSC457 Introduction to Quantum Computing (3 Credits)
- PHYS467 Introduction to Quantum Technology (3 Credits)
Select four 400 level courses from at least two of the following areas (excluding Area 4: Theory) with no more than three courses in a given area: (12-13 Credits)
- CMSC411 Computer Systems Architecture
- CMSC412 Operating Systems
- CMSC414 Computer and Network Security
- CMSC416 Introduction to Parallel Computing
- CMSC417 Computer Networks
- CMSC420 Advanced Data Structures
- CMSC421 Introduction to Artificial Intelligence
- CMSC422 Introduction to Machine Learning
- CMSC423 Bioinformatic Algorithms, Databases, and Tools
- CMSC424 Database Design
- CMSC426 Computer Vision
- CMSC427 Computer Graphics
- CMSC470 Introduction to Natural Language Processing
- CMSC430 Introduction to Compilers
- CMSC433 Programming Language Technologies and Paradigms
- CMSC434 Introduction to Human-Computer Interaction
- CMSC435 Software Engineering
- CMSC436 Programming Handheld Systems
- CMSC451 Design and Analysis of Computer Algorithms
- CMSC452 Elementary Theory of Computation
- CMSC456 Cryptography
- CMSC460 Computational Methods or CMSC466 Introduction to Numerical Analysis I
Upper Level Elective Courses: three credits from CMSC3XX or CMSC4XX excluding CMSC330 and CMSC351(3 Credits)
Total Credits: 21-22
Students may fulfill an area requirement under the Upper Level Elective Courses requirement. Courses that fall within each area are listed in the General Track degree requirements.
Skills Developed
Graduates will be able to create, augment, debug, and test computer software. These skills will be built progressively through the courses in the introductory sequence and in some courses beyond that. Graduates will develop mathematical and reasoning skills that are needed for computer science. Graduates will be able to design and implement programming projects that are similar to those seen in the real world. Graduates will gain skills in communication.
Exemption Exams
Much of the knowledge at the early stage of the degree program is cumulative. To ensure incoming first-year and transfer students start with the appropriate courses, the department offers exemption exams for CMSC131, CMSC132, CMSC216, and CMSC250.
Tuition and Fees
In 2022-2023, the average part-time undergraduate tuition at UMCP was $1,613 per credit hour for out-of-state students. The average full-time tuition and fees for undergraduates are shown in the table below.
| In State | Out of State | |
|---|---|---|
| Tuition | $9,889 | $38,690 |
| Fees | $1,616 | $1,616 |
| Books and Supplies | $1,250 | $1,250 |
| On Campus Room and Board | $15,416 | $15,416 |
| On Campus Other Expenses | $2,714 | $2,714 |
Diversity
During the 2021-2022 academic year, 954 compsci majors earned their bachelor's degree from UMCP.
Salary
The median salary of compsci students who receive their bachelor's degree at UMCP is $99,756. This is higher than $70,400, which is the national median for all compsci bachelor's degree recipients.
Student Debt
While getting their bachelor's degree at UMCP, compsci students borrow a median amount of $43,787 in student loans.
Master of Science Program
The Master of Science in Computer Science has a 30-credit curriculum that prepares students to either enter the computer science workforce or continue on to a doctoral program of study, building core skills that are widely applicable to many areas of science, engineering, industry, business, and research. The program is designed for students with strong preparation in computer science, gained through successful completion of an undergraduate computer science program or other professional experience.
Thesis and Non-Thesis Options
The curriculum offers a thesis and a non-thesis option which permits students to complete their degree through coursework. Focused on engagement with research projects under the mentorship of a faculty member and culminating in the preparation and defense of a thesis, the thesis option is particularly appropriate for students for considering further graduate study in a doctoral program. For complete information, see Computer Science - M.S. Degree Requirements.
Program Objectives
These requirements are for students who enroll in the 2025-2026 academic year. Through the program, students will:
- Develop the analytical and problem-solving skills necessary to design, implement, test, and debug computer programs.
- Design and implement a computing-based solution to meet a given set of requirements, standards, and guidelines.
- Evaluate alternative architectures, algorithms, and systems to make informed decisions that optimize system performance.
- Apply mathematical principles, computer science theory, and software development fundamentals to design and build effective computing-based solutions.
- Communicate effectively with a range of audiences in a variety of professional contexts.
- Recognize local, national, and international technical standards and legal, ethical, and intellectual property regulations in practice.
Computer Science Courses
- CMSC100 Bits and Bytes of Computer and Information Sciences (1 Credit) Introduces students to the fields of computer science and information science, focusing on study skills, success plans, and research opportunities.
- CMSC106 Introduction to C Programming (4 Credits) Focuses on design and analysis of programs in C, using structured programming concepts.
- CMSC115 Gender, Race and Computing (3 Credits) Examines the impact of race and gender on computing, and how power structures are embedded in digital technologies.
- CMSC122 Introduction to Computer Programming via the Web (3 Credits) Introduces programming using JavaScript for developing dynamic websites.
- CMSC125 Introduction to Computing (3 Credits) Provides an overview of the computing field.
- CMSC131 Object-Oriented Programming I (4 Credits) Introduces object-oriented programming using Java, emphasizing program design and testing.
- CMSC132 Object-Oriented Programming II (4 Credits) Covers software engineering principles, using object-oriented methods to solve problems in Java.
- CMSC133 Object Oriented Programming I Beyond Fundamentals (2 Credits) An introduction to computer science and object-oriented programming for students with prior Java programming knowledge (conditionals, loops, methods).
- CMSC198 Special Topics in Computer Science for Non-Majors (1-4 Credits) Allows non-majors to study specialized topics.
- CMSC216 Introduction to Computer Systems (4 Credits) Introduces the interaction between user programs and the operating system/hardware, covering C programming, systems programming, and assembly language.
- CMSC250 Discrete Structures (4 Credits) Covers mathematical concepts related to computer science, including sets, relations, functions, and logic.
- CMSC298 Special Topics in Computer Science (1-4 Credits) Allows lower-level students to pursue specialized topics.
- CMSC298Q Quantum Steampunk Science-Fiction Workshop (3 Credits) Explores the intersection of quantum thermodynamics and steampunk science fiction.
- CMSC320 Introduction to Data Science (3 Credits) Introduces the data science pipeline, covering statistical analysis, data mining, and information visualization.
- CMSC330 Organization of Programming Languages (3 Credits) Studies programming languages, including their syntax, semantics, and implementation.
- CMSC335 Web Application Development with JavaScript (3 Credits) Covers modern web application development using JavaScript.
- CMSC351 Algorithms (3 Credits) Focuses on the complexity of elementary algorithms related to sorting, graphs, and combinatorics.
- CMSC388 Special Topics in Computer Science (1-3 Credits) Seminar courses that allow students to pursue new and emerging areas of Computer Science.
- CMSC389 Special Topics in Computer Science (1-3 Credits) Seminar courses that allow students to pursue new and emerging areas of Computer Science; course may be used as electives for the undergraduate degree and minor.
- CMSC395 Teaching Techniques for Computer Science (1 Credit) Improves teaching skills for teaching assistants, focusing on effective teaching practices and diversity.
- CMSC396 Computer Science Honors Seminar (1 Credit) Provides an overview of computer science research activities and techniques.
- CMSC398 Special Topics in Computer Science (1-3 Credits) Seminar courses that allow students to pursue new and emerging areas of Computer Science.
- CMSC401 Algorithms for Geospatial Computing (3 Credits) Introduces geospatial objects and geometric algorithms for spatio-temporal data processing and analysis.
- CMSC411 Computer Systems Architecture (3 Credits) Covers input/output processors, intra-system communication, buses, caches, and memory hierarchies.
- CMSC412 Operating Systems (4 Credits) Provides a hands-on introduction to operating systems, including multiprogramming, communication, memory management, and scheduling.
- CMSC414 Computer and Network Security (3 Credits) Introduces security in computer systems and networks, covering number theory, authentication, and encryption.
- CMSC416 Introduction to Parallel Computing (3 Credits) Introduces parallel computing, covering programming for shared memory and distributed memory architectures.
- CMSC417 Computer Networks (3 Credits) Covers computer networks and architectures, including the OSI model and network protocols.
- CMSC420 Advanced Data Structures (3 Credits) Focuses on properties and storage allocation of data structures.
- CMSC421 Introduction to Artificial Intelligence (3 Credits) Introduces ideas and methods in AI, including search, planning, games, and learning.
- CMSC422 Introduction to Machine Learning (3 Credits) Provides an overview of machine learning methods and adaptive systems.
- CMSC423 Bioinformatic Algorithms, Databases, and Tools (3 Credits) Introduces algorithms, databases, and tools used in bioinformatics.
- CMSC424 Database Design (3 Credits) Introduces database systems, the relational model, and query languages.
- CMSC425 Game Programming (3 Credits) Introduces computer game programming and design principles.
- CMSC426 Computer Vision (3 Credits) Introduces basic concepts and techniques in computer vision.
- CMSC427 Computer Graphics (3 Credits) Introduces 3D computer graphics, focusing on applications like computer games and AR/VR.
- CMSC430 Introduction to Compilers (3 Credits) Covers lexical analysis, parsing, intermediate representations, and code generation.
- CMSC433 Programming Language Technologies and Paradigms (3 Credits) Explores programming language technologies and their use in software design.
- CMSC434 Introduction to Human-Computer Inter…
- What is the Information Science (BSIS) major? Technical skills such as database design, information architecture, web and mobile development, and data analytics are combined with the social sciences (psychology, sociology), leadership, design, and the humanities (history, English).
- What are the interests of students who major in Information Science? The typical BSIS student is someone who encounters new technology, like Artificial Intelligences or Data Visualization and immediately begins thinking of the problems it could solve.
- What are the possible jobs opportunities for students with an Information Science degree? The Information Science degree prepares students for a variety of careers in information management and design.
- What is the day-to-day work of an Information Science graduate? Data analysts, Data Scientists, Data Stewards work with data to help people make better decisions. Database administrators (DBA) are responsible for the development, performance, integrity and security of organizations’ critical data infrastructure. The amount of digital content that is created each and every day is overwhelming. Although information is the critical resource, many organizations focus on creation of information systems. Students complete Pre-Calculus (MATH115) or a higher-level course, Psychology (PSYC100), Statistics (STAT100), Introduction to Programing in Information Science (INST126), and Introduction to Information Science (INST201).
- How is math applied to the major? Math courses ensure that students have a foundational knowledge of core mathematical and statistical concepts and the basic mathematical problem solving abilities.
- What are the strengths of students in this major? BSIS students’ strengths include analyzing data, managing information resources, and designing interfaces.
- What are some of the experiences BSIS students have had prior to college? BSIS students are exceptional at building relationships and communicating using creative platforms such as a blog or social media. Prior to college, students should have made valuable contributions to their community to illustrate a commitment toward providing accessible technological for all.
- What is cybersecurity? Cybersecurity, at its core, is the process of creating and maintaining socio-technical systems that are able to function reliably in the face of both incidental and malicious threats.
- How does an Information Science major prepare students to work in cybersecurity? With their focus on anticipating the implications of particular technologies, practices, and information strategies, BSIS graduates are uniquely trained to work as information analysts, cybersecurity risk analysts and managers, information security specialists, and security conscious systems developers.
- What is data science? Data science is an interdisciplinary field focused on collecting, organizing, managing, analyzing, and presenting data in ways that enable people to understand their world, see new solutions, and make more effective decisions. Data science brings together methods, processes and tools from a variety of disciplines, including archival science, statistics, mathematics, computing, data processing, information management, decision science, learning science, and visual design.
- Do Information Science majors work as data scientists? Information Science majors are able to design and implement efforts to organize, analyze, and deploy data for addressing particular problems and questions - the primary goal of data science efforts. Moreover, with their knowledge of information needs assessment, information resource design, and analytics, Information Science majors are well-prepared for the application of data science techniques in real organizations, communities, and teams.
tags: #university #of #maryland #college #park #computer

