The Bachelor of Science in Computer Science provides you with an in-depth foundation in software technology, 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.
Students must complete the Bachelor of Science General Education Core, which is described in the General and Graduate Information Catalog, and an advising sheet available from the College of Arts and Sciences Student Academic Services office.
For the major, students must complete:
- Required courses: ICS 111/L, 141, 211, 212, 241, 311, (312 or 331/L), (313 or 361), 314, 321, 332
- Junior/senior electives: five ICS (or approved) 400-level courses, including at most three credits of ICS 499 and six credits of ICS 491.
See our ICS Academic Plan document for more information regarding our program and our requirements.
Here is a diagram illustrating some possible paths through our program:
B.S.: Security Science (SecSci) Focus
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 the ICS graduates. The focus area of Security Science (SecSci) provides the technical capabilities and the conceptual background needed for entry into this exciting and expanding area.
Although computation begins with programming, modern applications often involve physical and social interactions that cannot be programmed or engineered. The processes of security, privacy, and trust therefore offer a glimpse beyond the engineering aspects of computation, and into Computer Science as a genuine science.
The SecSci focus area is built around the courses “Security and Trust I, II and III”, which go under the respective course codes ICS 355, 455 and 655. The core course of the whole SecSci focus area is ICS 355, introducing the basic concepts of security, privacy and trust, and enabling students to understand, design and manage a broad range of resource security tasks, such as access control.
ICS 455 provides an introduction into information security, including cryptographic protocols. (This material is complemented by the courses ICS 423 and ICS 623 on Data Security and Cryptography. ICS 623 is a graduate course.)
ICS 655 is a graduate course about the economic aspects of security. The undergraduate students are not expected to take graduate courses, but students with genuine interest and motivation, graduate or undergraduate, are always welcome.
For the B.S. in Computer Science with focus in Security Science, students need to take the following courses:
- at the 300-level, ICS 314, ICS 321, ICS 332, ICS 355 and either ICS 315 or ICS 351;
- at the 400-level, ICS 423, ICS 455 and one from each of the following pairs:
- ICS 414 or ICS 464
- ICS 425 or ICS 426
- ICS 491, or ICS 495
Program Educational Objectives
Within a few years of graduation, our alumni:
- demonstrate technical expertise, as professionals, graduate students or individuals, by conceiving and developing solutions to challenging and relevant technical problems.
- engage in post-baccalaureate development, research, and/or community projects in technological and scientific domains, with an understanding of professional, ethical, and social responsibilities.
- achieve professional success as communicators and as team members/leaders.
- engage in post-baccalaureate learning via professional development, advanced degrees, and/or self-study.
- SO #1: An ability to apply mathematical foundations, algorithmic principles, and computer science theory to the modeling and design of computer-based systems
- SO #2: An ability to define the computing requirements of a problem and to design appropriate solutions based on established design principles and with an understanding of the tradeoffs involved in design choices
- SO #3: An ability to use sound development principles to implement computer-based and software systems of varying complexity, and to evaluate such systems
- SO #4: An ability to collaborate effectively in teams to accomplish a common goal
- SO #5: An understanding of professional, ethical, legal, social and security-related issues and of the responsibilities of computer scientists
- SO #6: An ability to analyze the local and global impact of computing on individuals, organizations, and society
- SO #7: A recognition of the need for engaging in continuing professional development
- SO #8: An ability to use current techniques, skills, and tools necessary for computing practice
Historical Enrollment and Graduation Numbers
|Academic year||Fall Enrollment||B.S. graduates|