B.S. Computer Science Requirements
Department of Computer Science
There are two components of the B.S. degree in computer science. The first is the core, which all computer science majors must take. The second is an elective section, in which each major selects three courses, based on personal interest and career goals, from among advanced topics in computer science. This allows students to tailor their course work to their own needs, while ensuring that every student receives the same fundamental background in the canonical areas of computer science.
Before being admitted to the next computer science or mathematics course in a sequence, a grade of C- or better must be earned in every prerequisite course.
A C or better is required in CMSC 161 to take CMSC 162.
The Core Requirements
The objective of the core requirements is to provide the student with the skills that are considered to be fundamental to the study of computer science. This includes grounding in various aspects of programming, computer architecture, discrete mathematical structures, computational models, and data structures. In addition, a thorough background in mathematics and computer science theory provide a strong analytic component, as well as providing many useful concepts of interest to Computer Scientists.
Required Computer Science Courses | |
---|---|
CMSC 140 - Discrete Structures | 4 s.h. |
CMSC 161 - Introduction to Programming I | 4 s.h. |
CMSC 162 - Introduction to Programming II | 4 s.h. |
CMSC 330 - Programming Languages | 4 s.h. |
CMSC 340 - Computational Models | 4 s.h. |
CMSC 362 - Data Structures | 4 s.h. |
CMSC 366 - Database Systems | 4 s.h. |
CMSC 370 - Computer Architecture | 4 s.h. |
CMSC 380 - Operating Systems | 4 s.h. |
CMSC 420 - Software Engineering | 4 s.h. |
Total | 40 s.h. |
Computer Science Elective Courses
The student is required to select a total of three courses (12 s.h.) from the list below. Up to four credits of CMSC 300/400 Co-Op may also be counted toward the elective credits.
Elective Computer Sciences Courses | |
---|---|
CMSC 375 - Computer Graphics | 4 s.h. |
CMSC 395 - Computer Networks | 4 s.h. |
CMSC 406 - Topics in Computer Science ** | 4 s.h. |
CMSC 415 - Computer and Network Security | 4 s.h. |
CMSC 419 - Mobile Device App Development | 4 s.h. |
CMSC 421 - Web Application Development | 4 s.h. |
CMSC 425 - Human Computer Interaction | 4 s.h. |
CMSC 435 - Compiler Construction | 4 s.h. |
CMSC 450 - Artificial Intelligence | 4 s.h. |
CMSC 452 - Data Mining | 4 s.h. |
CMSC 453 - Large-Scale Data Analytics and Visualization | 4 s.h. |
CMSC 467 - Design & Analysis of Algorithms | 4 s.h. |
CMSC 475 - Video Game Design & Development | 4 s.h. |
CMSC 476 - Parallel Programming | 4 s.h. |
CMSC 489/499 - Department Honors Thesis ** | 4 s.h. |
CMSC 498 - Independent Study in Computer Science ** | 4 s.h. |
** These courses may also be used in the elective group above with permission by the department.
Departmental Required-Related Courses
The student is required to take at least 20 s.h. of Mathematics and Natural or Physical Science courses.
Mathematics Courses
MATH 161 - Calculus I | 4 s.h. |
MATH 235 - Survey of Statistics | 3 s.h. |
MATH 304 - Matrix Algebra & Applications | 4 s.h. |
PHIL 312 or MATH 236 or higher (but not 301, 304,405) |
3-4 s.h. |
Total | 14-15 s.h. |
See placement policy for rules on which class to begin with.
Natural/Physical Science Courses
Minimum 6 Credits in BIOL 100 or 211 or 221 or CHEM 111 or 112 or ESSC 221 or 222 or 241 or 245 or 261 or PHYS 131 or 231 or 132 or 232
Additional Major Requirements
Every Computer Science major is required to complete an Advanced Writing course. It must be one of:
- ENGL 312 -- Technical Writing
- ENGL 319 -- Science Writing
Every Computer Science major must complete the General Education curriculum to satisfy degree requirements.