Degree Requirements
I. Core Courses (35)
13-240 | Applied Calculus | 4 |
13-307 | Applied Linear Algebra | 3 |
13-310 | Discrete Mathematics | 4 |
70-200 | Introduction to Computer Science | 3 |
70-210 | Programming Fundamentals | 3 |
70-245 | Object-Oriented Programming | 3 |
70-300 | Computer Organization | 3 |
70-340 | Algorithms and Data Structures | 3 |
70-350 | Operating Systems | 3 |
70-460 | Programming Languages | 3 |
70-480 | Communications and Networking | 3 |
II. Capstone Sequence (6)
Complete either course sequence:
70-440 | Software Engineering | 3 |
70-492 | Software Systems Capstone Project | 3 |
-
| OR | |
70-485 | Advanced Communications and Networking | 3 |
70-493 | Computer Infrastructure Capstone Project | 3 |
III. Electives (12)
Electives give students the opportunity to focus on specific topics of interest. Computer Science is a field with broad impact and a commensurately diverse focus. Because of this, it can sometimes be difficult for a student to identify computer science electives that match his or her interests and career aspirations. Formal concentrations exist within the Computer Science curriculum to help a student select electives that match his or her interests and goals. A Concentration is a set of electives that fit a particular theme. They provide a framework for selecting the four electives a Computer Science major needs to complete the Bachelor of Science in Computer Science. A student need not declare a Concentration and may instead choose his or her electives per the rules described under No Declared Concentration below. However, if a student wishes to pursue and declare a specific area of focus, then he or she may pursue a particular Concentration. A student may declare no more than one Concentration in which to graduate. The purpose of these formal Concentrations is not to prescribe or constrain the electives a student takes. Rather, it is to provide the student guidance in choosing elective coursework with a specific focus.
A. No Declared Concentration
Choose any four additional computer science courses at or above the 200 level. One of the following courses may substitute for one computer science elective:
13-314 | Applied Probability and Statistics | 3 |
13-315 | Probability and Statistics I | 3 |
13-350 | Numerical Analysis | 3 |
13-425 | Mathematical Modeling | 3 |
B. Game and Simulation Programming Concentration
The purpose of the Game and Simulation Programming concentration is to prepare students to write computer games and simulations of real-world process and systems. Gaming and simulation are kindred pursuits, and so students who take the courses of this concentration will be well-qualified to develop both of these kinds of software applications.
i. Choose this required course:
70-410 | Video Game Programming 1 | 3 |
ii. Chose three of the following:
13-425 | Mathematical Modeling | 3 |
70-415 | Video Game Programming 2 | 3 |
70-417 | Mobile Application Development | 3 |
70-430 | Computer Graphics | 3 |
70-470 | Artificial Intelligence | 3 |
C. Cyber Security Operations Concentration
Cyber Security Operations is a highly technical focus within the field of Information Security that requires computer scientists who understand the ways in which data are represented, stored, and processed; how machines and operating systems manage memory and processing resources; and how applications interact and influence each other during their execution. The purpose of Cyber Security Operations Concentration is to provide students the skills and knowledge they need to protect computers, networks, and data stores.
To earn the Concentration in Cyber Security Operations, a student must take four of the following eleven courses:
70-220 | Introduction to Unix | 3 |
70-250 | File Systems and Digital Forensics | 3 |
70-330 | Database Systems | 3 |
70-355 | Cloud Computing and Virtualization | 3 |
70-360 | Applied Programming Languages | 3 |
70-420 | Computer Security | 3 |
70-423 | Cyber Security and Forensics Tools | 3 |
70-425 | Encryption | 3 |
70-427 | Programming for Penetration Testing | 3 |
70-428 | Programming for Digital Forensics | 3 |
70-485 | Advanced Communications and Networking | 3 |
D. Pervasive Computing Concentration
Increasingly, people consume and produce data on non-traditional computing platforms, such as smart phones, tablets, electronic appliances, and control systems. The coursework of the Pervasive Computing Concentration prepares students to develop applications and systems of applications that process and present diverse, distributed data on a variety of platforms.
To earn the Pervasive Computing Concentration, students must take four courses from this list of seven:
70-230 | Visual Basic | 3 |
70-247 | Web and Distributed Programming | 3 |
70-330 | Database Systems | 3 |
70-355 | Cloud Computing and Virtualization | 3 |
70-360 | Applied Programming Languages | 3 |
70-417 | Mobile Application Development | 3 |
70-472 | Introduction to Data Mining | 3 |
E. Computational Theory Concentration
Like all other scientific fields, Computer Science is both a theoretical and an empirical pursuit. Computer Scientists use and develop applications guided by a rich body of theoretical principles. What we understand about how systems process, store, and discover data continues to evolve, thanks to the work of theoreticians in the field. The purpose of the Computational Theory Concentration is to train Computer Scientists who can advance our understanding of how computer systems process, store, and create data and instructions.
i. Choose one Mathematics course:
13-314 | Applied Probability and Statistics | 3 |
13-315 | Probability and Statistics I | 3 |
13-350 | Numerical Analysis | 3 |
13-425 | Mathematical Modeling | 3 |
ii. Choose three Computer Science courses:
70-315 | Scientific Computing | 3 |
70-355 | Cloud Computing and Virtualization | 3 |
70-470 | Artificial Intelligence | 3 |
70-471 | Machine Learning | 3 |
70-472 | Introduction to Data Mining | 3 |
70-490 | Compiler Construction | 3 |
F. Data Science Concentration
Practitioners of virtually every discipline are collecting data like never before to gain a deeper understanding of their discipline and to make better decisions. The technical challenges associated with collecting, storing, processing, communicating, visualizing, and interpreting the huge quantities of data that have become available today are far from trivial. All of these challenges are the kinds computer scientists can meet, thanks to their deep understanding of how computer systems accomplish such tasks. The courses of the Data Science Concentration prepare students to design and develop software and hardware solutions for maximizing the value of Big Data.
i. Choose one Mathematics course:
13-314 | Applied Probability and Statistics | 3 |
13-315 | Probability and Statistics I | 3 |
ii. Choose both of the following:
iii. Choose one Computer Science course:
70-235 | Programming for Data Analysis | 3 |
70-355 | Cloud Computing and Virtualization | 3 |
70-470 | Artificial Intelligence | 3 |
70-471 | Machine Learning | 3 |
IV. The Advanced Writing requirement for Computer Science majors is satisfied by completing a Capstone sequence: both 70-440 Software Engineering and 70-492 Software Systems Senior Project OR both 70-485 Advanced Communications and Networking and 70-493 Computer Infrastructure Senior Project.