Menu Close

Bachelor of Science in Computer Science

The Bachelor of Science in Computer Science (BS CS) provides an in-depth foundation in programming, software development, technology systems, science, and math. You may find this degree of interest if you want to pursue software development as a career path or go to graduate school in computer science. In addition to the General Track, the ICS Department also offers three specialized BS CS tracks: Data Science, Security Science and Creative Computational Media.

There is a required Capstone Project for students seeking this degree.

General Track

Students must complete the following courses for the BS CS (General) degree (57 credits, total of 18 courses):

  • ICS 111 : Introduction to Computer Science I
  • ICS 141 : Discrete Mathematics for Computer Science I
  • ICS 211 : Introduction to Computer Science II
  • ICS 212 : Program Structure or ICS 215:
  • ICS 241 : Discrete Mathematics for Computer Science II
  • ICS 311 : Algorithms (Substitution allowed: EE 367 can be a substitution for ICS 311)
  • ICS 314 : Software Engineering
  • ICS 321 : Database Systems
  • ICS 332 : Operating Systems
  • ICS 355 : Security and Trust I: Resource Protections
  • ICS 496 : Capstone Project
  • One course in two of the following pairs:
    • ICS 312 : Machine-Level and Systems Programming or ICS 331 : Logic Design and Microprocessors
    • ICS 313 : Programming Language Theory or ICS 361 : Introduction to Artificial Intelligence Programming
    • ICS 351 : Network Design and Management or ICS 451 : Data Networks
  • At least four more ICS or other approved courses at the 400 level or above
  • Either MATH 307 : Linear Algebra or Math 311 or MATH 372 : Elementary Probability & Statistics

Substitutions are permitted with the written approval of a faculty adviser. Waiver of certain requirements, such as the Advanced Placement CS exam, must be approved by an ICS faculty adviser.

Here is a diagram illustrating some possible paths through our BS-CS (General) program:

B.S. Computer Science (General) Course Flowchart
B.S. Computer Science (General) Course Flowchart

Data Science – Bachelor of Science Requirements

The Bachelor of Science in Computer Science – Data Science track offers a solid foundation in computer science with a focus in data modeling, visualization, statistics, and machine learning.

Students must complete the following courses for the BS CS (Data Science) degree (57 credits, total of 18 courses):

  • ICS 111 : Introduction to Computer Science I
  • ICS 211 : Introduction to Computer Science II
  • ICS 212 : Program Structure
  • ICS 235 :  Machine Learning Methods (Fall only)
  • ICS 311 : Algorithms (Substitution allowed: EE 367 can be a substitution for ICS 311)
  • ICS 314 : Software Engineering
  • ICS 321 : Database Systems
  • ICS 355 : Security and Trust I
  • ICS 434 : Data Science Fundamentals
  • ICS 435 : Machine Learning Fundamentals
  • ICS 438 : Big Data Analytics
  • ICS 484 : Data Visualization
  • MATH 301 : Introduction to Discrete Mathematics
  • MATH 307 : Linear Algebra or Math 311
  • MATH 372 : Elementary Probability & Statistics

The Data Science track also requires three upper-level (400+) elective courses that must be approved by a Data Science Faculty Advisor. These electives may be courses taken in other departments that include a significant data modeling component. This enables students to apply their skills to applications that interest them. Below is a list of suggested elective courses. To request approval for a course, contact Mahdi Belcaid or Peter Sadowski.

  • ICS 496: Capstone Project
  • ICS 422: Network Science Methodology
  • ICS 483: Computer Vision
  • ICS 475 Introduction to Bioinformatics Sequences and Genomes Analysis
  • BIOL483/MBBE483: Bioinformatics
  • ATMO/CEE/SUST 449: Climate Modeling, Data Analysis & Applications
  • ECON 425: Introduction to Econometrics
  • ECON 427: Economic Forecasting
  • MATH 407: Numerical Analysis
  • MATH 471: Probability
  • MATH 472: Statistical Inference

The following diagram illustrates possible paths through the BS-CS (Data Science) track:

B.S. Computer Science (Data Science) Course Flowchart

Security Science – Bachelor of Science Requirements

As computation and information are spreading through ever wider networks, supporting ever more complex and more important applications, security is becoming a central problem of Information and Computer Sciences. The tasks of protecting security and privacy also offer an increasing range of employment and business opportunities for ICS graduates. The Security Science (SecSci) track provides the technical capabilities and the conceptual background needed for entry into this exciting and expanding area.

The Bachelor of Science in Computer Science – Security Science track offers a solid foundation in computer science with a focus in cyber security. This degree provides students with the opportunity to focus in this area of concentration within the computer science field.

Students must complete the following courses (54 credits, total of 17 courses):

  • ICS 111 : Introduction to Computer Science I
  • ICS 141 : Discrete Mathematics for Computer Science I
  • ICS 211 : Introduction to Computer Science II
  • ICS 212 : Program Structure or ICS 215:
  • ICS 241 : Discrete Mathematics for Computer Science II
  • ICS 311 : Algorithms (Substitution allowed: EE 367 can be a substitution for ICS 311)
  • ICS 314 : Software Engineering
  • ICS 321 : Database Systems
  • ICS 222 : Basic Concepts of Computer Science
  • ICS 355 : Security and Trust I: Resource Protections
  • ICS 351 : Network Design and Management or ICS 451 : Data Networks
  • One of the following:
    • ICS 312 : Machine-Level and Systems Programming
    • ICS 331 : Logic Design and Microprocessors
    • ICS 332 : Operating Systems

