Bachelor of Science in Computer Science
The modern world revolves around continual advances in technology and creative programming solutions which require an innovative workforce with specialized programming skills. The modern world revolves around continual advances in technology and creative programming solutions which require an innovative workforce with specialized programming skills.
Program Description
The Bachelor of Science in Computer Science degree begins by immersing students in computer science-related courses in their first semester. Specialized computer science courses continue to follow, providing depth in many related issues and in a focus of your choosing; in the junior and senior years, a student can choose from elective courses within Computer Science, Mathematics, and several Engineering disciplines. Over the course of the program, students in this program take more computer science-related courses as part of their degree than at other universities. In addition to these electives, students take courses in project management, humanities, and ethics to prepare them for post-graduation. The program culminates with a project-oriented, two-semester senior capstone course through which you will develop the client-facing and project management skills expected of the modern IT professional.
Undergraduate students are encouraged to get involved with faculty and their research, in areas such as computer security, machine learning, computer vision, and data mining. The quality of this research is demonstrated by the publication and funding records of the faculty of the department. Many students follow this path after graduation, choosing to remain at Stevens for graduate work or pursuing Ph.D. research with faculty they came to know during their undergraduate studies.
The Bachelor of Science program in Computer Science is accredited by the Computing Accreditation Commission (CAC) of the Accreditation Board for Engineering and Technology (ABET).
Concentrations
-
AI and Machine Learning
-
Application Development
-
Systems
-
Security
-
Theory
Minors
Program Objectives and Outcomes
Through our world-class research in software systems, and our innovative and high-quality undergraduate, graduate and Ph.D. educational programs, we strive to be a national and world leader in developing new information technologies and educating the next generation of IT professionals and researchers.
This mission guides the program’s educational objectives, describing the career and professional accomplishments that the program is preparing graduates to achieve. These are the professional accomplishments that students are expected to have achieved three years after graduation:
-
Have acquired new skills and knowledge on one's own (Skills Development)
-
Have created solutions to real world computational problems (Skills Application)
-
Be proficient in both oral and written technical communication in professional and social capacities (Communication)
-
Be effective as either a member or a leader of a team in professional and social capacities (Teamwork)
-
Have evaluated the impact of one's work on the intended users and on society (Impact)
Student Objectives and Outcomes
Student outcomes are measurable goals for the learning that takes place during a student's time in the program. These narrow statements describe what students are expected to know and be able to do by the time of graduation, relating to the skills, knowledge, and behaviors that students acquire in the program:
- Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions (Analysis)
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline (Design)
- Communicate effectively in a variety of professional contexts (Communication)
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles (Professionalism)
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline (Teamwork)
- Apply computer science theory and software development fundamentals to produce computing-based solutions (Development)
Not only do outcome goals exist for the overall program, but each course has its own, more specific outcomes.
Computer Science Requirements
The program requires the following courses:
Mathematics
Computer Science
CS 101 | Research and Entrepreneurship in Computing | 1 |
CS 115 | Introduction to Computer Science | 4 |
CS 284 | Data Structures | 4 |
CS 382 | Computer Architecture and Organization | 4 |
CS 385 | Algorithms | 4 |
CS 392 | Systems Programming | 3 |
CS 396 | Security, Privacy and Society | 4 |
CS 423 | Senior Design I | 3 |
CS 424 | Senior Design II | 3 |
CS 496 | Principles of Programming Languages | 3 |
Electives
Electives fall into three categories: science/math, general, and technical. Students must take at least two science/math electives and two general electives. Not every course may be counted as a general elective; in particular, courses that are similar to required courses may not be taken as general electives. Students should consult their advisor or the department web site to learn of any restrictions.
Students must also complete eleven technical electives. This number of electives allows students to explore different areas of computer science and to concentrate in areas that match their interests and strengths. Students are not required to concentrate in any one area but may choose technical electives from among the list of approved courses.
Students should consult with their advisors in planning their electives. Students wishing to concentrate in an area may consider from among: AI and machine learning, systems, application development, security, and theory. The recommended sequences in each area are described below. Students should check the department web site for new courses that may be offered.
Of the eleven technical electives, at least eight must be courses offered by the CS department; no more than three technical electives may be chosen from a set of approved courses offered by other departments.
Recommended Course Sequences in Concentration Areas
Sample Study Plan
Term I
CAL 103 | Writing and Communications Colloquium | 3 |
CS 101 | Research and Entrepreneurship in Computing | 1 |
CS 115 | Introduction to Computer Science | 4 |
MA 121 | Differential Calculus | 2 |
MA 122 | Integral Calculus | 2 |
| Science I | 3 |
Term II
CAL 105 | CAL Colloquium: Knowledge, Nature, Culture | 3 |
CS 135 | Discrete Structures | 4 |
CS 284 | Data Structures | 4 |
MA 125 | Vectors and Matrices | 2 |
MA 126 | Multivariable Calculus I | 2 |
| Science II | 3 |
| Science Lab | 1 |
Term III
CS 382 | Computer Architecture and Organization | 4 |
CS 385 | Algorithms | 4 |
MA 222 | Probability and Statistics | 3 |
| Humanities Elective | 3 |
| Science/Math Elective | 3 |
Term IV
CS 392 | Systems Programming | 3 |
CS 496 | Principles of Programming Languages | 3 |
MA 331 | Intermediate Statistics | 3 |
HUM
| Humanities | 3 |
T.E.
| Technical Elective | 3 |
Term V
CS 334 | Theory of Computation | 3 |
CS 396 | Security, Privacy and Society | 4 |
HUM
| Humanities | 3 |
T.E.
| Technical Elective | 3 |
| General Elective | 3 |
Term VI
T.E.
| Technical Elective | 3 |
T.E.
| Technical Elective | 3 |
T.E.
| Technical Elective | 3 |
T.E.
| Technical Elective | 3 |
| Science/Math Elective | 3 |
HUM
| Humanities | 3 |
Term VII
CS 423 | Senior Design I | 3 |
T.E.
| Technical Elective | 3 |
T.E.
| Technical Elective | 3 |
T.E.
| Technical Elective | 3 |
HUM
| Humanities | 3 |
Term VIII
CS 424 | Senior Design II | 3 |
T.E.
| Technical Elective | 3 |
T.E.
| Technical Elective | 3 |
| General Elective | 3 |
HUM
| Humanities | 3 |
Note:
Science I, Science II, and Science Lab: Science Electives: Undergraduate Programs Requirements.
Humanities and HSS 371 or HPL 455: The Humanities courses must have your advisor’s approval prior to enrolling. For details on Humanities courses and requirements please visit Humanities Requirements.
Electives
Electives fall into three categories: science/math, general, and technical. Students must take at least two science/math electives and two general electives. Not every course may be counted as a general elective; in particular, courses that are similar to required courses may not be taken as general electives. Students should consult their advisor or the department web site to learn of any restrictions.
Students must also complete eleven technical electives. This number of electives allows students to explore different areas of computer science and to concentrate in areas that match their interests and strengths. Students are not required to concentrate in any one area but may choose technical electives from among the list of approved courses.
Students should consult with their advisors in planning their electives. Students wishing to concentrate in an area may consider from among:
- AI and machine learning
- Application development
- Systems
- Security
- Theory
The recommended sequences in each area are described below. Students should check the department web site for new courses that may be offered.
Of the eleven technical electives, at least eight must be courses offered by the CS department; no more than three technical electives may be chosen from a set of approved courses offered by other departments.
These courses must each be 3 or more credits. No course may duplicate another; specifically, students may not count toward the major CS 501, CS 515, CS 550, CS 556, CS 570, or CS 590. Also, students may not count toward the major both courses in each of the following pairs: CS 382 and CS 550, CS 488 and CS 514, CS 492 and CS 520, CS 496 and CS 510, CS 442 and CS 561, SSW 540 and CS 347.
Recommended Course Sequences in Concentration Areas
AI and Machine Learning:
Students should take the basic courses: Artificial Intelligence (CS 541), and Machine Learning, Fundamentals and Applications (CS 559), followed by specialized courses depending on their individual interests. The recommended specialized courses include Computer Vision (CS 558), Causal Inference (CS 582), Deep Learning (CS 583), and Natural Language Processing (CS 584). Linear Algebra (MA 232) is a prerequisite for some of these courses, so students will be advised to take MA 232 early as an elective.
List of AI and ML courses available as technical electives:
CS 532 | 3D Computer Vision | 3 |
CS 541 | Artificial Intelligence | 3 |
CS 544 | Health Informatics | 3 |
CS 557 | Introduction to Natural Language Processing | 3 |
CS 558 | Computer Vision | 3 |
CS 559 | Machine Learning: Fundamentals and Applications | 3 |
CS 582 | Causal Inference | 3 |
CS 583 | Deep Learning | 3 |
CS 584 | Natural Language Processing | 3 |
CS 560 | Statistical Machine Learning | 3 |
Application Development:
Students should consider as basic electives: Mobile Systems and Applications (CS 522), Human Computer Interaction (CS 545), Web Programming (CS 546), and Web Programming II (CS 554).
List of application development courses available as technical electives:
CS 566 | Smartphone and Mobile Security | 3 |
CS 146 | Introduction to Web Programming and Project Development | 3 |
CS 370 | Creative Problem Solving and Team Programming | 3 |
CS 574 | Object-Oriented Analysis and Design | 3 |
CS 537 | Interactive Computer Graphics | 3 |
CS 539 | Real-Time Rendering, Gaming, and Simulations Programming | 3 |
CS 526 | Enterprise and Cloud Computing | 3 |
CS 594 | Enterprise and Cloud Security | 3 |
CS 548 | Enterprise Software Architecture and Design | 3 |
CS 562 | Database Management Systems II | 3 |
CS 597 | User Experience Design and Programming | 3 |
CS 609 | Data Management and Exploration on the Web | 3 |
Systems:
Students interested in systems courses will be advised to start with Operating Systems (CS 492), Concurrent Programming (CS 511), Compiler Design and Implementation (CS 516), and Distributed Systems and Cloud Computing (CS 549).
List of systems courses available as technical electives:
CS 488 | Computer Architecture | 3 |
CS 576 | Systems Security | 4 |
CS 577 | Reverse Engineering and Application Analysis | 4 |
CS 578 | Privacy in a Networked World | 3 |
CS 595 | Information Security and the Law | 3 |
CS 665 | Forensic Analysis | 3 |
CS 676 | Advanced Topics in Systems and Security | 3 |
CS 696 | Database Security | 3 |
CS 524 | Introduction to Cloud Computing | 3 |
CS 596 | Introduction to Windows Programming | 3 |
CS 615 | Systems Administration | 3 |
CS 677 | Parallel Programming for Many Core Processors | 3 |
Security:
Students interested in cybersecurity may choose to minor in the Cybersecurity program. Alternatively, they may explore courses in cybersecurity from among the following list of courses available as technical electives:
List of cybersecurity courses available as technical electives:
CS 576 | Systems Security | 4 |
CS 503 | Discrete Mathematics for Cryptography | 3 |
CS 579 | Foundations of Cryptography | 3 |
CS 693 | Cryptographic Protocols | 4 |
CS 665 | Forensic Analysis | 3 |
CS 676 | Advanced Topics in Systems and Security | 3 |
CS 696 | Database Security | 3 |
Theory:
The list of courses currently offered under this area, and that are eligible for technical electives:
CS 442 | Database Management Systems | 3 |
CS 503 | Discrete Mathematics for Cryptography | 3 |
CS 579 | Foundations of Cryptography | 3 |
CS 643 | Formal Verification of Software | 3 |
CS 693 | Cryptographic Protocols | 4 |
CS 601 | Algorithmic Complexity | 3 |
Courses offered in other departments that count towards electives
The following courses may be chosen to fulfill a technical elective. Students should consult the department web site to see the current list of approved courses.
BME 571 | Machine Learning in Biomedical Engineering | 3 |
CPE 390/EE 390 | Microprocessor Systems | 4 |
CPE 450 | Real-Time Embedded Systems | 3 |
CPE 462 | Introduction to Image Processing and Coding | 3 |
CPE 565 | Management of Local Area Networks | 3 |
EE 441 | Introduction to Wireless Systems | 3 |
EE 582 | Wireless Networking: Architectures, Protocols and Standards | 3 |
EE 583 | Wireless Communications | 3 |
EE 584 | Wireless Systems Security | 3 |
| | |
EE 608 | Applied Modeling and Optimization | 3 |
| Or | |
CPE 608 | Applied Modeling and Optimization | 3 |
| Or | |
NIS 608 | Applied Modeling and Optimization | 3 |
| | |
EE 612 | Principles of Multimedia Compression | 3 |
EE 693 | Heterogeneous Computer Architecture and Hardware | 3 |
MA 232 | Linear Algebra | 3 |
MA 336 | Modern Algebra | 3 |
MA 346 | Numerical Methods | 3 |
MA 525 | Introduction to Computational Science | 3 |
MA 565 | Quantum Algorithms | 3 |
MA 617 | Tensor Methods for Data Analysis | 3 |
MA 623 | Stochastic Processes | 3 |
MA 629 | Nonlinear Optimization | 3 |
MA 230 | Multivariate Calculus and Optimization | 3 |
MA 632 | Theory of Games | 3 |
SSW 555 | Agile Methods for Software Development | 3 |
SSW 590 | DevOps Principles and Practices | 3 |
Note:
Science I, Science II, and Science Lab: Science Electives: Undergraduate Programs Requirements
Humanities and HSS 371 or HPL 455: The Humanities courses must have your advisor’s approval prior to enrolling. For details on Humanities courses and requirements please visit Humanities Requirements