The major in Computer Science for BA students consists of a core of 17 credits of Computer Science courses, 7 credits of Mathematics courses, and 9 credits of elective Computer Science courses or approved courses from another department.

Curriculum Requirements for B.A. in Computer Science
and for Additional Major in Computer Science Fundamentals

Core Computer Science Courses
CSC 120Computer Programming I4
CSC 220Computer Programming II4
CSC 314Computer Organization and Architecture3
CSC 322System Programming3
CSC 317Data Structures and Algorithm Analysis3
or CSC 431 Introduction to Software Engineering
Core Mathematics Courses
MTH 161Calculus I (or equivalent - MTH 140 and MTH 141, MTH 151, or MTH 171)4
MTH 309Discrete Mathematics I3
Electives Requirement
Select 9 approved credit hours of the following:9
Any CSC 2XX, CSC 3XX, CSC 4XX, CSC 5XX 1, 2
Python Programming for Everyone 3
At most one of the following may be used as an elective towards the major from the list below separated by "or" (this constraint holds, whether choosing a course to serve as an approved substitute for CSC115 or choosing another elective from the list): 4
Cybersecurity: An Introduction to Security in Cyberspace
Computers and Society
Introduction to Business Technology and Programming
Python Programming: Fundamentals and Algorithms
Introduction to Programming
Geographic Information Systems I
Web Design
Foundations of Computational Marine Science
Bioinformatics Tools
Systems Analysis and Design
Web Application Development
Mobile Apps Development
Mobile to Cloud: Developing Distributed Applications
Building Virtual Worlds
Augmented Reality
Dynamic Data
Internet Computing I
Computer Organization and Design
Senior Project I 5
Senior Project II 5
Computer Architecture
Machine Learning
Neural Networks
Network Client-Server Programming
Object-Oriented and Distributed Database Management Systems
Agent Technology
Internet and Intranet Security
Data Mining
Mobile Computing
Special Topics in Computer Engineering
Geographic Information Systems II
Audio Software Development II
Current Trends in Music Engineering I
Scientific Computing in Marine and Atmospheric Sciences
Introduction to Numerical Analysis
Theory of Numbers
Numerical Linear Algebra
Numerical Methods in Differential Equations
Introduction to Probability
Introduction to Mathematical Statistics
Statistical Analysis
General Education Requirements
Written Communication Skills:
WRS 105First-Year Writing I3
WRS 106First-Year Writing II3
or ENG 106 Writing About Literature and Culture
Quantitative Skills:
Calculus I (fulfilled through the major)
Calculus Concepts with Foundations A
Calculus I for Engineers
Calculus I
Areas of Knowledge:
Arts and Humanities Cognate9
People and Society Cognate9
STEM Cognate (9 credits) (fulfilled through the major)
Additional Requirements for the B.A. 6
Language Requirement3-9
Natural Sciences Course3
Minor Requirement (must be non-STEM)15
Total Credit Hours120

CSC40X - Computer Science Practicum courses must be taken at the same time as their host courses.


Maximally 6 credits from CSC481 - Undergraduate Teaching Assistant in Computer Science.


CSC115 can be used as an elective towards the major only if taken before CSC120.


BTE 120, BTE 320, ECE 118, or MSC203 may be taken from this list as an elective towards the major only as an approved substitute for CSC115 before CSC120.


ECE 481 and 482 may also be used to replace any requirement for CSC410 or CSC411.


For the Additional Major in Computer Science, Fundamentals, B.S. students in the College of Arts and Science should use the requirements of the B.S. in place of the additional requirements listed here.  Students not in the College of Arts and Sciences should use the requirements of their school or college's degree,

Suggested Plan of Study

Plan of Study Grid
Year One
FallCredit Hours
CSC 120 Computer Programming I 1 4
MTH 161 Calculus I 4
WRS 105 First-Year Writing I 3
Language Course 3
Elective 3
 Credit Hours17
CSC 220 Computer Programming II 4
MTH 309 Discrete Mathematics I 3
WRS 106 or ENG 106 First-Year Writing II
or Writing About Literature and Culture
Language Course 3
Minor Course 3
 Credit Hours16
Year Two
CSC 314 Computer Organization and Architecture 3
Natural Science Course 3
Language Course 3
Minor Course 3
People and Society Cognate Course 3
 Credit Hours15
CSC 322 System Programming 3
Minor Course 3
Arts and Humanities Cognate Course 3
People and Society Cognate Course 3
Writing Intensive Course 3
 Credit Hours15
Year Three
CSC 317 Data Structures and Algorithm Analysis 3
Minor Course 3
Arts and Humanities Cognate Course 3
People and Society Cognate Course 3
Elective 3
 Credit Hours15
CSC 431 Introduction to Software Engineering 3
Writing Intensive Course 3
Minor Course 3
Arts and Humanities Cognate Course 3
Elective 3
 Credit Hours15
Year Four
Computer Science Elective 3
Elective 3
Elective 3
Elective 3
Elective 3
 Credit Hours15
Computer Science Elective 3
Writing Intensive Course 3
Elective 3
Elective 3
 Credit Hours12
 Total Credit Hours120

The prerequisites for CSC 120 are CSC 115 or MTH 141 or MTH 151 or MTH 161 or MTH 171 or MAS 110 or a score of 4 or 5 in AP Computer Science Principles (UM equivalency CSC 119).


The Department's mission is to educate and perform scholarly activities in the discipline of Computer Science, in order to meet national and international demand for trained computer scientists who are capable of building the robust computation structures upon which society is becoming increasingly dependent.


Students will acquire understanding and capability for the structure and developmental processes of software systems, from the translation of domain problems to forms amenable to software solution, through the production of efficient and robust computer programs, to the supporting systems and hardware components.

Students will acquire these abilities through a combination of classroom instruction, laboratory work, independent project work, and group project work.

Graduates will be prepared to work in industries that are directly involved in the development of fundamental computing resources (e.g., Microsoft, Apple, IBM, Intel, etc.), and in industries that rely on computation in support of their core businesses (e.g., banking, transport, manufacturing, medical, etc.).

Faculty and students will engage in activities that support and achieve the development of new techniques and software that can contribute to the science, and where appropriate contribute to the teaching objectives. Examples of such activities include academic research, development of novel techniques and software products, consulting and internship activities in local industries, and maintaining awareness of cutting edge approaches to Computer Science.

Student Learning Outcomes

  • Students must be able to translate domain problems to forms amenable to software solution.
  • Students must be able to produce efficient and robust computer programs.
  • Students must be able to build and deploy a completed, integrated, and documented (Advanced Writing and Communication Skills) software solution to a domain problem.
  • Students must have understanding and competence in the mathematical foundations of Computer Science.