Four electives from this list (12 credits):

  • ICS 423 : Data Security and Cryptography I
  • ICS 425 : Computer Security and Ethics
  • ICS 426 : Computer System Security
  • ICS 428 : Digital Forensics
  • ICS 455 : Security and Trust II: Information Assurance
  • ICS 495 : Special Topics in Security
  • ECE 406 : Introduction to Computer and Network Security
B.S. Computer Science (Security Science) Course Flowchart
B.S. Computer Science (Security Science) Course Flowchart

Creative Computational Media – Bachelor of Science Requirements

62 credits required

Required Courses

ICS Related Requirements (7-8 credits)

  • To enroll in all courses requiring Calculus II as their prerequisite (ICS 311, MATH 307, and MATH 372), students must take MATH 242 or 252A for their Calculus II requirement.
  • MATH 215 or 241 or 251A (Calculus I) is a prerequisite for MATH 242. However, students must meet the grade requirement B (not B-) in MATH 215 to enroll in MATH 242.
  • MATH 241 or 251A (Calculus I) is a prerequisite for MATH 252A. However, students must meet the grade requirement B (not B-) in MATH 241 and receive consent to enroll in MATH 252A.

ICS Core Requirements (56 credits)

  • ICS 110D : Introduction to Computer Programming Through animations
  • ICS 111 :  Introduction to Computer Science I
  • ICS 211 : Introduction to Computer Science II
  • ICS 212 : Program Structure
  • ICS 235 : Machine Learning Methods (Fall only)
  • ICS 311 :  Algorithms (Substitution allowed: EE 367 can be a substitution for ICS 311)
  • ICS 314 : Software Engineering
  • ICS 321 : Database Systems
  • ICS 355 : Security and Trust I
  • ICS 369 : Computational Media Systems
  • ICS 481 : Introduction to Computer Graphics
  • ICS 487 : Digital Content Creation I
  • ICS 488 : Digital Content Creation II
  • ICS 496 : Capstone Project
  • MATH 301 : Introduction to Discrete Mathematics
  • MATH 307 : Linear Algebra or Math 311
  • MATH 372 : Elementary Probability & Statistics

Elective Courses (6 Credits)

Select from among the following:

  • ICS 464 : Human Computer Interaction I
  • ICS 482 : Topics in Computer Graphics
  • ICS 484 : Data Visualization
  • ICS 485 : Video Game Design
  • ICS 486 : Virtual and Augmented Reality
  • ICS 487 : Digital Content Creation I
  • ICS 489 : Software Techniques for Computer Visual Effects

Capstone Project

The Capstone course (ICS 496) is an undergraduate course that provides final-year undergraduate students with the opportunity to work in teams and apply the knowledge and skills they have acquired during their educational journey in the ICS department to plan, execute, deliver, and present a software development project. This course is designed to give students real-world experience of what it is like to work on a software development project and to prepare them for the demands and expectations of the industry.

The Capstone course is optional for BA ICS students who entered the major before Fall 2020. Students who entered the BS CS (General) major in or after Fall 2020 must complete a capstone project in their senior year. Students in the Security Science or Data Science track are not required to take the capstone course. Students may also receive credit for a capstone project if they are engaged in a software development effort as part of an internship (based on instructor approval).

Students will work on team-based projects sponsored by various entities, including the faculty of the ICS department, faculty from other departments within the university, state/federal agencies/departments (e.g., US Army), non-profit organizations, or industry partners. Students will work closely with their project sponsors throughout the project lifecycle, which will involve regular communication, collaboration, and demonstrations to ensure that the project meets the sponsor’s expectations and requirements. The project sponsor will provide guidance and feedback to the students and be available to answer questions and address any issues that may arise during the project. This approach provides students with experience in stakeholder collaboration and communication, which is essential to the success of real-world software development projects and for the students’ professional development. The project sponsor will also be responsible for providing the course instructor with evaluations for each student at the end of the semester.

Throughout the semester, there are predefined checkpoints for students to prepare and deliver presentations that outline their progress and identify any issues or risks they have encountered. Students will also present software development best practices and project management techniques they utilize in their projects. The course instructors will evaluate the presentations and provide feedback and guidance to the teams on overcoming obstacles and moving forward with their projects. Upon course completion, each team will create and present a poster about their project at the semester’s ICS Project Day. Attendees at the event include faculty and staff of the department and university, project sponsors, local industry leaders, and other special invitees.

Course Registration

Students must register for ICS 496. If you need help registering, please contact your academic advisor. If you have questions about the course, please email Prof. Anthony Peruma.
Note: The project cannot be the student’s UROP project, a project from another class (e.g., ICS 499), or part of their honors thesis.

Potential Sponsors

Are you interested in sponsoring a project? The ICS Department welcomes project proposals for the Capstone course. The proposed project must involve two or more students working together to build a software application (website, mobile app, desktop app). As a project sponsor, you would be required to meet weekly with your project team. Please email Prof. Anthony Peruma with details about your project or questions about the Capstone course.
Note: The project sponsor cannot be a (graduate/undergraduate) student. Sponsors can only be faculty or experienced industry professionals.

Please review the Student & Sponsor Expectations document and the High-Level Timeline document.