Bachelor of Science in Computer Science

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

MA 121Differential Calculus

2

MA 122Integral Calculus

2

MA 125Vectors and Matrices

2

MA 126Multivariable Calculus I

2

MA 222Probability and Statistics

3

MA 331Intermediate Statistics

3

CS 135Discrete Structures

4

CS 334Theory of Computation

3

Computer Science

CS 101Research and Entrepreneurship in Computing

1

CS 115Introduction to Computer Science

4

CS 284Data Structures

4

CS 382Computer Architecture and Organization

4

CS 385Algorithms

4

CS 392Systems Programming

3

CS 396Security, Privacy and Society

4

CS 423Senior Design I

3

CS 424Senior Design II

3

CS 496Principles 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 5323D Computer Vision

3

CS 541Artificial Intelligence

3

CS 544Health Informatics

3

CS 557Introduction to Natural Language Processing

3

CS 558Computer Vision

3

CS 559Machine Learning: Fundamentals and Applications

3

CS 582Causal Inference

3

CS 583Deep Learning

3

CS 584Natural Language Processing

3

CS 560Statistical 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 566Smartphone and Mobile Security

3

CS 146Introduction to Web Programming and Project Development

3

CS 370Creative Problem Solving and Team Programming

3

CS 574Object-Oriented Analysis and Design

3

CS 537Interactive Computer Graphics

3

CS 539Real-Time Rendering, Gaming, and Simulations Programming

3

CS 526Enterprise and Cloud Computing

3

CS 594Enterprise and Cloud Security

3

CS 548Enterprise Software Architecture and Design

3

CS 562Database Management Systems II

3

CS 597User Experience Design and Programming

3

CS 609Data 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 488Computer Architecture

3

CS 576Systems Security

4

CS 577Reverse Engineering and Application Analysis

4

CS 578Privacy in a Networked World

3

CS 595Information Security and the Law

3

CS 665Forensic Analysis

3

CS 676Advanced Topics in Systems and Security

3

CS 696Database Security

3

CS 524Introduction to Cloud Computing

3

CS 596Introduction to Windows Programming

3

CS 615Systems Administration

3

CS 677Parallel 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 576Systems Security

4

CS 503Discrete Mathematics for Cryptography

3

CS 579Foundations of Cryptography

3

CS 693Cryptographic Protocols

3

CS 665Forensic Analysis

3

CS 676Advanced Topics in Systems and Security

3

CS 696Database Security

3

Theory:

The list of courses currently offered under this area, and that are eligible for technical electives:

CS 442Database Management Systems

3

CS 503Discrete Mathematics for Cryptography

3

CS 579Foundations of Cryptography

3

CS 643Formal Verification of Software

3

CS 693Cryptographic Protocols

3

CS 601Algorithmic 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 390Microprocessor Systems

4

CPE 450Real-Time Embedded Systems

3

CPE 462Introduction to Image Processing and Coding

3

CPE 565Management of Local Area Networks

3

EE 441Introduction to Wireless Systems

3

EE 582Wireless Networking: Architectures, Protocols and Standards

3

EE 583Wireless Communications

3

EE 584Wireless Systems Security

3

EE 608Applied Modeling and Optimization

3

Or

CPE 608Applied Modeling and Optimization

3

Or

NIS 608Applied Modeling and Optimization

3

EE 612Principles of Multimedia Compression

3

EE 693Heterogeneous Computer Architecture and Hardware

3

MA 232Linear Algebra

3

MA 336Modern Algebra

3

MA 346Numerical Methods

3

MA 525Introduction to Computational Science

3

MA 565Quantum Algorithms

3

MA 617Tensor Methods for Data Analysis

3

MA 623Stochastic Processes

3

MA 629Nonlinear Optimization

3

MA 230Multivariate Calculus and Optimization

3

MA 632Theory of Games

3

SSW 555Agile Methods for Software Development

3

SSW 590DevOps Principles and Practices

3

Term I

CAL 103Writing and Communications Colloquium

3

CS 101Research and Entrepreneurship in Computing

1

CS 115Introduction to Computer Science

4

MA 121Differential Calculus

2

MA 122Integral Calculus

2

Science I

3

Term II

CAL 105CAL Colloquium: Knowledge, Nature, Culture

3

CS 135Discrete Structures

4

CS 284Data Structures

4

MA 125Vectors and Matrices

2

MA 126Multivariable Calculus I

2

Science II

3

Science Lab

1

Term III

CS 382Computer Architecture and Organization

4

CS 385Algorithms

4

MA 222Probability and Statistics

3

Humanities Elective

3

Science/Math Elective

3

Term IV

CS 392Systems Programming

3

CS 496Principles of Programming Languages

3

MA 331Intermediate Statistics

3

HUM
Humanities

3

Technical Elective

3

Term V

CS 334Theory of Computation

3

CS 396Security, 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 423Senior Design I

3

Technical Elective

3

Technical Elective

3

Technical Elective

3

HUM
Humanities

3

Term VIII

CS 424Senior 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