Besides its technical rigor, the Computer Science major is distinguished by its flexibility. In the junior and senior years, a student can choose from a large number of elective courses.
The Computer Science Department is also the home to world-class 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. Undergraduate students are encouraged to get involved with faculty in their research. Indeed, while graduate students come from all over the world to be involved with research, some undergraduates choose to stay at Stevens for their graduate work, pursuing Ph.D. research with the faculty they came to know during their undergraduate studies.
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
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 | 3 |
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 | 3 |
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.
CPE 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 |
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 |
| Technical Elective | 3 |
Term V
CS 334 | Theory of Computation | 3 |
CS 396 | Security, Privacy and Society | 4 |
HUM
| Humanities | 3 |
| Technical Elective | 3 |
| General Elective | 3 |
Term VI
| Technical Elective | 3 |
| Technical Elective | 3 |
| Technical Elective | 3 |
| Technical Elective | 3 |
| Science/Math Elective | 3 |
HUM
| Humanities | 3 |
Term VII
CS 423 | Senior Design I | 3 |
| Technical Elective | 3 |
| Technical Elective | 3 |
| Technical Elective | 3 |
HUM
| Humanities | 3 |
Term VIII
CS 424 | Senior Design II | 3 |
| Technical Elective | 3 |
| 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: The Humanities courses must have your advisor’s approval prior to enrolling. For details on Humanities courses and requirements please visit Humanities Requirements