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 disciplinesOver 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:

  1. Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions (Analysis)
  2. 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)
  3. Communicate effectively in a variety of professional contexts (Communication)
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles (Professionalism)
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline (Teamwork)
  6. 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

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

Sample Study Plan

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

Humanities

3

Technical Elective

3

Term V

CS 334Theory of Computation

3

CS 396Security, Privacy and Society

4

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

Humanities

3

Term VII

CS 423Senior Design I

3

Technical Elective

3

Technical Elective

3

Technical Elective

3

Humanities

3

Term VIII

CS 424Senior Design II

3

Technical Elective

3

Technical Elective

3

General Elective

3

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 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

4

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

4

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.

BME 571Machine Learning in Biomedical Engineering

3

CPE 390/EE 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

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