DANIEL DUCHAMP,
INTERIM DIRECTOR
FACULTY*
Professors
Stephen L. Bloom, Ph.D. (1968), Massachusetts Institute of
Technology
A. Satyanarayana, Ph.D. (1981), Jawaharlal Nehru Technological
University
Associate Professors
Adriana Compagnoni, Ph.D. (1995), Katholieke University,
Nijmegen
Dominic Duggan, Ph.D. (1990), University of Maryland, College Park
George Kamberov, Ph.D. (1990), University of Pennsylvania
Aaron David Klappholz, Ph.D. (1974), University of Pennsylvania
David A. Naumann, Ph.D. (1992), University of Texas at Austin
John Oliensis, Ph.D. (1981), University of Chicago
Assistant Professors
Elli Angelopoulou, Ph.D. (1997), Johns Hopkins University
Sven Dietrich, Doctor of Arts (1997), Adelphi University
H. Quynh Dinh, Ph.D. (2002), Georgia Institute of Technology
Antonio Nicolosi, PhD (2007), Stanford University
Hui Wang, Ph.D. (2007), University of British Columbia
Susanne Wetzel, Ph.D. (1998), Saarland University
Senior Teaching Professor
Ruth Schwartz, Ph.D. (1993), Temple University
Industry Research Professor
Larry Bernstein, M.S.E.E. (1962), New York University
Manu Malek, Ph.D. (1970), University of California Berkeley
Research Professor
Daniel Duchamp, Ph.D. (1988), Carnegie Mellon University
Instructor
Steve Gabbaro, M.S. (2002), EPITA; M.S. (2003), Stevens Institute of Technology
*The list indicates the highest earned degree, year awarded, and
institution where earned.
UNDERGRADUATE PROGRAMS
Stevens' undergraduate majors in Computer Science, Cybersecurity, Information Systems, and Service-Oriented Computing are specifically designed to train the high-end IT professionals who can take advantage of trends in the IT industry and gain entry into a challenging and rewarding career path in software development and systems analysis. It is widely recognized that the most important skills in software development and systems analysis combine a strong background in information technology, particularly creativity and problem-solving, with personal and business skills, such as client-facing, business case considerations, and project management. The four majors emphasize both a strong grounding in IT and the development of the business abilities required of a modern IT professional. Stevens is one of the few undergraduate computer science programs in the country to require a two-semester senior project course that emphasizes these skills.
The spine of the four majors is a two-year sequence of courses developing basic software engineering skills, including algorithmic problem-solving, design, coding, and testing. This is supplemented by a mathematical sequence including discrete mathematics, probability, and statistics. This sequence provides both rigor and the mathematical maturity that the modern IT professional is expected to be able to draw upon. Subsequent courses build on this spine to provide a background in advanced concepts relevant to the major. A two-semester sequence in science, including laboratories as required for accreditation of computer science programs, develops skills in formulating and testing hypotheses.
A senior-year two-semester capstone senior project course teaches the principles and theory of programming-in-the-large, including teamwork, problem solving, and agile software development methods in the context of two projects. The course is modeled on business software development practices, so that students experience a transition from academia to business. Students produce useful, well-engineered software products, applying software engineering techniques, ethical principles, and generally accepted software practices. Many projects are sponsored by companies or government agencies, such as the Federal Aviation Administration (FAA), Siemens, and Citicorp. Cybersecurity majors choose a project with an emphasis on computer systems security. Information systems majors choose a project with a specific information management emphasis.
Majors in the Computer Science department share a common freshman year, and there is a great deal of commonality in the sophomore year. This is designed to give students the maximum flexibility in determining what major they wish to pursue in the Computer Science department. All majors pursue a science sequence consisting of two science courses and a science laboratory, taken from the following list of sequences:
|
Science I |
Science II |
Science Lab |
Physics |
PEP 111 Mechanics |
PEP 112 E&M |
PEP 222 |
Chemistry |
CH 115 Gen. Chem. I |
CH 116 Gen. Chem. II |
CH 117 |
Chem. & Bio. |
CH 115 Gen. Chem. I |
CH 281 Bio. & Biotech. |
CH 117 |
Chem. & Bio. |
CH 115 Gen. Chem. I |
CH 281 Bio. & Biotech. |
CH 282 |
Physics & Bio. |
PEP 111 Mechanics |
CH 281 Bio. & Biotech. |
CH 282 |
One of the Humanities electives must be HSS 371 Computers and Society.
Bachelor of Science in Computer Science
Besides its technical rigor and its development of important personal and business skills, the Stevens Computer Science undergraduate major is distinguished by its flexibility. In senior year, a student in Computer Science can choose from a large number of elective courses. Concentration areas are suggested groups of Computer Science courses for those that want to “drill down” on specific topics. Some example concentration areas are distributed systems, networks, graphics, design and implementation of games, and cybersecurity. Application areas are groups of courses that include courses outside Computer Science. Approved application areas include financial systems, computer engineering and embedded systems, wireless networks, and mathematics.
The software development elective (“SD elective”) in Term VI is taken from a list of courses that involve programming assignments, and that are not already required core courses:
AI/Vision/Graphics
- CS 437/537 Interactive Computer Graphics I
- CS 482/541 Artificial Intelligence
- CS 558 Computer Vision
SOC
- CS 546 Web Programming Systems
- CS 494/516 Compiler Design
- CS 521 TCP/IP Networks
- CS 522 Mobile and Pervasive Computing
- CS 526 Systems Programming for Enterprise Computing
- CS 549 Distributed Systems
Stevens' Computer Science Department is also the home to world-class research in areas such as computer security, computer graphics, vision and visualization, software engineering, and networks. The quality of this research is demonstrated by the publication and funding records of the faculty of the department. Stevens 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 Stevens research, some Stevens 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.
The course sequence for computer science is as follows:
Basic Study Plan - B.S. in Computer Science
|
Freshman Year |
|
|
|
Term I |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 115 |
Calculus
I |
3 |
0 |
3 |
CS 115** |
Intro. to
Computer Science |
3 |
2 |
4 |
|
Science I |
3 |
0 |
3 |
CS 146 |
Web Fundamentals |
3 |
0 |
3 |
PE 200 |
Physical
Education I |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
12 |
4 |
14 |
|
|
|
|
|
Term II |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 116 |
Calculus
II |
3 |
0 |
3 |
CS 284 |
Data
Structures |
3 |
1 |
4 |
MA 134
|
Discrete Mathematics |
3 |
0 |
3 |
|
Science II |
3 |
0 |
3 |
|
Science Lab |
0 |
3 |
1 |
HUM |
Humanities |
3 |
0 |
3 |
PE 200 |
Physical
Education II |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
6 |
18 |
|
|
|
|
|
|
Sophomore Year |
|
|
|
Term III |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 383 |
Comp. Org. &
Prog. |
3 |
0 |
3 |
CS 385 |
Algorithms
|
3 |
1 |
4 |
CS 334 |
Automata and Computation |
3 |
0 |
3 |
MGT 111 |
Org. Behavior and Social Psychology |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical
Education III |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
3 |
17 |
|
|
|
|
|
Term IV |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 392 |
Systems Programming |
3 |
0 |
3 |
CS 496 |
Principles or Programming Languages |
3 |
0 |
3 |
CS 347 |
Software Development Process |
3 |
0 |
3 |
MA 222 |
Probability &
Statistics |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical
Education IV |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Junior Year |
|
|
|
Term V |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 442 |
Database Management Systems |
3 |
0 |
3 |
CS 511 |
Concurrent Programming |
3 |
0 |
3 |
MA 331 |
Statistical Methods |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical
Education V |
0 |
2 |
1 |
|
|
|
|
|
|
TOTAL |
15 |
2 |
16 |
|
|
|
|
|
Term VI |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 492 |
Operating Systems |
3 |
0 |
3 |
CS 488 |
Computer Architecture |
3 |
0 |
3 |
|
Science/Math Elective |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
CS |
SD Elective |
3 |
0 |
3 |
PE 200 |
Physical
Education VI |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Senior Year |
|
|
|
Term VII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 551 |
Software Eng.
& Pract. I |
3 |
0 |
3 |
CS 573 |
Fundamentals of Cybersecurity |
3 |
0 |
3 |
|
Science/Math. Elective |
3 |
0 |
3 |
|
Tech. Elective** |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
|
|
|
|
|
Term VIII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 552 |
Software Eng.
& Pract. II |
3 |
0 |
3 |
|
Tech. Elective** |
3 |
0 |
3 |
|
Free Elective** |
3 |
0 |
3 |
|
Free Elective* |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
Total Credits: 117-19-127
* Humanities requirements: two Group A courses at the 100 level, two Group B courses at the 100 level, and four courses at the 300/400 level that must include HSS 371.
** If the technical electives and the free electives do not constitute a department approved application area, then the two technical electives must be Computer Science courses (identified by the CS prefix).
Curriculum Summary
The program requires the following courses:
Science
Science I
Science II
Science Lab
Mathematics and Statistics
MA 115 Calculus I
MA 116 Calculus II
MA 134 Discrete Mathematics
MA 222 Probability and Statistics
MA 331 Statistical Methods
Core Computer Science
CS 115 Introduction to Computer Science
CS 146 Web Fundamentals
CS 284 Data Structures
CS 334 Automata and Computation
CS 347 Software Development Process
CS 383 Computer Organization and Programming
CS 385 Algorithms
CS 392 Systems Programming
CS 488 Computer Architecture
CS 492 Operating Systems
CS 496 Programming Languages
CS 511 Concurrent Programming
CS 551 Software Engineering and Practice I
CS 552 Software Engineering and Practice II
CS 573 Fundamentals of Cybersecurity
Students who take the Honors sequence CS 181/182 are not required to take CS 115/284/385.
Management
MGT 111 Organizational Behavior and Social Psychology
Humanities
Students must take at least eight humanities courses, following the undergraduate core requirements. Humanities courses must include HSS 371 Computers and Society.
Physical Education
Students must take at least six semesters of physical education.
Technical and Free Electives
The basic study plan is for students with some background in computer science from high school (at least a year of programming in an imperative language such as Java or C). These students take CS 115 in their first term. This basic study plan has two technical electives and two free electives.
Students with little or no background in computer science should take CS 105 in their first term and CS 115 in their second term. Students taking this study plan have one technical elective and two free electives.
Students taking the accelerated introductory sequence CS 181/182 have two technical electives and three free electives.
back to top
Application Areas
The Application Areas defined below allow students to devote up to four of their electives (technical and free electives) to disciplines outside computer science. Depending upon the Application Area, the science/math elective and/or the management elective may be chosen to support the course sequence.
You must receive prior departmental approval in order to substitute an Application Area for computer science electives. The Computer Science department works with other departments to develop Application Area sequences in disciplines that are related to computer science. Below are Application Areas that are already approved.
Computer Engineering and Embedded Systems
CPE 358 Switching Theory and Logical Design
CPE 390 Microprocessor Systems
CPE 450 Embedded Systems for Real-Time Applications
or CPE 555 Real-Time and Embedded Systems
CPE 487 Digital System Design
Wireless Networks
CS 521 TCP/IP Networks
NIS 583 Wireless Communications
NIS 584 Wireless Systems Security
NIS 586 Wireless Networking: Architectures, Protocols, and Standards
Financial
Systems
Intended for students who contemplate a career in the financial sector. Those who select this Application Area option should take MGT 243 (Macroeconomics) as their required management elective.
MGT 244 Microeconomics
BT 115 Financial Accounting
BT 215 Cost Accounting
BT 321 Finance
Mathematics
This Application Area focuses on topics in mathematics that utilize computing, or mathematics that may be of use to a computer scientist. These foundation courses are required:
MA 221 Differential Equations
MA 232 Linear Algebra
Then choose any two of these courses:
MA 331 Statistics
MA 335 Number Theory
MA 336 Modern Algebra
MA 346 Numerical Methods
MA 460 Chaotic Dynamics
Computational Chemistry & Biology
CH 116/118 Chemistry II/Chemistry Lab II
CH 321 Thermodynamics
CH 381 Cell Biology
CH 664 Computer Methods in Chemistry
In addition, students should take the Chemistry/Biology Lab option (in particular, CH 115/17 Chemistry I and Lab). It is also suggested, but not required, that CH 484 (Introduction to Molecular Genetics) be taken as the free elective.
back to top
Concentration Areas Within
Computer Science
Below are the suggested course sequences for students who are interested in specific areas within computer science. These sequences are optional; indeed, each student may choose their electives (aside from the science/math elective and the management elective) according to personal interests. A concentration does not appear on the diploma. Students should understand that concentrated electives are merely suggestions. A student may choose to take all, some, or none of the courses in a concentration.
Information Systems
CS 519 Distributed Commerce
CS 540 Fundamentals of Quantitative Software Engineering
CS 546 Web Programming
CS 578 Privacy in a Networked World
Service-Oriented Architecture
CS 513 Data Mining
CS 546 Web Programming
CS 548 Engineering of Enterprise Software Systems
CS 549 Distributed Systems
Computer Graphics
MA 232 Linear Algebra
CS 437/537 Interactive Computer Graphics I
CS 538 Visual Analytics
CS 558 Computer Vision
CS 638 Advanced Computer Graphics
The linear algebra course MA 232 may be chosen as a science/math elective.
Design of
Games
The concentration in Game Design is designed to provide the student with a grounding in the skills sets underlying computer gaming. The emphasis is on the creation of distributed, multi-player, and 3-D games.
CS 437/537 Interactive Computer Graphics I
CS 482/541 Artificial Intelligence
CS 522 Mobile and Pervasive Computing or
CS 549 Distributed Systems
CS 539 Real-Time Rendering, Gaming, and Simulations Programming
CS 545 Human Computer Interaction
It is further recommended that a game design be the subject of the
student's CS 551/CS 552 software project.
Cybersecurity
CS/MA 503 Discrete Mathematics for Cryptography
CS 576 Secure Systems
CS 577 Cybersecurity Lab
CS 578 Privacy in a Networked World
CS 579 Foundations of Cryptography
MA 503 may be chosen as a science/math elective.
Quantitative Software Engineering
With two courses beyond the required CS 551 and CS 552, students will understand the fundamentals of software engineering and qualify for a Graduate Certificate in Quantitative Software Engineering, with the unique Stevens emphasis on quantitative analysis and case histories.
CS 540 Fundamentals of Quantitative Software Engineering
and any three of the following courses:
CS 533 Cost Estimation and Metrics
CS 548 Engineering of Enterprise Systems
CS 564 Software Requirements Acquisition and Analysis
CS 565 Software Architecture and Component-Based Design
CS 567 Software Testing, Quality Assurance, and Maintenance
CS 687 Engineering of Large Software Systems
CS 689 Software Reliability Engineering
Distributed Systems
CS 521 TCP/IP Networks
CS 522 Mobile and Pervasive Computing
CS 546 Web Programming
CS 549 Distributed Systems
Theoretical Computer Science
CS 600 Advanced Algorithm Design and Implementation
CS 601 Algorithmic Complexity
CS 630 Automata and Formal Languages
CS 634 Decidability and Computability
Minor in Computer Science
You may qualify for a minor in computer science by taking the courses indicated below. Enrollment in a minor means you must meet the Institute's requirements for minor programs. You may not use the same courses for both a major and a minor. Only courses completed with grade of "C" or better are accepted towards a student's minor.
Requirements for a Minor in Computer Science (not available to majors in Computer Science, Computer Engineering, Cybersecurity, Information Systems, or Service-Oriented Computing):
CS 115 Introduction to Computer Science |
MA 134 Discrete Mathematics
|
CS 284 Data Structures |
CS 385 Algorithms |
and one of the following tracks:
Software Systems
CS 383 Computer Organization and Programming
CS 392 Systems Programming
CS 492 Operating Systemss
Computer Graphics
CS 437/537 Interactive Computer Graphics
CS 545 Human Computer Interaction
CS 538 Visual Analytics
or CS 539 Real Time Rendering, Gamings and Simulations
or CS 558 Computer Vision
or CS 638 Advanced Computer Graphics
Bachelor of Science in Cybersecurity
The Bachelor of Science program in Cybersecurity is structured to provide students with security expertise within the context of a broad education. A solid education in security requires not only a strong focus in science and computer science in particular (e.g., need for robust implementation and software validation), but must also incorporate some aspects of engineering and technology management. While cryptographers strive to develop the best security solution possible, actual implementations of theoretical concepts often fail due to technological limitations, cost restraints, and human factors that were not part of the initial design process. For a solution to gain practical relevance, the end user must be able and willing to use it. From an economical point of view, a solution must provide a substantial monetary benefit to the customer. In order to allow for these complex issues to be better addressed, an education in cybersecurity must integrate science, technology, and management.
Basic Study Plan - B.S. in Cybersecurity
|
Freshman Year |
|
|
|
Term I |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 115 |
Calculus I |
3 |
0 |
3 |
CS 115 |
Introduction to Computer Science |
3 |
2 |
4 |
|
Science I |
3 |
0 |
3 |
BT 131 |
Technogenesis: Introduction to Innovation and Creativity |
3 |
0 |
3 |
PE 200 |
Physical Education I |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
12 |
4 |
14 |
|
|
|
|
|
Term II |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 116 |
Calculus II |
3 |
0 |
3 |
CS 284 |
Data Structures |
3 |
1 |
4 |
|
Science II |
3 |
0 |
3 |
|
Science Lab |
0 |
3 |
1 |
MA 134 |
Discrete Mathematics |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education II |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
6 |
18 |
|
|
|
|
|
|
Sophomore Year |
|
|
|
Term III |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 334 |
Automata and Computation |
3 |
0 |
3 |
CS 383 |
Computer Organization and Programming |
3 |
0 |
3 |
CS 385 |
Data Structures and Algorithms II |
3 |
1 |
4 |
HUM |
Humanities* |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education III |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
3 |
17 |
|
|
|
|
|
Term IV |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 392 |
Systems Programming |
3 |
0 |
3 |
CS 496 |
Principles of Programming Langauges |
3 |
0 |
3 |
CS 347 |
Software Development Process |
3 |
0 |
3 |
MA 222 |
Probability and Statistics |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
PE 200 |
Physical Education IV |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Junior Year |
|
|
|
Term V |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 503 |
Discrete Mathematics for Cryptography |
3 |
0 |
3 |
CS 442 |
Database Management Systems |
3 |
0 |
3 |
CS 511 |
Concurrent Programming |
3 |
0 |
3 |
CS 573 |
Fundementals of Cybersecurity |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education V |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
Term VI |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 492 |
Operating systems |
3 |
0 |
3 |
CS 488 |
Computer Architecture |
3 |
0 |
3 |
CS 579 |
Foundations of Cryptography |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
CS 578 |
Privacy in a Networked World |
3 |
0 |
3 |
PE 200 |
Physical Education VI |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Senior Year |
|
|
|
Term VII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 551 |
Software Engineering and Practice I** |
3 |
0 |
3 |
CS 576 |
Secure Systems |
3 |
0 |
3 |
CS 577 |
Cybersecurity Laboratory |
0 |
3 |
3 |
CS |
CS Elective |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
12 |
3 |
15 |
|
|
|
|
|
Term VIII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 552 |
Software Engineering and Practice II** |
3 |
0 |
3 |
CS |
Security Elective |
3 |
0 |
3 |
CS |
CS Elective |
3 |
0 |
3 |
|
Free Elective |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
* Humanities requirements: two Group A courses at the 100 level, two Group B courses at
the 100 level, and four courses at the 300/400 level that must include HSS 371.
** Students must choose a security-related project when they do their senior project as part
of CS 551/552. The cybersecurity advisors are resources for project selection and project execution.
Total Credits: 114-22-127
Curriculum Summary
The program requires the following courses:
Science
Science I
Science II
Science Lab
Mathematics and Statistics
MA 115 Calculus I
MA 116 Calculus II
MA 134 Discrete Mathematics
MA 222 Probability and Statistics
Core Computer Science
CS 115 Introduction to Computer Science
CS 284 Data Structures
CS 334 Automata and Computation
CS 347 Software Development Process
CS 383 Computer Organization and Programming
CS 385 Algorithms
CS 442 Database Management Systems
CS 488 Computer Architecture
CS 492 Operating Systems
CS 496 Programming Languages
CS 511 Concurrent Programming
CS 551 Software Engineering and Practice I
CS 552 Software Engineering and Practice II
Students who take the Honors sequence CS 181/182 are not required to take CS 115/284/385.
Cybersecurity
CS 503 Discrete Mathematics for Cryptography
CS 573 Fundamentals of Cybersecurity
CS 576 Secure Systems
CS 577 Cybersecurity Laboratory
CS 578 Privacy in a Networked World
CS 579 Foundations of Cryptography
Management
BT 131 Technogenesis: Introduction to Innovation and Creativity
Humanities
Students must take at least eight humanities courses, following the undergraduate core requirements. Humanities courses must include HSS 371 Computers and Society.
Physical Education
Students must take at least six semesters of physical education.
Technical and Free Electives
The basic study plan has four unspecified technical electives. Two of these must be computer science (CS) classes, and at least one must be a security elective (see the list below). The basic study plan has one free elective.
For students requiring CS 105 in Term I, the number of technical electives is two. One of these must be a computer science class and at least one must be a security elective. There remains one free elective.
For students taking the accelerated introductory sequence CS 181/182, two technical electives must be computer science classes, and one must be a security elective. This track includes a second free elective.
Security Electives
The following CS and non-CS courses qualify as security electives. Note that undergraduates must meet minimum GPA requirements to enroll in 600-level courses:
CS 594 Enterprise Security and Information Assurance
CS 665 Cybersecurity Forensics
CS 693 Cryptographic Protocols
CPE 592 Multimedia Network Security
MIS 662 Legal Issues in a Wired World
MIS 645 Cybersecurity Principles for Managers
MIS 646 Enterprise Architectures for Information Assurance
Minor in Cybersecurity
You may qualify for a minor in cybersecurity by taking the courses indicated below. Enrollment in a minor means you must meet the Institute's requirements for minor programs. You may not use the same courses for both a major and a minor. Only courses completed with grade of "C" or better are accepted towards a student's minor.
Requirements for a Minor in Cybersecurity (not available to majors in Computer Science, Computer Engineering, Cybersecurity, Information Systems and Service-Oriented Computing):
CS 115 Introduction to Computer Science
CS 284 Data Structures
CS 385 Algorithms
CS/MA 503 Discrete Mathematics for Cryptography
CS 578 Privacy in a Networked World
CS 579 Foundations of Cryptography
MA 134 Discrete Mathematics
back to top
Bachelor of Science in Information Systems
Information Systems (IS) is designed for those seeking the background needed to apply information technology to support the major functions of a business or public institution. Information systems manage the collection, manipulation, storage, distribution, and utilization of an organization's information. The Stevens IS major distinguishes itself by its technical rigor, and by providing high-level skills in software development and systems analysis. A solid background in business skills is combined with an information technology background, the technical core of which is shared with Computer Science and Cybersecurity majors. Both strong technical ability and a firm grounding in business skills are essential for the modern high-end IS professional.
Both the two-year skills “spine” and the senior-year capstone project course are shared between Information Systems and Computer Science majors. This ensures that IS majors obtain the rigorous grounding in IS skills that the high-end IS professional is expected to have. While the Computer Science program is designed to allow majors to “drill down” to specific technical areas, the Information Systems program offers a focus on business and management functions, including basic business skills, such as accounting, marketing, and organizational behavior. The IS program also provides a specific focus on systems analysis and information management: how an organization (be it business, government, or any other kind of organization) can structure its IS function, and how the IS manager relates to the rest of the managerial structure.
In recognition of the modern IS environment, the IS program has an additional emphasis on networked information. Courses in systems programming, Web programming, and databases demonstrate how to realize the opportunities offered by IS in managing information. Courses in cybersecurity and privacy address the technical, managerial, and legal hazards that must be addressed in the modern networked world. Much of the IS core is shared with the Stevens Cybersecurity and Computer Science majors. While these latter majors "drill down" to technical aspects of computer systems, IS focuses on organizational aspects of information management.
A typical career path for a student majoring in IS is an entry-level software developer/systems analyst position, rising eventually to Chief Information Officer (CIO) or Chief Technical Officer (CTO) in an organization. The IS major’s emphases on information management and project management are essential preparation for either of these career paths.
Basic Study Plan - B.S. in Information Systems
|
Freshman Year |
|
|
|
Term I |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 115 |
Calculus I |
3 |
0 |
3 |
CS 115 |
Introduction to Computer Science |
3 |
2 |
4 |
|
Science I |
3 |
0 |
3 |
CS 146 |
Web Fundamentals |
3 |
0 |
3 |
PE 115 |
Physical Education I |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
12 |
4 |
14 |
|
|
|
|
|
Term II |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred |
MA 116 |
Calculus II |
3 |
0 |
3 |
CS 284 |
Data Structures |
3 |
1 |
4 |
|
Science II |
3 |
0 |
3 |
|
Science Lab |
0 |
3 |
1 |
MA 134 |
Discrete Mathematics |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education II |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
6 |
18 |
|
|
|
|
|
|
Sophomore Year |
|
|
|
Term III |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MGT 111 |
Organizational Behavior and Social Psychology |
3 |
0 |
3 |
CS 385 |
Algorithms |
3 |
1 |
4 |
BT 101 |
Intro. to Business Planning |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
1 |
4 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education III |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
4 |
18 |
|
|
|
|
|
Term IV |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred |
CS 392 |
Systems Programming |
3 |
0 |
3 |
CS 347 |
Software Development Process |
3 |
0 |
3 |
BT 113 |
Marketing |
3 |
0 |
3 |
BT 115 |
Financial Accounting |
4 |
0 |
4 |
MA 222 |
Probability and Statistics |
3 |
0 |
3 |
PE 200 |
Physical Education IV |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
16 |
2 |
17 |
|
|
|
|
|
|
Junior Year |
|
|
|
Term V |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 442 |
Database Management Systems |
3 |
0 |
3 |
CS 564 |
Software Requirements Acquisition and Analysis |
4 |
0 |
4 |
MA 331 |
Statistical Methods |
3 |
0 |
3 |
|
IS Elective |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
PE 200 |
Physical Education V |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
16 |
2 |
17 |
|
|
|
|
|
Term VI |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred |
CS 546 |
Web Programming |
3 |
0 |
3 |
CS 545 |
Human Computer Interaction |
3 |
0 |
3 |
CS 578 |
Privacy in a Networked World |
3 |
0 |
3 |
MGT 244 |
Microeconomics |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education VI |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Senior Year |
|
|
|
Term VII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 551 |
Software Engineering and Practice I |
3 |
0 |
3 |
CS 573 |
Fundamentals of Cybersecurity |
3 |
0 |
3 |
CS 548 |
Engineering of Enterprise Software Systems |
3 |
0 |
3 |
|
Free Elective |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
|
|
|
|
|
Term VIII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 552 |
Software Engineering and Practice II |
3 |
0 |
3 |
|
IS Elective |
3 |
0 |
3 |
|
IS Elective |
3 |
0 |
3 |
|
Free Elective |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
*Humanities requirements: two Group A courses at the 100 level, two Group B courses at the 100 level, and four courses at the 300/400 level that must include HSS 371.
Credit Totals: 119-20-130
Curriculum Summary
The program requires the following courses:
Science
Science I
Science II
Science Lab
Math and Statistics
MA 115 Calculus I
MA 116 Calculus II
MA 134 Discrete Mathematics
MA 222 Probability and Statistics
MA 331 Statistical Methods
Computer Science and Software Engineering
CS 115 Introduction to Computer Science
CS 134 Discrete Mathematics for Computer Science
CS 146 Web Fundamentals
CS 284 Data Structures
CS 347 Software Development Process
CS 385 Algorithms
CS 392 Systems Programming
CS 442 Database Management Systems
CS 545 Human Computer Interaction
CS 546 Web Programming
CS 551 Software Engineering and Practice I
CS 552 Software Engineering and Practice II
CS 564 Software Requirements Acquisition and Analysis
CS 573 Fundamentals of Cybersecurity
CS 578 Privacy in a Networked World
Management
BT 101 Introduction to Business Planning
BT 113 Marketing
BT 115 Financial AccountingMGT 111 Organizational Behavior
MGT 244 Microeconomics
Humanities
Students must take at least eight humanities courses, following the undergraduate core requirements, where MGT 244 Microeconomics counts as a humanities elective. Humanities courses must include HSS 371 Computers and Society.
Physical Education
Students must take at least six semesters of physical education.
Technical and Free Electives
The basic study plan is for students with some background in computer science from high school (at least a year of programming in an imperative language, such as Java or C). These students take CS 115 in their first term. This basic study plan has three IS electives and two free electives.
Students with little or no background in computer science should take CS 105 in their first term and CS 115 in their second term. Students taking this study plan have three IS elective, and one free elective.
Students taking the accelerated introductory sequence CS 181/182 have three IS electives and three free electives.
Information Systems Electives
IS Electives are chosen from the following list of courses:
CS 519 Distributed Commerce
CS 594 Enterprise Security and Information Assurance
MGT 243 Macroeconomics
Other IS electives may be approved at the discretion of the director for the undergraduate IS program.
Minor in Information Systems
You may qualify for a minor in information systems by taking the courses indicated below. Enrollment in a minor means you must meet the Institute's requirements for minor programs. You may not use the same courses for both a major and a minor. Only courses completed with grade of "C" or better are accepted towards a student's minor.
Requirements for a Minor in Information Systems (not available to majors in Computer Science, Computer Engineering, Cybersecurity, Information Systems, and Service-Oriented Computing):
CS 115 Introduction to Computer Science
CS 284 Data Structures
CS 347 Software Development Process
CS 385 Algorithms
CS 442 Database Management Systems
CS 546 Web Programming
MA 134 Discrete Mathematics
back to top
Bachelor of Science in Service-Oriented Computing
Technologies such as Web services are facilitating a view of software as services, more fine-grain than the normal view of software libraries, that may be used for heavyweight inter-enterprise application integration, but may also be used for very flexible lightweight rapid development of new applications. Frameworks are emerging that domain experts can use, not just to compose together services, but also to synthesize new applications. This synthesis may be done using scripting languages or domain-specific programming languages and protocols. All of this represents a growing demand for front-end applications that leverage the provision of existing software services, but where the emphasis of the software development is providing client front-ends. This is related to the emerging discipline of informatics, which emphasizes applications of computer science and domain expertise.
The kinds of tasks that such developers pursue range all the way from designing and implementing Web pages, to developing distributed collaborative applications with sophisticated database backends. They will need to go beyond existing technology in application development, to overcome the poor support in Web services for building highly available applications, for example. They may need to develop application-specific scripting languages of their own, since the interfaces of some applications are sophisticated enough to be considered languages in their own right, while using an existing scripting language might be too general and difficult for the client to master.
The Bachelor of Science in Service-Oriented Computing (BS/SOC) is a response to this trend in the marketplace for IT skills. At a first approximation, it may be viewed as occupying an intermediate point along the continuum between computer science and information systems. The traditional emphasis of computer science is on the hardware/software interface, while that of information systems is on information management and systems analysis and design. The BS/SOC provides only minimal coverage of the hardware/software interface (as much as is covered by the systems programming course), and focuses instead on front-end and distributed application development skills. At the same time, the BS/SOC program also provides the basic mathematical and problem-solving skills required of the modern software developer. Indeed, software development skills that are considered optional in many computer science curricula, such as concurrent programming, building reliabile distributed systems, and operational semantics for interpreters, are core components of the BS/SOC program. The BS/SOC provides courses in:
-
Concurrent programming
-
Databases
-
Cybersecurity fundamentals
-
Requirements acquisition and human computer interaction
-
Web programming and service-oriented architecture (SOA)
-
Distributed systems
The BS/SOC is intended to graduate domain experts with deep technical skills. Therefore, each major in the BS/SOC must choose an application area that is defined by the major. The currently approved application domains are below, but other domains may be approved by the department curriculum committee:
Health Informatics
CS 513 Knowledge Discovery and Data Mining
CS 522 Mobile and Pervasive Computing
CS 544 Health Informatics
CS 578 Privacy in a Networked World
Software Engineering
CS 533 Cost Estimation and Metrics
CS 540 Fundamentals of Quantitative Software Engineering
CS 565 Software Architecture and Design
CS 567 Software Testing
Internet Software Engineering
CS 513 Knowledge Discovery and Data Mining
CS 522 Mobile and Pervasive Computing
CS 540 Fundamentals of Quantitative Software Engineering
CS 578 Privacy in a Networked World
Basic Study Plan - B.S. in Service-Oriented Computing
|
Freshman Year |
|
|
|
Term I |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 115 |
Calculus I |
3 |
0 |
3 |
CS 115 |
Introduction to Computer Science |
3 |
2 |
4 |
|
Science I |
3 |
0 |
3 |
CS 146 |
Web Fundamentals |
3 |
0 |
3 |
PE 115 |
Physical Education I |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
12 |
4 |
14 |
|
|
|
|
|
Term II |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MA 116 |
Calculus II |
3 |
0 |
3 |
CS 284 |
Data Structures |
3 |
1 |
4 |
|
Science II |
3 |
0 |
3 |
|
Science Lab |
0 |
3 |
1 |
MA 134 |
Discrete Mathematics |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education II |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
6 |
18 |
|
|
|
|
|
|
Sophomore Year |
|
|
|
Term III |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
MGT 111 |
Organizational Behavior and Social Psychology |
3 |
0 |
3 |
CS 385 |
Algorithms |
3 |
1 |
4 |
CS 334 |
Automata and Computation |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
1 |
4 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education III |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
4 |
18 |
|
|
|
|
|
Term IV |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 392 |
Systems Programming |
3 |
0 |
3 |
CS 347 |
Software Development Process |
3 |
0 |
3 |
MA 222 |
Probability and Statistics |
3 |
0 |
3 |
CS 496 |
Principles of Programming Languages |
3 |
0 |
3 |
HUM |
Humanities |
3 |
0 |
3 |
PE 200 |
Physical Education IV |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Junior Year |
|
|
|
Term V |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 442 |
Database Management Systems |
3 |
0 |
3 |
CS 564 |
Software Requirements Acquisition and Analysis |
4 |
0 |
4 |
MA 331 |
Statistical Methods |
3 |
0 |
3 |
CS 511 |
Concurrent Programming |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education V |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
16 |
2 |
17 |
|
|
|
|
|
Term VI |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred |
CS 546 |
Web Programming |
3 |
0 |
3 |
CS 545 |
Human Computer Interaction |
3 |
0 |
3 |
CS 578 |
Privacy in a Networked World |
3 |
0 |
3 |
MGT 244 |
Microeconomics |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
PE 200 |
Physical Education VI |
0 |
2 |
1 |
|
|
|
|
|
TOTAL |
|
15 |
2 |
16 |
|
|
|
|
|
|
Senior Year |
|
|
|
Term VII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 551 |
Software Engineering and Practice I |
3 |
0 |
3 |
CS 573 |
Fundamentals of Cybersecurity |
3 |
0 |
3 |
CS 548 |
Engineering of Enterprise Software Systems |
3 |
0 |
3 |
CS 549 |
Distributed Systems |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
|
|
|
|
|
Term VIII |
|
|
Hrs. Per Wk. |
|
|
Class |
Lab |
Sem. |
|
|
|
|
Cred. |
CS 552 |
Software Engineering and Practice II |
3 |
0 |
3 |
|
SOC Elective |
3 |
0 |
3 |
|
SOC Elective |
3 |
0 |
3 |
|
Free Elective |
3 |
0 |
3 |
HUM |
Humanities* |
3 |
0 |
3 |
|
|
|
|
|
TOTAL |
|
15 |
0 |
15 |
* Humanities requirements: two Group A courses at the 100 level, two Group B courses at the 100 level, and four courses at the 300/400 level that must include HSS 371.
Total Credits: 118-20-129
Curriculum Summary
The program requires the following courses:
Science
Science I
Science II
Science Lab
Math and Statistics
MA 115 Calculus I
MA 116 Calculus II
MA 134 Discrete Mathematics
MA 222 Probability and Statistics
MA 331 Statistical Methods
Computer Science and Software Engineering
CS 115 Introduction to Computer Science
CS 146 Web Fundamentals
CS 284 Data Structures
CS 347 Software Development Process
CS 385 Algorithms
CS 392 Systems Programming
CS 442 Database Management Systems
CS 511 Concurrent Programming
CS 545 Human Computer Interaction
CS 546 Web Programming
CS 548 Engineering of Enterprise Software Systems
CS 551 Software Engineering and Practice I
CS 552 Software Engineering and Practice II
CS 564 Software Requirements Acquisition and Analysis
CS 573 Fundamentals of Cybersecurity
Management
MGT 111 Organizational Behavior
Humanities
Students must take at least eight humanities courses, following the undergraduate core requirements. Humanities courses must include HSS 371 Computers and Society.
Physical Education
Students must take at least six semesters of physical education.
Technical and Free Electives
The basic study plan is for students with some background in computer science from high school (at least a year of programming in an imperative language, such as Java or C). These students take CS 115 in their first term. This basic study plan has four SOC electives and two free electives.
Students with little or no background in computer science should take CS 105 in their first term and CS 115 in their second term. Students taking this study plan have four SOC electives and one free elective.
Students taking the accelerated introductory sequence CS 181/182 have four SOC electives and three free electives.
Minor in Service-Oriented Computing
You may qualify for a minor in service-oriented computing by taking the courses indicated below. Enrollment in a minor means you must meet the Institute's requirements for minor programs. You may not use the same courses for both a major and a minor. Only courses completed with grade of "C" or better are accepted towards a student's minor.
Requirements for a Minor in Service-Oriented Computing (not available to majors in Computer Science, Computer Engineering, Cybersecurity, Information Systems, and Service-Oriented Computing):
CS 115 Introduction to Computer Science
CS 284 Data Structures
CS 385 Algorithms
CS 548 Engineering of Enterprise Software Systems
CS 549 Distributed Systems
CS 564 Software Requirements Acquisition and Analysis
MA 134 Discrete Mathematics
back to top
Graduate Programs
Several types of graduate degrees are offered:
1. Master of Science in Computer Science: The MS/CS is the flagship graduate program. It is designed to be flexible in allowing students to combine several areas of concentration, such as software engineering, cybersecurity, and databases and service-oriented architecture. Ph.D. students who do not already have a M.S. degree should consider pursuing a M.S. in Computer Science to develop breadth before their Ph.D. studies.
2. Master of Science in Quantitative Software Engineering: The MS/QSE provides hands-on experience with modern software engineering techniques, and prepares the student to apply software technologies to the realization of secure and reliable software products and services on time and within budget.
3. Master of Science in Service-Oriented Computing: The MS/SOC is an accelerated professional education program that develops the skills set required for developing Web and internet applications, particularly tailored for those with little or no previous programming experience. An optional introductory course teaches introductory programming using a language such as Visual Basic. Subsequent courses teach Web programming using PHP and Javascript, and distributed programming using frameworks such as .NET. Other courses teach software requirements engineering, human computer interction, information architecture for Web site design, and service-oriented archtecture (SOA).
4. Master of Science in Enterprise Computing: The MS/EC is intended to educate high-end IT professionals with an interest in enterprise computing. Students learn about distributed computing from both the reliability and security points of view, including service-oriented architecture (SOA). This program has a particular emphasis on systems administration and governance. A typical back-end setup will involve several virtualized servers, running heterogeneous guest operating systems on top of hypervisors, organized in a highly available cluster. Data processing and Web service applications will have service level agreements (SLAs) that must be honored. This program develops the skills sets for the professionals who administer such operations.
5. Master of Science in Security and Privacy: The MS/SP is a rigorous program in the art and practice of security and privacy, including fundamentals of cryptography, and threats and defenses for secure systems. The emphasis in this program is on deep technical skills that may be complemented with courses in security management, as opposed to the security courses suggested for the MS/CS that emphasize broad principles and security administration.
6. Master of Science in Multimedia Experience and Management: The MS/MEM brings together two elements of user interfaces and information presentation: multimedia content experience and content management. Graduates of the program will have a firm grounding in computer graphics, human computer interaction, and software engineering. Beyond this, they can choose to specialize in multimedia experience (advanced graphics and visual analytics) or multimedia management (distributed computing). Both tracks include courses in software engineering (user experience engineering and software architecture).
7. Graduate Certificate: A graduate certificate typically consists of four graduate courses. The courses for a graduate certificate may also be used towards another graduate degree, such as a master's degree.
8. Ph.D. in Computer Science.
1. Master of Science - Computer Science
Requirements for the completion of the MS/CS are:
1. Completion of at least thirty credit-hours of study at the graduate level (500-level and above), with a minimum grade of "C" and a minimum GPA of 3.0.
2. At least twenty one credit hours must be from computer science courses, identified by the CS prefix. The courses available in computer science are identified in the course catalog.
3. At least one of the courses must be any one of the following core computer science courses:
- CS 510 Programming Languages
- CS 520 Operating Systems
- CS 561 Database Management Systems
- CS 573 fundamentals of Cybersecurity
- CS 600 Advanced Algorithm Design and Implementation
4. The remaining nine credit-hours can be from computer science or any other disciplines.
The Computer Science department Web page (www.cs.stevens.edu) contains links to several suggested concentrations, including:
Admissions Requirements
The departmental requirement for admission into the master's degree program in computer science is a bachelor's degree in computer science or computer engineering with a minimum grade point average (GPA) of 3.0 on a four-point scale.
Applicants whose undergraduate degree is not in computer science or computer engineering are advised to take the GRE General Test. In addition, such applicants must have completed at least one year of calculus and at least one programming course; they may be conditionally admitted subject to the completion of some or all of the following foundation courses with a grade of "B" or better:
CS 570 Introduction to C++
CS 590 Algorithms
MA 502 Mathematical Foundations of Computer Science
In addition, students without a computer science background wishing to take advanced systems courses, such as operating systems, may be required to take:
CS 550 Computer Organization and Programming
All foundation courses may be used as credit towards the degree.
International students must demonstrate their proficiency in English by scoring at least 550 (or 210 for the computer-based test) on the TOEFL. Applicants desiring financial assistance are required to submit all application documents to Office of Graduate Admissions before February 1 for fall admission, and before September 1 for spring admission.
back to top
2. Master of Science - Quantitative Software Engineering
The M.S. program in Quantitative Software Engineering emphasizes both practical software technology and the practical skills needed to apply software technology to the realization of high-quality software products on time and within budget. It is case-history, and project-oriented, and teaches industry-standard practices and tools, including the use of software process metrics. It is intended for those with practical goals, as practicing software developers, as software managers, or as software entrepreneurs.
Degree Requirements
CS 533 Cost Estimation and Metrics
CS 540 Fundamentals of Quantitative Software Engineering
CS 548 Engineering of Enterprise Software Systems
CS 564 Software Requirements Acquisition and Analysis
CS 565 Software Architecture and Component-Based Design
CS 567 Software Testing, Quality Assurance, and Maintenance
CS 689 Software Reliability Engineering
Elective I
Elective II
Elective III
The three electives, chosen with the approval of the program director, may be in software technology or in management. Recommended software technology topics include database management systems, distributed systems, system performance analysis, etc. Recommended management topics include project management, group dynamics, etc. Students should choose electives for which they have the stated prerequisites, some of which may not be among the required QSE courses. The 10 courses must be completed with a GPA of 3.0 or better.
Admission Requirements
Students must have an undergraduate degree with a GPA of 3.0 or better in Computer Science or Computer Engineering, or alternatively, an undergraduate degree in another field and on-the-job experience in software development. A solid working knowledge of a programming language is mandatory; C++ is the preferred language. Letters of recommendation should be specific as to the applicant's achievements, rather than generally laudatory. Students with no software experience may be admitted subject to taking up to four of the foundation courses (CS 550, CS 570, CS 590, and MA 502).
back to top
3. Master of Science – Service-Oriented Computing
As IT becomes more and more ubiquitous, in e-commerce and e-government, there is an exploding demand for the wide range of expertise in IT and software development that is needed to meet the demands of the modern information economy. In particular, there is a need for domain-specific experts who are conversant both in information technology and software skills, and also have a facility for the appropriate applications of these technologies in a particular field.
Technologies such as Web services are facilitating a view of software as “services,” much more fine-grain than the normal view of software libraries, that may be used for heavyweight inter-enterprise application integration, but may also be used for very flexible lightweight rapid development of new applications. We are seeing the emergence of frameworks that domain experts in that sector can use, not just to compose together services, but also to synthesize new applications. This synthesis may be done using scripting languages or domain-specific programming languages and protocols. This is related to an emerging phenomenon of “situational programming,” where lightweight applications must be developed rapidly and relatively easily. This goes somewhat beyond simple “mash-ups” on the Web, but such applications often do not require the depth of skill and management that large software projects entail.
The Master of Science in Service-Oriented Computing, program is an accelerated professional education program that provides domain experts with the skill sets that they need in order to use and manage the IT that is being deployed globally today. Students may have little or no background in software development, but they are already, or want to be, a professional in a particular field with IT skills. The program provides very focused training in the skill sets that are required to make students technically capable of taking existing frameworks and using them to develop new client-specific applications.
The focus of the program is very much on front-end skills:
-
Requirements acquisition and analysis
-
Human-computer interaction
-
Web design and information architecture
-
Ethical and privacy issues
The kinds of tasks that students pursue range all the way from designing and implementing Web pages, to developing distributed collaborative applications with sophisticated database back-ends.
The program provides a very focused path for obtaining the basic software development skills that graduates will require. The sequence starts with an introductory programming course that teaches fundamental problem-solving skills in the context of learning a programming language that is geared to end-user applications (e.g., Visual Basic). A successor course teaches basic software engineering skills and best practices for Web-based applications, particularly for three-tier client-server applications using a Web server as a front-end to a database, using PHP and Javascript. The cornerstone course builds on this to teach more advanced approaches, such as Web services, using a popular programming environment, such as .NET. The use of transactions for concurrency control and reliability is also explained. Finally, a capstone course uses these techniques in a term assignment that involves developing an application that is relevant to a particular domain.
This is termed a program in service-oriented computing (informatics is also a term that is sometimes used) because service-oriented architectures (SOA) are the emerging basis for the frameworks that graduates will be using to develop domain-specific end-user applications. Web and distributed programming, along with basic software engineering and human-computer interaction (HCI) skills, are an important part of the necessary skills sets.
Degree Requirements
Requirements for graduation
-
Completion of at least thirty credit-hours of study at the graduate level (500-level and above), with a minimum grade of "C" and a minimum GPA of 3.0.
-
Completion of all of the core courses. SOC 605 may be waived by the program director if the student already has some training or experience in software development.
-
Completion of all of the courses in an approved application domain.
Core Courses
SOC 510 Human-Computer Interaction
SOC 521 Software Requirements Acquisition and Analysis
SOC 605 Introduction to Service-Oriented Computing
SOC 606 Introduction to Internet Applications
SOC 611 Web Fundamentals
SOC 641 Distributed Application Development
SOC 642 Engineering of Enterprise Software Systems
In addition, students must complete the elective courses in one of the approved application domains. The currently approved application domains are below, but other domains may be approved by the program director:
Health Informatics
SOC 550 Knowledge Discovery and Data Mining
SOC 551 Privacy in a Networked World
SOC 552 Health Informatics
Internet Software Engineering
CS 540 Fundamentals of Quantitative Software Engineering
SOC 550 Knowledge Discovery and Data Mining
SOC 551 Privacy in a Networked World
Software Engineering
CS 540 Fundamentals of Quantitative Software Engineering
In addition, take any two of the following courses:
CS 533 Cost Estimation and Metrics
CS 565 Software Architecture and Design
CS 567 Software Testing
Admissions Requirements
An undergraduate education in computer science or computer engineering is not required. Applicants who have not taken programming courses as undergraduates are advised to take the GRE General Test. If an applicant already has some programming background, then they may replace SOC 605 with some other course.
A student who has gained admission to one of the other Computer Science graduate programs may transfer to the MS/SOC program. However, a student in the MS/SOC program may not transfer to another graduate program in the Computer Science department without the permission of the cognizant program director.
back to top
4. Master of Science – Enterprise Computing
The MS/EC program is intended to educate high-end IT professionals with an interest in enterprise computing. Students will learn about distributed computing from both the reliability and the security points of view. They will learn about distributed computing "in the large," including enterprise application integration and service-oriented architectures (SOA). They will build on skills learned in courses in databases and systems programming for enterprise computing to learn how to administer server back-ends that are the crux of modern SOA. This will involve ensuring that applications meet their goals in terms of performance, reliability, security, and privacy. A typical back-end setup will involve several virtualized servers, running heterogeneous guest operating systems on top of hypervisors, organized in a highly available cluster. Data processing and Web service applications will have service level agreements (SLAs) that must be honored. The administrator must be able to respond to performance issues by dynamically reallocating resources between applications, while at the same time responding to component failures, and potentially also security attacks. They will also need to ensure that procedures are followed for ensuring privacy guarantees, some of which will be mandated by legislation. They may work with company lawyers to define what these procedures are. The MS/EC program includes a course in security administration that covers technical, management, and legal aspects of enterprise security and privacy, including security governance, privacy concerns, and best practices for secure systems.
As well as developing technical skills, students will develop skills in client-facing, business cases, and project management. Such skills are expected in general, and particularly for enterprise IT professionals. A course in enterprise software engineering exposes students to best practices in enterprise architecture integration and SOA. Courses in software engineering teach the principles and theory of programming-in-the-large, including teamwork, problem solving, and agile software development methods. The courses are modeled on business software development practices, so that students experience a transition from academia to business. Students produce useful, well-engineered software products, applying software engineering techniques, ethical principles, and generally accepted software practices.
Requirements for Degree Completion
1. Completion of at least thirty credit-hours of study at the graduate level (500-level and above), with a minimum grade of "C" and a minimum GPA of 3.0.
2. All of the core courses must be completed. The remaining courses should come from a list of approved electives, or with the approval of the program director.
3. At least twenty-one credit hours must be from computer science courses, identified by the CS prefix.
4. The remaining nine credit-hours can be from computer science or any other disciplines.
Core Courses
CS 526 Systems Programming for Enterprise Computing
CS 548 Engineering of Enterprise Software Systems
CS 549 Distributed Systems
CS 561 Database Management Systems
Elective Courses
Other electives may be allowed with the approval of the program director. Up to three courses may be taken outside of computer science.
Data Management and SOA
CS 513 Knowledge Discovery and Data Mining
CS 551 Health Informatics
Management
MGT 600 Managerial Accounting
MGT 607 Managerial Economics
MGT 623 Financial Management
MIS 662 Legal Issues in a Wired World
Security and Privacy
CS 573 Fundamentals of Cybersecurity
CS 578 Privacy in a Networked World
CS 594 Entrprise Security and Information Assurance
CS 612 Enterprise Security and Privacy
Software Engineering
CS 533 Cost Estimation and Metrics
CS 540 Fundamentals of Quantitative Software Engineering
CS 564 Software Requirements Acquisition and Analysis
CS 565 Software Architecture
CS 567 Software Testing, Quality Assurance, and Maintenance
Systems Administration
CS 611 Systems Administration for Enterprise Computing
CS 615 Systems Administration
CS 666 Information Networks
CS 669 Network Management
Admissions Requirements
Admissions requirements are the same as for the MS/CS.
back to top
5. Master of Science – Security and Privacy
Security breaches such as the Code Red, Sobig, and MyDoom worms have cost several billion dollars to the global economy in recent years. Millions of residential computers are assumed to be “zombies,” taken over by attackers unbeknownst to their owners, organized into "bot-nets," and used routinely for spamming everyone that uses the Internet. Denial of service attacks have been staged against major corporations that rely on network access, such as Ebay, as well as against the root servers for the internet Domain Naming System (DNS), using bot-nets that can be purchased on the black market for just a few hundred dollars. Criminal gangs are hiring expert programmers to break into law enforcement databases to learn the names of informants. Consumers are becoming more and more reliant on computer systems, for example, for home banking, while companies and governments are exposing themselves to potential attacks due to the need for a “Web presence.” On the legislative level, increasing privacy concerns are giving rise to legislation that companies must be aware of and be able to adapt to.
In response to these trends, Stevens has developed a graduate program in security and privacy that provides deep and rigorous training in cybersecurity to IT professionals who already have a background in computer science. It is intended that this be a nationally-recognized credential for cybersecurity professionals. Graduates of this program will also be well-poised to pursue Ph.D. study in security and privacy, should they so choose. The program provides a rigorous education in the foundations of security and privacy, including cryptography, privacy, and secure systems.
Degree Requirements
-
Completion of at least thirty credit-hours of study at the graduate level (500-level and above), with a minimum grade of "C" and a minimum GPA of 3.0.
-
All of the core courses must be completed. The remaining courses should come from a list of approved electives, or with the approval of the program director.
-
At least twenty-one credit-hours must be from computer science courses, identified by the CS prefix.
-
The remaining nine credit-hours can be from computer science or any other disciplines.
Core Courses
CS 520 and CS 600 may be replaced by electives if the student already has taken these courses as an undergraduate.
CS 520 Operating Systems
CS 503 Discrete Mathematics for Cryptography
CS 573 Fundamentals of Cybersecurity
CS 578 Privacy in a Networked World
CS 579 Foundations of Cryptography
CS 600 Advanced Algorithm Design and Implementation
CS 675 Secure Computer Systems
Elective Courses
Other electives may be allowed with the approval of the program director. Up to three courses may be outside of computer science.
Cybersecurity
CS 521 TCP/IP Networks
CS 522 Mobile and Pervasive Computing
CS 594 Enterprise Security and Information Assurance
CS 615 Systems Administration
CS 665 Cybersecurity Forensics
CS 669 Network Management
CS 693 Cryptographic Protocols
NIS 584 Wireless Systems Security Systems
Enterprise Computing
CS 548 Engineering of Enterprise Software Systems
CS 549 Distributed Systems
CS 561 Database Management Systems
Management
MIS 662 Legal Issues for a Wired World
TM 675 Analyzing Technology Risks
Admissions Requirements
Admissions requirements are the same as for the MS/CS.
back to top
6. Master of Science – Multimedia Experience and Management
A computer is made up of three parts: computation, storage, and display. As computation and storage become increasingly ubiquitous and free, display (the presentation of information) becomes an increasingly important part of any application. Devices such as computers, televisions, and cell phones are increasingly becoming rich thin clients for screen access and data entry, and where increasingly the visualization and auditory components are regarded as portable and morphable. Many advanced forms of interfaces are being developed in the entertainment industry based on these principles, as well as in scientific and information visualization. The entertainment industry has pioneered techniques for developing rich user interfaces, focusing on engineering the entire user experience with multimedia content.
This program brings together two elements of user interfaces and information presentation: multimedia content experience and content management. Graduates of the program will have a firm grounding in computer graphics, human-computer interaction, and software engineering. Beyond this, they can choose to specialize in multimedia experience (advanced graphics and visual analytics) or multimedia management (distributed computing). Both tracks include courses in software engineering (user experience engineering and software architecture). Students can choose further specialization in either area, or greater breadth by choosing courses across the tracks or from other electives that are relevant.
Degree Requirements
1. Completion of at least thirty credit-hours of study at the graduate level (500-level and above), with a minimum grade of "C" and a minimum GPA of 3.0.
2. All of the core courses must be completed. The remaining courses should come from a list of approved electives, or with the approval of the program director.
3. At least twenty-one credit-hours must be from computer science courses, identified by the CS prefix.
4. The remaining nine credit-hours can be from computer science or any other disciplines.
Core Courses
All of the following courses must be taken:
CS 537 Interactive Computer Graphics
CS 540 Fundamentals of Quantitative Software Engineering
CS 545 Human-Computer Interaction
In addition, students should take courses from one of the following concentrations:
Multimedia Experience
Pick two of the following courses:
CS 538 Visual Analytics
CS 539 Real-Time Rendering, Gaming, Simulation
CS 541 Artificial Intelligence
CS 543 Principles of Computer-Mediated Entertainment
CS 558 Computer Vision
CS 559 Machine Learning
Multimedia Management
CS 520 Operating Systems
Pick one of the following courses:
CS 548 Engineering of Enterprise Software Systems
CS 565 Software Architecture and Design
Pick one of the following courses:
CS 549 Distributed Systems
CS 522 Mobile and Pervasive Computing
Electives
Any of the above courses may be taken as an elective, as well as the following. Other electives may be approved by the program director. Up to three courses may be outside of computer science.
CS 513 Knowledge Discovery and Data Mining
CS 546 Web Programming
CS 561 Database Management Systems
CS 573 Fundamentals of Cybersecurity
CS 578 Privacy in a Networked World
CS 636 Integrated Services – Multimedia
CPE 591 Introduction to Multimedia Networking
MIS 662 Legal Issues for a Wired World
back to top
7. Graduate Certificate Programs
The Computer Science department offers graduate certificate programs to students meeting the regular admission requirements for the master's program. Each certificate program is self-contained and highly focused, comprising 12 or more credits. Most of the courses may be used toward the master's degree, as well as for the certificate.
Databases and Service-Oriented Architecture (SOA)
This program provides a firm grounding in enterprise architecture and SOA, particularly as they are supported by modern database management systems and platforms such as Web services. Students will get experience with building fault-tolerant client-server systems, including practice with modern middleware platforms. They will learn about the concepts underlying distributed algorithms, since they may very well have to implement some of these algorithms themselves in the context of building fault-tolerant systems. Students will have the option of learning about software engineering for enterprise applications, including the use of middleware such as Web services to achieve integration of enterprise architectures, both within an enterprise and across different enterprises. They may also focus on developing Web-based applications using languages such as PHP and AJAX, and using software architectures such as REST. Finally, students may also focus on data mining, including both algorithms and applications of existing data mining tools.
CS 549 Distributed Systems
CS 561 Database Management Systems
and any two of the following courses:
CS 513 Knowledge Discovery and Data Mining
CS 540 Fundamentals of Quantitative Software Engineering
CS 546 Web Programming CS 548 Engineering of Enterprise Software Systems CS 574 Object-Oriented Analysis and Design SOC 611 Web Fundamentals
Related M.S. degrees:
M.S. in Computer Science, particularly the concentrations in:
Databases, Security, and Privacy
Software Engineering and Databases
Databases and Service-Oriented Architecture
Health Informatics
Web Application Development
Security and Privacy
Students will obtain a deep technical background in security and privacy, particularly in the cryptographic foundations of the tools that the security specialist will need to use. They know that cryptographic tools require a deep understanding of their properties to be deployed properly, rather than simply treated as black boxes. They will obtain a background in algorithm design and implementation, and discrete mathematics for cryptography, prior to learning about the most popular cryptographic algorithms and protocols. They will also learn about both the technical and the social aspects of privacy, where legislation is still grappling with how to resolve individuals' privacy rights with the immense benefits to be gained from vast on-line information resources, and where technical solutions can inform the legal and social debate.
CS 503 Discrete Mathematics for Cryptography CS 578 Privacy in a Networked World CS 579 Foundations of Cryptography CS 600 Advanced Algorithm Design and Implementation
Related M.S. degrees:
M.S. in Security and Privacy
Enterprise Security and Information Assurance
This program is for students interested in security and privacy, particularly as it pertains to businesses, governments, and other forms of enterprises. They will get a basic grounding in security concepts, including the various forms of threats and defenses. Students will learn how enterprises can protect themselves against attacks and exploits both from inside and outside the organization, including ensuring that critical data survives such attacks. Security governance is an important part of such mechanisms. They will learn how to recover from a security attack, determining the cause and sometimes the source of the exploit. Finally, students will also learn about both the technical and the social aspects of privacy, where legislation is still grappling with how to resolve individuals' privacy rights with the immense benefits to be gained from vast on-line information resources, and where technical solutions can inform the legal and social debate.
CS 573 Fundamentals of Cybersecurity CS 578 Privacy in a Networked World
CS 594 Enterprise Security and Information Assurance
CS 665 Cybersecurity Forensics
Related M.S. degrees:
M.S. in Computer Science, particularly the suggested concentrations:
Software and Security Engineering
Databases, Security, and Privacy
M.S. in Security and Privacy
Service-Oriented Computing
This program is for students who are working in an existing domain where they see the growing use of and need for IT skills. The program provides an accelerated professional education program that provides them with the skill sets that they need in order to use and manage the IT that is being deployed globally today. Students may have little or no background in software development, but they want to be a professional in a particular field with IT skills. This program will provide students with very focused training in the skill sets that are required to make them technically capable of taking existing frameworks and using them to develop new client-specific applications. The focus of the program is very much on front-end skills:
• Requirements acquisition and analysis
• Human-computer interaction
• Web design and information architecture
• Ethical and privacy issues
The kinds of tasks that students will pursue will range all the way from designing and implementing web pages, to developing distributed collaborative applications with sophisticated database back-ends using frameworks, such as Websphere and .NET.
SOC 606 Introduction to Internet Applications
SOC 510/CS 545 Human-Computer Interaction
SOC 611 Web Fundamentals
SOC 542/CS 548 Engineering of Enterprise Software Systems
Related M.S. Degrees:
M.S. in Service-Oriented Computing
Enterprise Computing
This program is for students who want to become high-end IT professionals with an interest in enterprise computing. Students will learn about distributed computing from both the reliability and the security points of view. They will learn about distributed computing "in the large," including enterprise application integration and service-oriented architectures (SOA). They will build on skills learned in courses in operating systems, databases, and systems programming for enterprise computing, to learn how to administer server back-ends that are the crux of modern SOA. This will involve ensuring that applications meet their goals in terms of performance, reliability, security, and privacy. A typical backend setup will involve several virtualized servers, running heterogeneous guest operating systems on top of hypervisors, organized in a highly available cluster. Data processing and Web service applications will have service level agreements (SLAs) that must be honored. The administrator must be able to respond to performance issues by dynamically reallocating resources between applications, while at the same time responding to component failures, and potentially also security attacks.
CS 526 Systems Programming for Enterprise Computing CS 548 Engineering of Enterprise Software Systems CS 549 Distributed Systems CS 561 Database Management Systems
Related M.S. Degrees:
M.S. in Enterprise Computing
Networks and Systems Administration
This program is for network or systems administrators responsible for maintaining computers and the networks that connect them. It is very likely some of the machines run database servers, for example for three-tier Web applications. Students will gain a deep understanding of the Internet protocols for setting up routers and diagnosing network problems. They will be responsible for setting up firewalls and administering critical applications, such as email and Web service, for which you will need to be familiar with protocols, such as SMTP and HTTP. They may also be responsible for intrusion detection systems and other aspects of security administration.
Required Courses:
CS 520 Operating Systems
CS 521 TCP/IP Networking or CS 666 Information Networks
CS 615 Systems Administration
CS 669 Network Management
Related M.S. Degrees:
M.S. in Computer Science, particularly the concentration in:
Network and Systems Administration
Health Informatics
Students of this program will learn to use data mining methods to derive, in an exploratory manner, valuable healthcare knowledge in terms of associations, sequential patterns, classifications, predictions and symbolic rules. They will be able to describe and use tools for preserving the privacy of confidential data, as well as explain some of the social and legal aspects of privacy. Students will be able to explain health care IT standards such as UDEF and HL7, explain health care terminology, and perform system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to web services and mobile computing as they relate to the health care industry.
CS 513/SOC 550 Knowledge Discovery and Data Mining
CS 544/SOC 552 Health Informatics
CS 548/SOC 542 Engineering of Enterprise Software Systems
CS 578/SOC 551 Privacy in a Networked World
Related M.S. degrees:
M.S. in Computer Science, particularly the concentrations in:
Databases, Security and Privacy
Software Engineering and Databases
Databases and Service-Oriented Architecture
Health Informatics
Quantitative Software Engineering
This program is intended for students who are seeking the skills needed to apply software technologies to the realization of secure and reliable software products on time and within budget. The Quantitative Software Engineering programs are geared toward four kinds of students:
-
The formally educated computer professional who aspires to a managerial career and wants comprehensive hands-on training in the skills needed to identify customer requirements, develop software designs, manage a software development team, and evaluate the resulting software product relative to customer specifications.
-
The formally educated computer professional who wants to remain an individual contributor, yet wants a solid foundation in the practical application of computer science technology to the realization of software products.
-
The computer professional whose educational background is not in computer science or computer engineering, but who has learned software skills on the job and who now wants a software engineering education.
-
The engineer or manager who now wants a software engineering education.
Required Courses:
CS 540 Fundamentals of Quantitative Software Engineering
and any three of the following courses:
CS 533 Cost Estimation and Metrics CS 548 Engineering of Enterprise Software Systems CS 564 Software Requirements Acquisition and Analysis CS 565 Software Architecture and Component-Based Design CS 567 Software Testing, Quality Assurance, and Maintenance CS 689 Software Reliability Engineering
Related M.S. Degrees:
M.S. in Quantitative Software Engineering
Distributed Systems
Required Courses:
CS 521 TCP/IP Networking
or CS 666 Information Networks I
CS 549 Distributed Systems
and any two of the following courses:
CS 511 Concurrent Programming CS 520 Operating Systems CS 522 Mobile and Pervasive Computing CS 546 Web Programming
Related M.S. Degrees:
M.S. in Computer Science, particularly the concentrations in:
Databases and Service-Oriented Architecture
Computer Systems and Software Engineering
Computer Systems
Required Courses:
CS 514 Computer Architecture
CS 520 Operating Systems
plus any two of the following courses:
CS 511 Concurrent Programming CS 516 Compiler Design CS 521 TCP/IP Networks CS 522 Mobile and Pervasive Computing CS 549 Distributed Systems
Computer Graphics
Required Courses:
CS 600 Advanced Algorithm Design
and Implementation
CS 537 Interactive Computer Graphics
CS 638 Advanced Computer Graphics
CS 558 Computer Vision
Theoretical Computer Science
Required Courses:
CS 600 Advanced Algorithm Design
and Implementation
CS 601 Algorithmic Complexity
CS 630 Automata and Formal Languages
CS 634 Decidability and Computability
Foundations of Computer Science
Required Courses:
CS 550 Computer Organization and Programming
CS 570 Programming in C++
CS 590 Algorithms
MA 502 Mathematical Foundations of Computer Science
back to top
8. Doctoral Program
The purpose of the Ph.D. program is to educate students for a career in computer science research. The goal is for the quality of Stevens graduates to be on par with those produced by the best Computer Science departments in the country.
Full-time study.
To make progress on leading-edge subjects in a fast moving field like computer science requires full-time study. It is nearly impossible to do work that is important, timely, and novel at the pace afforded by part-time effort—either one's result will be "scooped" or conditions will change within the field, rendering the work no longer current. Accordingly, Ph.D. students will be admitted only for full-time on-campus study. The department is committed to provide support (tuition and stipend) for all full-time doctoral students. Such support may come either as a research assistantship or a teaching assistantship. Students are also encouraged to apply for outside scholarships.
Advised study.
Each doctoral student must at all times have a single advisor who is a tenured or tenure-track Stevens faculty member. The relationship between advisor and student is not merely an administrative one. Starting early in his/her career, the student will work on research projects to be determined by the advisor and student. Through this day-to-day interaction, the student will learn the form and content of high quality research. The student's advisor will also guide the student through the program, e.g., advising on such matters as which courses to take, when to attempt the qualifying exam, what dissertation topic to pursue, etc.
Advisor-advisee relationship. The department aims to admit only students whose background and interests match those of the faculty. Each admitted student will be assigned an advisor whose expertise is well matched to the student. It is hoped that most students will remain with their initial advisors throughout their career, performing research with him/her. However, the advisor-advisee relationship is a voluntary one. If either the student or the faculty member becomes dissatisfied with the relationship, then the student must seek another advisor among the faculty. A student can change advisors at any time provided that the student's new advisor is willing to accept the student.
Requirements. The Ph.D. degree requires 84 credits beyond the Bachelor's degree. Students who already possess a Master's degree may be granted up to 30 credits. The 84 credits may be fulfilled by some combination of: prior MS degree, enrollment in classroom courses, and enrollment in research participation (course CS 960). The division of a student's effort between classroom courses and research participation will vary from case to case, and is a decision that should be made by the student in consultation with and with the approval of the student's advisor. There is no minimum number of classroom courses for the doctorate.
Progress review. Each student's progress is reviewed by the entire computer science faculty near the end of the fall and spring semesters. Preparatory to this review, the student must submit a brief progress report describing the student's progress since the last review, as well as his/her plans for the time up to the next review. After drafting the report, the student must submit it to his/her advisor for approval. Once approved, the report must be submitted to the Computer Science department office.
Students who are doctoral "candidates" must also submit a second, separate, report to the Dean of Graduate Academics' office. The definition of the term "candidate" is left to each department, and the Computer Science department defines candidates to be students who have passed the qualifying exam, both written and oral parts. The report for the graduate dean must be submitted on a special form—the "Doctoral Activity Report," (DAR)—available at www.stevens.edu/registrar/forms/Doctoral_Activity.pdf. It is acceptable to write a single report and submit the DAR to the department, as well as to the graduate office.
The outcome of the progress review meeting is that a student is placed into one of three categories: good standing, probation, or terminated. A student in good standing is making satisfactory progress toward his/her degree, and is expected to follow through on the plans outlined in his/her progress report. A student on probation is making inadequate progress toward his/her degree. A student on probation will receive a letter from the faculty that explains what remedial actions he/she must take to return to good standing, and by what time each action must be taken. No student will be terminated without spending at least the preceding semester on probation.
Qualifying Exam. Each student must pass the qualifying exam early in his/her career. The exam has two purposes: to certify that the student is broadly educated in key areas of computer science and to demonstrate that the student has become acquainted with the process of performing original research.
Accordingly, the qualifying exam has two parts, written and oral. The written portion of the qualifying exam tests the student's knowledge of fundamental computer science at an elementary level, akin to that achieved in a Bachelor's program. The written exam tests three subjects: algorithms, programming languages, and operating systems. A student must pass all three subjects in order to pass the written exam. The exam is offered near the end of fall and spring semesters, timed so that grades are available at the progress review meeting. A student may take the written exam at most twice. Any subjects passed the first time need not be taken the second time. The written exam should be taken during the student's first two semesters in the program. The written exam must be completely passed during the student's first four semesters in the program.
The purpose of the oral portion of the qualifying exam is for the student to demonstrate promise in doing independent original research. The student will perform some work as specified by, and under the supervision of, his/her advisor. Ideally, this work would consist of the actual production of publishable research results; however, depending on circumstances, it may be more appropriate for the student to perform some type of pre-research work. The student will write a report detailing his/her effort and accomplishments. The student will give a public, announced talk detailing his/her effort and accomplishments. The paper will be read, and the talk attended, by the student's advisor and two other pre-selected regular Stevens faculty members. These three faculty will decide whether the student has passed the oral exam. In style, the report and the talk must be similar to research presentations given by experienced researchers. If either the report or the talk is judged to be inadequate in either content or presentation, this fact will be taken into account during the faculty's evaluation of the student that semester. The student may be terminated, placed on probation, required to prepare a new report or talk, perform further research, or some other remedial action(s).
The oral qualifying exam must be passed no more than 12 months after passage of the written qualifying exam, or by the end of student's 5th semester in the program, whichever is earlier.
Thesis proposal. To demonstrate that he/she is ready to undertake dissertation research, the student must write and present a thesis proposal. The written document must describe the proposed research so that an appropriately informed computer scientist—although not necessarily someone who is an expert in the topic—can understand the proposal. The written proposal should contain an explanation of the problem and why it is important, a sketch of the proposed solution, and background information that serves to indicate that the problem is unsolved and what prior or related approaches to this or similar problems have already been investigated. After writing the document, the student must make a public presentation of the proposed work. The document must be read—and the presentation should be attended—by the persons who are expected to form the student's dissertation defense committee. The presentation must allow reasonable time for appropriate questions by any person in attendance. After the presentation, the dissertation committee will decide whether the student's proposal indicates that he/she is ready to do the proposed work successfully.
If the proposal is judged to be inadequate in either content or presentation, this fact will be taken into account during the faculty's evaluation of the student that semester. The student may be terminated, placed on probation, required to prepare a new talk, perform further research, or some other remedial action(s).
Dissertation defense. The department follows the Stevens-wide procedures for the dissertation defense, including committee composition.
Required rate of progress. Stevens imposes certain deadlines on the student:
-
Students who have a Master's degree must complete the doctoral degree within six years.
-
The thesis proposal must be presented at least 12 months before the degree is awarded.
-
It is "recommended" that the qualifying exam be attempted no more than one year after entry to the program or after receipt of the master's degree, whichever comes first.
In addition, a certain rate of progress through the program is typical and expected:
-
The written qualifying exam should be attempted in the first two semesters.
-
The written qualifying exam must be passed by the end of the fourth semester.
-
The oral qualifying exam must be passed by the end of the fifth semester (or no more than 12 months after passage of the written exam, whichever is earlier).
-
The thesis proposal should be presented by the end of the sixth semester.
These are only guidelines: meeting all these targets does not necessarily constitute satisfactory progress, nor does failing to meet any necessarily constitute unsatisfactory progress.
Leave. It is expected that students, once enrolled in the doctoral program, will remain enrolled full-time without interruption until graduation. However, sometimes it is necessary for a student to take a leave for a reason, such as personal difficulty, health, etc. If such a situation arises, the student must petition the faculty in writing for a leave, which, if granted, will last for one semester. To extend the leave, a new petition must be filed. Neither indefinite leave nor excessive repetition of leave is permitted. While the student is on leave, any time limit he/she faces (e.g., completing the qualifying exam within two years) is suspended for the length of the leave.
Exceptions. The faculty reserve the right to make exceptions to any of the rules and procedures described above in order to promote and preserve the health of the doctoral program and to ensure each student's prompt and effective progress through the program.
back to top
LABORATORIES
Laboratories in the Department of Computer Science are used for course-related teaching and special problems, design projects, and research. Students are encouraged, and in many cases required, to gain hands-on experience with a number of different computers and computer operating systems and environments. The emphasis is to provide a broad understanding of the entire operation of the computer and its peripherals, and to instruct students in the use of modern tools. Students are exposed to a range of practical problems in laboratory assignments.
Research laboratories are also heavily involved in both undergraduate and graduate education with special projects and dissertation projects. All research laboratories serve a dual-use function. Undergraduate students use these facilities through special course-related projects and for senior design. Graduate students pursue course-related projects and thesis research.
The laboratory facilities provide the latest equipment and computational facilities (hardware and software). The department is continually involved in expanding, improving, and developing new laboratories to provide the students with the latest tools. Both undergraduate and graduate curriculums are continually reviewed and updated to insure that we provide the current methodologies and technologies and to maintain the standards that are incorporated in Stevens' goals.
Computer Science Laboratory
The Computer Science Laboratory offers students access to some 25 workstations running NetBSD, a free, secure, and highly portable UNIX-like open source operating system. These workstations are available to the entire Stevens community for education, research, and even recreation. In addition, many courses make use of the lab for programming purposes. The Computer Science department also maintains a state-of-the-art clustered High Performance Computing Facility (HPCF) suitable for research in areas of computer science that may require substantial computational effort. HPCF consists of 30 computing nodes, each with two 1GHz processors and 2GB of memory, communicating with each other over a gigabit switched network. The nodes are connected to a dual-processor I/O server with two 1.5GHz processors and 3GB of memory, providing access to approximately 1.2TB of fast redundant fault-tolerant disk storage.
Computer Vision Laboratory - Dr. Quynh Dinh, Dr. George Kamberov, Dr. John Oliensis
The primary objective of the research performed in the Computer Vision Laboratory is to apply rigorous physical and mathematical principles towards image interpretation. The work performed in the lab is multidisciplinary, combining many diverse academic disciplines, including physics, mathematics, engineering, and, above all, computer science. Some of the major thrusts in the lab include photometry, 3-D-shape reconstruction, shape analysis, object recognition, and multi-spectral imaging.
The Computer Vision Laboratory offers students hands-on experience with image capturing and processing equipment. There is a dedicated workstation that is mainly used for the capture of still images and movies. The environmental conditions in the lab are strictly controlled. If needed, the lab can become a dark room. An optic table allows for the precise positioning of equipment. A collection of optical components allows for experimentation with enhanced image capture. The lab has its own server and UNIX workstations for storing, processing, and analyzing images.
Visualization Laboratory (VLab) - Dr. George Kamberov, Dr. H. Quynh Dinh, Dr. John Oliensis
The research in the VLab is in the general areas of visualization, computer graphics, and computer vision, with applications in medical imaging and diagnostics, cell biology, scientific computing, robotics, and computational finance. Current research projects include the development of new geometric methods and efficient computational algorithms for representation, recognition, and visualization of surface shapes and shape deformations, and for pre-compression data reduction in visual data communications.
The VLab is part of the mV2 (multimedia vision and visualization) group, and has close ties with the Vision Lab at Stevens.
Laboratory for Secure Systems -
Dr. Adriana Compagnoni, Dr. Dominic Duggan, Dr. David Naumann, Dr. Susanne Wetzel
This laboratory pioneers new technologies and tools for high-assurance and secure systems. Some of the major research thrusts in the lab include privacy-preserving data mining; wireless network security; design and application of cryptographic primitives; phishing; checking security properties such as the flow of information in software systems; and high-level domain-specific languages for secure distributed programming. The LSS is supported by grants from various agencies, including the New Jersey Commission on Science and Technology, the National Science Foundation, Sun Microsystems, and Cisco Systems.
The Lab is one of the organizers of the Stevens/IBM Research/Columbia University Security and Privacy Day, held biannually in the greater New York City area. The lab has recently acquired new space to facilitate research associated with the funding from a National Science Foundation Grant for the development of an undergraduate major in Cybersecurity.
Software Engineering Laboratory -
Professor Larry Bernstein
The Laboratory for Quantitative Software Engineering has five workstations, of which four are dual bootable to either Windows 2000 or SuSe Linux. All six workstations have AMD Athlon™ processors with 256MB RAM. The workstations are connectable as both Ethernet and wireless LANs.
The lab's use is two-fold. First, it is used by those students in the required two-semester Senior Design sequence, the projects of which are more profitably implemented on networked workstations than on personal laptops, with which all Stevens students are equipped. A special feature of the Senior Design course is that it is taught using a novel pedagogic methodology entitled Live-Thru Case Histories.
Second, as affiliates of both Prof. Barry Boehm's University of Southern California Center for Software Engineering and of the DOD-sponsored CEBASE (Center for Experimentally-based Software Engineering) led by Prof. Boehm and Prof. Victor Basili of the University of Maryland, the Software Engineering Lab's faculty are using the lab for experimentation in software engineering technologies and methodologies. Subjects of these studies include high-reliability software, methods for avoiding the need to perform full-scale defect detection and elimination, and modern agile software development practices.
New Jersey Center for Software
Engineering
Members of the Computer Science Department held a large grant from the New Jersey Commission on Science and Technology (NJCS&T), focusing on research in software engineering aspects of networks and distributed programming. This grant was held jointly with New Jersey Institute of Technology (NJIT) and Rutgers University, New Brunswick.
Based at Stevens, the New Jersey Center for Software Engineering (NJCSE) was founded in mid-2000 as the corporate outreach (technology transfer) arm of this research activity. Academic institutions affiliated with NJCSE are Stevens Institute of Technology, New Jersey Institute of Technology, Rutgers University in New Brunswick, and Monmouth University. The center sponsors and actively participates in the IEEE Computer Society DVP program. Seminars resulting from this research have been presented in Mexico, British Columbia, Italy, Florida, and South Carolina, as well as New Jersey and New York.
back to top
UNDERGRADUATE
COURSES
CS 105 Introduction to Scientific Computing
(2-2-3)
This is a first course in computer programming for students with no prior experience. Students learn the core process of programming: given a problem statement, how does one design an algorithm to solve that particular problem and then implement the algorithm in a computer program? The course introduces elementary programming concepts like basic control concepts (such as conditional statements and loops) and a few essential data types (e.g., integers and doubles). Exposure to programming is through a self-contained user-friendly programming environment, widely used by the scientific and engineering communities, such as Matlab. The course covers problems from all fields of science, engineering, and business.
CS 115 Introduction to Computer Science
(3-2-4)
This is an introductory programming course using the Java language. The topics include: basic facts about object-oriented programming and Java through inheritance and exceptions; recursion; UML diagrams and how to read class diagrams; ethics in computer science; and some basic understanding about computer systems: the compile/link/interpret/execute cycle and data representation. Prerequisite: CS 105 or substantial high school exposure to C++, Java, or some other major imperative programming language.
CS 146 Web Fundamentals
(3-0-3)
This course introduces students to the infrastructure underlying the Web, including protocols and markup languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
CS 181 Introduction to Computer Science Honors I
(3-2-4)
Getting acquainted with C++: data types, input and output, functions, writing simple C++ programs, flow control, Boolean expressions, decision statements, if/then, and switch/case; loop operations, while, do/while, and for loops; arrays and pointers; defining structs and classes, constructors and destructors, and operator overloading using an example String class; templates; abstract data types: vectors, lists, stacks, queues, and priority trees with applications; and trees and simple sorting with searching algorithms. By invitation only. Students who complete this class are exempt from CS 115 and CS 284.
CS 182 Introduction to Computer Science Honors II
(4-0-4)
An overview of the C++ language; algorithm design and computational complexity; abstract data types; review of fundamental data structures: vectors, lists, stacks, and queues; trees and binary trees; heaps and priority queues with applications; dictionaries with applications; implementation of dictionaries using binary search trees, AVL trees, and red-black trees; sorting algorithms; graphs and networks with applications; graph implementations and depth-first and breadth-first searching with applications; and other graph algorithms. Students who complete this class are exempt from CS 385. Prerequisites: CS 181 and permission of the instructor. Corequisite: MA 134.
CS 284 Data Structures
(3-1-4)
This is a course on standard data structures, including sorting and searching and using the Java language. The topics include: stages of software development; testing; UML diagrams; elementary data structures (lists, stacks, queues, and maps); use of elementary data structures in application frameworks (e.g., JFC); searching; sorting; and introduction to asymptotic complexity analysis. Prerequisite: CS 115 or CS 181. Corequisite: MA 134.
CS 334 Automata and Computation
(3-0-3)
Introduction to recursive functional programming and equational reasoning; lists as inductive types and list induction; introduction to formal languages, automata, and the theory of computation; regular expressions, finite state machines, and pumping lemma; context free grammars and push down automata; turing machines, recursive enumerability, and unsolvable problems; and complexity and intractability. A number of models of computation are considered, as well as their relation to various problem classes (e.g. solvable problems and polynomial time solvable problems). Some experiments are performed that involve writing small Scheme programs. Prerequisites: CS 115 and MA 134.
CS 347 Software Development Process
(3-0-3)
This course provides a general introduction to the essentials of the software development process, that series of activities that facilitate developing better software in less time. The course introduces software development and deployment life cycles, requirements acquisition and analysis, software architecture and design, and resource management and scheduling in the implementation phase. Students gain experience with tools and methodologies for configuration management and project management. Security engineering is considered as an essential part of the software development process, particularly from the standpoint of applied risk management. Prerequisites: MA 134 and CS 284.
CS 383 Computer Organization and Programming
(3-0-3)
Basic structure of the stored program computer, addressing methods and program sequencing, instruction sets and their implementation, the CPU and microprogrammed control, input/output organization, peripherals and interfacing, and main memory; and detailed study of a small machine. Assignments are devoted to assembly language programming. Prerequisite: CS 115 or CS 181.
CS 385 Algorithms
(3-1-4)
This is a course on more complex data structures, and algorithm design and analysis, using the C language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques. Prerequisite: CS 284.
CS 392 Systems Programming
(3-0-3)
Introduction to systems programming in C on UNIX. Students will be introduced to tools for compilation, dynamic linking, debugging, editing, automatic rebuilding, and version control. Some aspects of the UNIX system call interface will be studied, drawn from this list: process creation, signals, terminal I/O, file I/O, inter-process communication, threads, network protocol stacks, programming with sockets, and introduction to RPC. Style issues to be covered include: naming, layout, commenting, portability, design for robustness and debugging, and language pitfalls. X programming and GUI design will be covered, if time allows. Prerequisite: CS 385 or CS 182.
CS 437 Interactive Computer Graphics
(3-0-3)
A comprehensive introduction to the field of Computer Graphics. Students study the conceptual framework for interactive computer graphics: transformations, viewing, shading, clipping, rasterization, curves and surfaces, and selected topics. OpenGL is used as an application-programming interface. Prerequisite: CS 385 or CS 182. Cross-listed with CPE 437.
CS 442 Database Management Systems
(3-0-3)
Introduction to the design of relational databases and the use of standard relational query languages. Topics include: relational schemas, keys and foreign key references, relational algebra (as an introduction to SQL), SQL,; Entity-Relationship (ER) database design, translating from ER models to relational schemas and from relational schemas to ER models, functional dependencies, and normalization. Prerequisite: CS 385 or CS 182. CS 347 or permission of instructor.
CS 465 Selected Topics in Computer Science
A participating seminar on topics of current interest and importance in computer science.
CS 482 Artificial Intelligence
(3-0-3)
An introduction to the large and diverse field of artificial intelligence. Topics include: problem solving by search and constraint satisfaction; alpha-beta search for two-player games; and logic and knowledge representation, planning, learning, decision theory, statistical learning, and computer vision. Prerequisite: CS 385 or CS 182.
CS 488 Computer Architecture
(3-0-3)
An introduction to the functional level structure of modern pipelined processors and the empirical and analytic evaluation of their performance. Topics include: empirical and analytic techniques for measuring performance (use of various means, Amdahl's Law, and benchmarks); tradeoff analysis; principles of instruction set design and evaluation (memory addressing, operations, types and sizes of operands, instruction set encoding, CISC vs. RISC, and related compilation issues); pipelining (basics, data hazards, and control hazards); and memory systems. Prerequisite: CS 383. Corequisite: MA 222. Cross-listed with CPE 488.
CS 492 Operating Systems
(3-0-3)
The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O. Prerequisites: CS 392 and CS 383.
CS 496 Principles of Programming Languages
(3-0-3)
An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML; recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance and subtyping; polymorphism and genericity; and design patterns and the visitor pattern. Prerequisites: CS 284 or CS 181, and CS 334. Corequisite: CS 385.
CS 498 Senior Research I
(0-8-3)
Individual research project under the guidance of a faculty member of the department, whose prior approval is required. Either a written report in acceptable journal format or the completion of a senior thesis, as well as an oral presentation, is required at the end of the project. Senior students only. CS 498 and CS 499 cannot be taken simultaneously.
CS 499 Senior Research II
(0-8-3)
Individual research project under the guidance of a faculty member of the department, whose prior approval is required. Either a written report in acceptable journal format or the completion of a senior thesis, as well as an oral presentation, is required at the end of the project. Senior students only. CS 498 and CS 499 cannot be taken simultaneously.
back to top
GRADUATE COURSES
All graduate courses are three credits, except where noted. Undergraduate students may take any 500-level course for which they satisfy the prerequisites. Higher-numbered graduate courses may be taken only by undergraduates who satisfy the prerequisites, have a 3.0 GPA, and receive permission of the instructor. Note that prerequisites for graduate courses are stated in terms of other graduate courses, and that equivalences exist between certain undergraduate and graduate courses:
CS 510 |
= |
CS 496 |
Programming Languages |
CS 514 |
= |
CS 488 |
Computer Architecture |
CS 520 |
= |
CS 492 |
Operating Systems |
CS 537 |
= |
CS 437 |
Interactive Computer Graphics |
CS 541 |
= |
CS 482 |
Artificial Intelligence |
CS 550 |
= |
CS 383 |
Computer Organization and Programming |
CS 561 |
= |
CS 442 |
Database Management Systems |
CS 570 |
= |
CS 284 |
Data Structures |
CS 590 |
= |
CS 385 |
Algorithms |
SOC 611 |
= |
CS 146 |
Web Fundamentals |
MA 502 |
= |
MA 134 |
Discrete Mathematics |
In fulfilling
their study plans, undergraduates should always take the undergraduate
course whenever a choice exists.
Computer Science
CS 501 Introduction to JAVA Programming
An introduction to the Java programming language for those students who have little or no programming background. It is intended as an elective for the Master of Science in Information Systems to be taken near the end of the program. Basic topics considered will be programs and program structure in general and Java syntax, data types, flow of control, classes, methods and objects, arrays, exception handling, and recursion. In addition, the use of Java in enterprise-wide computing and distributed systems will be introduced by considering APIs in general, and the ones specific to JDBC and the Java security features in particular. Not for credit for Computer Science department majors.
CS 503 Discrete Mathematics for Cryptography
Topics include basic discrete probability, including urn models and random mappings; a brief introduction to information theory; elements of number theory, including the prime number theorem, the Euler phi function, the Euclidean algorithm, and the Chinese remainder theorem; and elements of abstract algebra and finite fields, including basic fundamentals of groups, rings, polynomial rings, vector spaces, and finite fields. Carries credit toward the Applied Mathematics degree only when followed by CS 579. Prerequisite: MA 502. Cross-listed with MA 503.
CS 505 Probability and Stochastic Processes I
Axioms of probability; discrete and continuous random vectors; functions of random variables; expectations, moments, characteristic functions, and moment-generating functions; inequalities, convergence concepts, and limit theorems; central limit theorem; and characterization of simple stochastic processes: wide-sense stationality and ergodicity. Cross-listed with EE 605.
CS 510 Principles of Programming Languages
An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML. Recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, and state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance, and subtyping; polymorphism and genericity; and design patterns and the visitor pattern. Prerequisites: Undergraduates: CS 334 and CS 385. Graduates: MA 502 and CS 590.
CS 511 Concurrent Programming
The study of concurrency as it appears at all levels and in different types of computing systems. Topics include: models of concurrency; languages for expressing concurrency; formal systems for reasoning about concurrency; the challenges of concurrent programming; race conditions; deadlock; livelock and nondeterministic behavior; prototypical synchronization problems, such as readers-writers and dining philosophers; mechanisms for solution of these problems, such as semaphores, monitors, and conditional critical regions; important libraries for concurrent programming; message passing, both synchronous and asynchronous; and applications of multithreaded concurrent programming and parallel algorithms. Substantial programming required. Prerequisite: CS 385 or CS 590.
CS 513 Knowledge Discovery and Data Mining
This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems. Prerequisite: Knowledge of statistics. Cross-listed with SOC 550.
CS 514 Computer Architecture
Measures of cost, performance, and speedup; instruction set design; processor design; hard-wired and microprogrammed control; memory hierarchies; pipelining; input/output systems; and additional topics as time permits. The emphasis in this course is on quantitative analysis of design alternatives. Prerequisite: CS 550 or equivalent. Cross-listed with CPE 514 and NIS 514. This course is owned and taught by the Computer Science department
CS 516 Compiler Design
Lexical analysis; syntax analysis; symbol table construction; semantic analysis; syntax-directed translation; dataflow analysis; liveness analysis; and register allocation. The emphasis in this course is on the integration of the various parts of a compiler. Each student writes a complete compiler for a small, but substantial, language. Prerequisite: CS 385 or CS 590.
CS 519 Distributed Commerce
The course provides an understanding of electronic commerce and related architectures, protocols, and technologies. It describes the e-commerce concept, objectives, and market drivers, as well as its requirements and underpinning techniques and technologies, including the Internet, WWW, multimedia, intelligent agents, client-server, and data mining. Security in e-commerce is addressed, including types of security attacks, security mechanisms, Virtual Private Networks (VPNs), firewalls, Intranets, and extranets. Implementation issues in e-commerce, including the design and management of its infrastructure and applications (ERP, CRM, and SCM), are discussed. M-commerce is addressed, electronic payment systems with their associated protocols are described, and various B2C and B2B applications are presented. Also, policy and regulatory issues in e-commerce are discussed. Cross-listed with CPE 519.
CS 520 Operating Systems
The use and internals of modern operating systems. Lectures focus on internals, whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, including virtual memory and shared libraries; file system data structures; and I/O. Prerequisites: CS 385 or CS 590, and CS 383 or CS 550.
CS 521 TCP/IP Networking
Introduction to IP networking; examination of all layers of the OSI stack; detailed examination of the IP, ICMP, UDP, and TCP protocols; basic concepts of network design: end-to-end principle, routing, encapsulation, flow control, congestion control, and security; detailed coverage of TCP; some treatment of important Internet applications and services; and emphasis on network layer and above. Assignments focus on protocols and software. Prerequisite: CS 492 or CS 520.
CS 522 Mobile and Pervasive Computing
(3-0-3)
This course introduces the field of mobile computing and the closely related field of pervasive computing. Topics covered include: mobile hardware, wireless communication, ubiquitous data access, resource scarcity, sensing and actuation, location and context awareness, security and privacy, design methodologies and infrastructure, and end-to-end application considerations. Prerequisite: CS 392, CS 492, or CS 520.
CS 526 Systems Programming for Enterprise Computing
This course is an introduction to programming and administration of mainframe computers, which are the backbone of modern enterprise computing. Introduction to z/OS and z/VM; protection and virtualization; total cost of ownership (TCO); converstaional Monitoring System (CMS); initial program load (IPL) and launching new virtual machines; writing scripts in REXX; interactive z/OS facilities: TSO/E, ISPF and Unix; Unix system services; JCL and SDSF; transaction management using the Java CICS API; and network programming concepts: virtual LANs, open service adapters, and hipersockets. Prerequisite: CS 385 or CS 590.
CS 533 Cost Estimation and Metrics
The course deals with the management of software projects through the use of objective metrics, which help developers and managers to understand the scope of the work to be accomplished, the risks which will occur, the tasks to be performed, the resources and effort to be expended, and the schedule to be observed. It provides the student with a thorough introduction to facility with, and understanding of, such industry-standard software sizing metrics as Function, Feature and Object Points, and their relationship to the lines-of-code metric. It provides the student with a thorough introduction to, and understanding of, such industry-standard software estimation tools such as COCOMO II and KnowledgePlan. Prerequisites: CS 347, CS 590, or SOC 606, or admission to the M.S. in QSE program. Undergraduates may take this course if they have senior status, or have obtained the written permission of the instructor.
CS 537 Interactive Computer Graphics
This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues. Prerequisite: CS 385 or CS 590. Cross-listed with CPE 537.
CS 538 Visual Analytics
Visual analytics is the combination of data filtering, statistical algorithms, and visual presentation in an interactive visual interface. This course provides an introduction to both information and scientific visualization. Topics include: perception (color, space/order, and depth/occlusion), interaction (navigation, zooming, focus, and context), design studies and evaluation, and data representation (graphs, trees, volumes, and time series). Applications include: software, scientific, financial, and cartographic visualization. Prerequisites: CS 537 and CS 545.
CS 539 Real-Time Rendering, Gaming, and Simulations Programming
The course is an introduction to the techniques for designing and building computer games and real-time graphics-oriented simulations. The topics include: 3-D game engine architecture, design, and implementation; simulation, modeling, and object control; character behavior and behavior-based animation; human-computer interaction; and event-driven simulations. Prerequisites: CS 437 or CS 537, and CS 482 or CS 541.
CS 540 Fundamentals of Quantitative Software Engineering
This course introduces the subject of software engineering, also known as software development process or software development best practice, from a quantitative, analytic-, and metrics-based point of view. Topics include introductions to: software life-cycle process models from the heaviest weight, used on very large projects, to the lightest weight, e.g., extreme programming; industry-standard software engineering tools; teamwork; project planning and management; and object-oriented analysis and design. The course is case history- and project-oriented. Prerequisite: CS 347, CS 590, or SOC 606 or admission to the M.S. in QSE program. Undergraduates may take this course if they have senior status or have obtained the written permission of the instructor. Cross-listed with CPE 540.
CS 541 Artificial Intelligence
An introduction to the large and diverse field of artificial intelligence. Topics include: problem-solving by search and constraint satisfaction; alpha-beta search for two-player games; and logic and knowledge representation, planning, learning, decision theory, statistical learning, and computer vision. Prerequisite: CS 385 or CS 590.
CS 543 Principles of Computer Mediated Entertainment
This course provides an introduction to entertainment-based user interface design and development from a computer science perspective. The course includes: a survey and classification of the types of computer-mediated entertainment (CME); challenges in developing such interfaces; software architectures to support CME; design principles for sketching CME; and software tools to create CME and provide the technical infrastructure necessary to sustain it. Prerequisites: CS 540 and CS 545.
CS 544 Health Informatics
This course integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose the health informatics application domain. The course covers the history of health informatics, including discussions of protocols and standards, such as OSI, UDEF, and HL7; review of information access and evaluation, health care terminology and health care economics, and looks at system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to Web services and mobile computing as they relate to the health care industry. The course includes extensive readings. Prerequisites: CS 548 or SOC 542, and CS 549 or SOC 641. Cross-listed with SOC 552.
CS 545 Human-Computer Interaction
This is an introduction to Human Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development. Prerequisite: CS 385 or CS 590. Cross-listed with SOC 510.
CS 546 Web Programming
This course will provide students with a first strong approach of Internet programming. It will give the basic knowledge on how the Internet works and how to create advanced Web sites by the use of script languages, after learning the basics of HTML. The course will teach the students how to create a complex global site through the creation of individual working modules, giving them the skills required in any business such as proper team work and coordination between groups. Prerequisites: CS 146, SOC 611, or permission of instructor, and CS 442 or CS 561.
CS 548 Engineering of Enterprise Software Systems
(3-0-3)
This course addresses the important engineering issues in building large-scale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization, and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies. Prerequisite: CS 385, CS 590, SOC 606, or admission to M.S. in QSE program. Cross-listed with SOC 542.
CS 549 Distributed Systems
Developing robust applications in distributed environments. Coursework includes developing a fault-tolerant distributed application; RPC and RMI; Web Services; application servers (e.g., JEE and Websphere); transactions: concurrency control and recovery, distributed transactions, nested transactions, and business transactions; models of distributed systems, impossibility results, and Byzantine failures; protocol design and examples (2PC and 3PC); distributed snapshots; logical time and vector clocks; replication for fault tolerance: primary-backup and state machine approaches, quorum consensus, and process groups; and peer-to-peer networks. Prerequisite: CS 385 or CS 590.
CS 550 Computer Organization and Programming
This course provides an intensive introduction to material on computer organization and assembly language programming required for entrance into the graduate program in Computer Science or Computer Engineering. The topics covered are: structure of stored program computers; linking and loading; assembly language programming, with an emphasis on translation of high-level language constructs; data representation and arithmetic algorithms; basics of logic design; and processor design: data path, hardwired control, and microprogrammed control. Students will be given assembly language programming assignments on a regular basis. No graduate credit for students in Computer Engineering. Cross-listed with CPE 550.
CS 551 Software Engineering and Practice I
Software design and development theory of software design, with emphasis on large systems; models of the software process: specifications development, designing, coding, and testing; program abstraction with functional abstraction and with abstract data types; top-down and bottom-up development methods; common software architecture models; and specification validation, design verification, testing strategies, and test coverage issues. Prerequisite: CS 385.
CS 552 Software Engineering and Practice II
Covers the practical aspects of the software process. Cost and schedule estimation; management systems; technical vs. administrative responsibilities; documentation; libraries; configuration management; and automated software tools. The class is partitioned into software teams, each of which develop and manage a typical large-scale software development process. Projects are drawn from industry and government. Prerequisite: CS 551.
CS 558 Computer Vision
An introduction to the field of Computer Vision, focusing on the underlying algorithmic, geometric, and optic issues. The course starts with a brief overview of basic image processing topics (convolution, smoothing, and edge detection). It then proceeds on various image analysis topics: binary images, moments-based shape analysis, Hough transform, image formation, depth and shape recovery, photometry, motion, classification, and special topics. Prerequisites: CS 385 or CS 590 and MA 232 or permission of instructor. Cross-listed with CPE 558.
CS 559 Machine Learning: Fundamentals and Applications
In many fields (e.g., computer vision, speech recognition, data mining, and bioinformatics), machine learning has become a crucial ingredient in translating research into applications. The course is intended to provide an in-depth overview of recent advances in machine learning, with applications in fields such as computer vision, data mining, and bioinformatics. It will cover several of the most important recent developments in learning algorithms, including Support Vector Machines and kernel methods, boosting, and belief propagation, and outline the fundamental concepts behind these approaches. Other topics include: Graphical Models (Bayes Nets and Markov Random Fields), dimensional reduction, supervised (Bayesian) and unsupervised learning, and robust methods. Prerequisite: knowledge of statistics.
CS 561 Database Management Systems
Introduction to the design of relational databases and the use of standard relational query languages. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization. Prerequisite: CS 385 or CS 590, and CS 347,CS 540, or permission of instructor.
CS 564 Software Requirements Acquisition and Analysis
Requirements acquisition is one of the least understood and hardest phases in the development of software products, especially because requirements are often unclear in the minds of many or most stakeholders. This course deals with the identification of stakeholders, and the elicitation and verification, with their participation, of the requirements for a new or to-be-extended software product. It deals further with the analysis and modeling of requirements, the first steps in the direction of software design. Finally, it deals with the quality assurance aspects of the software requirements phase of the software development process. This course is case-history and project-oriented, and uses industry-standard software tools. Prerequisite: CS 385 or CS 590 or SOC 606. Cross-listed with SOC 521.
CS 565 Software Architecture and Component-Based Design
This course deals with the high-level (architectural) and low-level issues involved in the design of software systems/products. At the high level it deals with such issues as component-based design, cohesion, interconnection complexity, and methods for minimizing the latter; it also deals with the use of middleware, performance analysis and simulation, and the use of COTS components. At the low level, it deals with object-oriented design, design patterns, and code refactoring. Finally, it deals with validation and verification of both architecture and code designs. This course is case-history and project-oriented. Prerequisite: CS 540 or CS 551.
CS 567 Software Testing, Quality Assurance, and Maintenance
This course provides in-depth coverage of software testing, configuration management, quality assurance, and maintenance, both in terms of defect removal and enhancement. It deals with the performance of these activities in a variety of life-cycle models, from spiral-model or Rational Unified Process development, through lighter weight varieties of incremental and iterative models down, to extreme programming. It is a project-oriented course. Prerequisite: CS 533.
CS 570 Introduction to Programming in C++
Introduction to programming using standard data types and programming constructs of C++. Students will be given regular programming assignments.
CS 571 Java
The course consists of an in-depth discussion of Java language and programming techniques. Comparison of Java to other languages, such as C/C++, is made throughout the course to emphasize various shortcomings of the language and their implications on design paradigms. Some aspects of GUI libraries, multithreading support, and Java native interface are also discussed. Not for undergraduate credit in Computer Science, Computer Engineering, Cybersecurity, Information Systems, and Service-Oriented Computing degree programs.
CS 573 Fundamentals of Cybersecurity
This course studies the mathematical models for computer security (Bell-LaPadula, Clark-Wilson, Biba, and Gligor models). It analyzes and compares, with respect to formal and pragmatic criteria, the properties of various models for hardware, software, and database security. Topics also include: formal specification and verification of security properties, operating system security, trust management, multi-level security, security labeling, security auditing and intrusion detection, security policy, safeguards and countermeasures, risk mitigation, covert channels, identification and authentication, password schemes, access control lists, and data fusion techniques. The course includes a project. Prerequisite: CS 385, CS 590, or equivalent.
CS 574 Object-Oriented Analysis and Design
Theory of object-oriented design, classes, interfaces, inheritance hierarchy, and correctness; abstract data types, encapsulation, formal specification with preconditions, post-conditions and invariants, and proofs of correctness; object-oriented software, objects and classes, genericity, inheritance, polymorphism, and overloading; single and multiple inheritance, programming by contract, subclassing as subcontract, specification, and verification; and programming language examples include C++, Java, Smalltalk, and Eiffel.
CS 576 Secure Systems
Attacks on computer systems have become part of everyday life. It is the goal of this class to teach a basic understanding of the possible security failures, as well as the protection mechanism. The class will cover an introduction to network and host security concepts and mechanisms; basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrusion detection systems; and operating systems and application vulnerabilities, exploits, and countermeasures. The class is designed for undergraduate, master's, and Ph.D. students. Those who take the class are expected to be able to program in C, have some basic knowledge of assembly language, and be familiar with network programming, as well as Unix-like operating systems. Prerequisites: CS 492 or CS 520, and CS 579. Co-requisite: CS 577.
CS 577 Cybersecurity Lab
Theoretical foundations in cryptographic algorithms, cryptographic protocols, access control models, formal methods, security policy, etc. provide the necessary background to understand the real-world implications of cryptography and network security. This laboratory course is designed to provide students with a hands-on experience based on the theoretical knowledge they have acquired by taking other security-oriented courses. This hands-on experience is of great importance for future jobs in industry. The course will accomplish its goals through a number of in-lab programming exercises. Topics covered include: basic cryptographic algorithms and protocols; authentication and authorization protocols; access control models; common network (wired and wireless) attacks; typical protection approaches, including firewalls and intrustion detection systems; and operating systems and application vulnerabilities, exploits, and countermeasures. Prerequisites: CS 492 or CS 520, and CS 579. Corequisite: CS 576.
CS 578 Privacy in a Networked World
Increasing use of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive data that, if used improperly, can harm the data subjects. As a result, concern about the ownership, control, privacy, and accuracy of these data has become a top priority. This course focuses on both the technical challenges of handling sensitive data and the policy and legal issues facing data subjects, data owners, and data users. This course is suitable for advanced undergraduate computer science majors, graduate students in computer science, and students in technology management or other majors with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press. Cross-listed with SOC 551.
CS 579 Foundations of Cryptography
This course provides a broad introduction to cornerstones of security (authenticity, confidentiality, message integrity, and non-repudiation) and the mechanisms to achieve them, as well as the underlying mathematical basics. Topics include: block and stream ciphers, public-key systems, key management, certificates, public-key infrastructure (PKI), digital signature, non-repudiation, and message authentication. Various security standards and protocols, such as DES, AES, PGP, and Kerberos, are studied. Prerequisites: CS 503 and either CS 334 or CS 600.
CS 590 Algorithms
This is a course on more complex data structures, and algorithm design and analysis, using the C++ language. Topics include: advanced and/or balanced search trees; hashing; further asymptotic complexity analysis; standard algorithm design techniques; graph algorithms; complex sort algorithms; and other "classic" algorithms that serve as examples of design techniques. Prerequisites: CS 570 and MA 502. Cross-listed with CPE 590.
CS 594 Enterprise Security and Information Assurance
This course addresses the security of e-business and cyber environments from an end-to-end perspective, including data center security and access security. The information security phases of inspection, protection, detection, reaction, and reflection are emphasized. Topics also include: server and application security, virtual local area networks (VLANs), secure access and financial transaction techniques, and back-up and disaster recovery techniques. The course also reviews financial Electronic Data Interchange (EDI) and smart card security in banking applications, and describes how the business and financial risks associated with security are estimated and managed.
CS 600 Advanced Algorithm Design and Implementation
Design, implementation, and asymptotic time and space analysis of advanced algorithms, as well as analyzing worst-case and average-case complexity of algorithms. Students will be expected to run experiments to test the actual performance of the algorithms on sample inputs. Introduction to NP-complete problems and approximation algorithms. Prerequisite: CS 385 or CS 590. Cross-listed with CPE 600.
CS 601 Algorithmic Complexity
Analysis of algorithms: resource-bounded computation and time and space complexity; various models of computation will be studied; complexity classes and reducibilities, hardness, and completeness; and randomized algorithms and approximation algorithms. Prerequisite: CS 600.
CS 611 Systems Administration for Enterprise Computing
This course develops advanced skills in managing enterprise computers and networks. Concepts of Unix systems administration; system management with systems such as Unix and z/VM; end-to-end systems management; storage management; enterprise administration and server-to-server; and data center management and workflows. The course involves hands-on experience with enterprise computer administration and systems programming. Prerequisite: CS 526.
CS 612 Enterprise Security and Privacy
This course develops advanced organizational and engineering skills in managing and enforcing privacy and security policies in enterprise system. Security governance; access control; authentication and single sign-on; security in enterprise operating systems; access control and user operating systems; privacy management; identity management; federations and Web services security; risk management and compliance; intrusion detection, honeypots, and digital forensics; and enterprise security management. Course work involves hands-on experience with systems programming and configuration of enterprise computers. Prerequisites: CS 573, CS 611, CS 548.
CS 615 Systems Administration
This course covers some of the most essential aspects of systems administration, giving students the opportunity to develop the skills necessary to analyze and troubleshoot problems arising in every day usage of networked computer systems, applying equally to single-user systems, as well as to large-scale installations. Some of the topics covered include: hardware configuration, operating system installation, shell programming, security policies, back-up deployment and disaster recovery, network design, software installation and maintenance, operating system tuning, and best practices for problem determination. Security topics including packet sniffers and spoofers, buffer overflow attacks and stack protection, and firewalls and intrusion detection are also covered, with an emphasis on their implementation. Students are expected to be comfortable in a Unix-like environment on a user level and have a solid understanding of TCP/IP networking and operating system concepts. Prerequisites: CS 520.
CS 630 Automata and Formal Languages
(3-0-3)
Analysis of finite automata and regular sets; formal languages and grammars, and Chomsky-hierarchy; context-free languages and PDAs; and applications to parsing. Prerequisite: MA 502 or equivalent.
CS 634 Decidability and Computability
Computable functions and Turing machines; primitive recursive functions, recursive functions, loop-programs, and while-programs; decidability, solvability, and unsolvable problems; high complexity classes and reducibilities, hardness, and completeness; and the arithmetical hierarchy and definability. The connection to complexity theory is emphasized throughout the course. Prerequisite: MA 502 or equivalent.
CS 636 Integrated Services - Multimedia
Types of multimedia information: voice, data video facsimile, graphics, and their characterization; modeling techniques to represent multimedia information; analysis and comparative performances of different models; detection techniques for multimedia signals; specification of multimedia representation based on service requirements; and evaluation of different multimedia representations to satisfy user applications and for generating test scenarios for standardization. Prerequisite: knowledge of probability. Cross-listed with CPE 636 and NIS 536.
CS 638 Advanced Computer Graphics
Mathematical foundations and algorithms for advanced computer graphics. Topics include: 3-D modeling, texture mapping, curves and surfaces, physics-based modeling, and visualization. Special attention will be paid to surfaces and shapes. The class will consist of lectures and discussion on research papers assigned for reading. In class, we will study the theoretical foundations and algorithmic issues. In programming assignments, we will use OpenGL as the particular API for writing graphics programs. C/C++ programming skills are essential for this course. Prerequisite: CS 437 or CS 537. Cross-listed with CPE 638.
CS 643 Formal Verification of Software
Formal systems for specification and verification of software; review of the first-order predicate calculus; abstract data types, formal specification, preconditions, postconditions, invariants, predicate transformers, proofs of correctness, and partial and total correctness; and correctness for assignments, alternatives, iterations, and procedure calls. Prerequisite: CS 600.
CS 651 Introduction to Networks and Graph Theory
Introduction to the theory and applications of networks and graphs. Topics include: paths, connectivity, trees, cycles, planarity, network flows, matchings, colorings, and some extremal problems. Prerequisite: MA 502 or equivalent.
CS 660 Graph Algorithms
(3-0-3)
Basic graph-theoretic notions; data structures for graph representation; running time analysis; review of depth-first search, breadth-first search, and minimum spanning trees; network flow problems; graph connectivity; matchings; Eulerian graphs and digraphs; de Bruijn graphs; Hamiltonian graphs; traveling salesman problem; planar graphs; planarity testing; vertex and edge colorings; chromatic polynomials; five-coloring algorithm; and the four-color problem. Prerequisites: MA 502 and CS 600.
CS 665 Cybersecurity Forensics
Security forensics involves the identification, preservation, and analysis of evidence of attacks in order to identify the attackers and document their activity with sufficient reliability to justify appropriate technological, business, and legal responses. Forensic activity takes place in a complex, ever-changing legal and social context, which must be understood to fully appreciate the power and value of that activity. This course covers both technological and legal components of the topic. The technical aspect addresses analysis of intruder types and the intrusion process, review of logs and profiles and their types, identification of attack signatures and fingerprints, application of data mining techniques, study of various traceback methods, and the preservation of the information and evidence acquired through the use of forensic tools and techniques. The legal aspect addresses the impact of forensics on the legislative, judicial, and regulatory proceedings that collectively articulate and promote public policy goals, determine civil and criminal liability, and define and assess regulatory compliance. It also discusses the point that the effective and appropriate use of forensics requires that such investigations be conducted under law, with particular regard to civil rights, rights of privacy, property, and contract rights. The course draws on pertinent concepts of law and legal procedure, at a level accessible by non-lawyers, to explore the broader significance of forensics in the private and public sectors. Prerequisite: CS 573.
CS 666 Information Networks I
The first of a two-course sequence on modern computer networks. Focus is on the physical and data link levels of the OSI layers. Trace the evolution of client/server computing to the Internet. Topics covered include OSI layering, TCP/IP overview, the application of Shannon’s and Nyquist’s bandwidth theorems, Discrete Wave Division Multiplexing, wireless transmission, local loops, QAM, TDM, SONET/SDH, circuit switching, ATM switching, knockout switch, ISDN, STM, framing, error detection and correction, CRC, ARQ protocol, sliding window protocols, finite state machines, Universal Modeling Language, PPP, ALOHA, CSMA, LANs, fast and gigabit Ethernet, Bridges, and FDDI. A significant amount of time is spent on designing 802.3 LANs. Prerequisite: Graduate: CS 505; Undergraduate: MA 222. Cross-listed with NIS 678 and CPE 678.
CS 667 Information Networks II
Learn the technologies that make the Internet work. You will understand the TCP and IP protocols and their interaction. You will study the TCP slow start in low noise and high noise environments, the use of proxy servers, web caching, and gain understanding of the technologies used to make routers perform well under load. These include shortest path routing, new routing protocols, TCP congestion control, leaky bucket and token bucket admission control, weighted fair queueing, and random early detection of congestion. Networks are described in terms of their architecture, transport, routing, and management. Quality of Service (QoS) models are integrated with communication models. The course requires problem-solving and extensive reading on network technology. After an introduction to bridges, gigabit Ethernet, routing, and the Internet Protocol, a fundamental understanding of shortest path and distance vector routing is taught. A “problem/solution” approach is used to develop how and why the technology evolved to keep engineering tradeoffs in focus. Continuation of Information Networks I with a focus on the network and transport layers of the OSI layers. Protocol definitions for distributed networks and performance analysis of various routing protocols, including Bellman-Ford, BGP, and OSPF. TCP/IP is discussed. Other topics include pipelining, broadcast routing, congestion control and reservations, Leaky and Token Bucket algorithms, weighted fair queuing, tunneling, firewalls, IPv4, and IPv6. Network layers in SAN including the different service categories are discussed. The TCP and UDP transport protocols are discussed in depth along with network security, DNS, SAN, SLIP, firewalls, and naming. Prerequisite: CS 666. Cross-listed with CPE 679 and NIS 679.
CS 669 Network Management
Hierarchical network management for LAN and distributed discrete and integrated services networks; network management concepts; administrative and operational management; performance management; fault management; maintenance management; security management and architectural management of different ownerships; concept of managed objects, manager-agent relationship, and applications of network management protocols; and standard management protocols: SNMP and CMIP. Prerequisite: CS 666 or CS 521.
CS 689 Software Reliability Engineering
Students will learn how to analyze, predict, design, and engineer the required and expected reliability of software systems. Case studies will be used throughout, including studies of systems that worked well and of systems that failed in some crucial aspect. Examples of the types of systems which will be studied are the London Ambulance Dispatch System, the Lucent Telephone Switching Systems, and the Mars and Voyager missions. Prerequisite: CS 533.
CS 693 Cryptographic Protocols
This course covers the design and analysis of security protocols, and studies different attacks and defenses against them. Topics include: signature and authentication protocols; privacy; digital rights management; security protocols for wired, wireless and distributed networks; electronic voting; payment and micropayment protocols; anonymity; broadcast encryption and traitor tracing; quantum cryptography; and visual cryptography. Prerequisite: CS 579.
CS 765 Selected Topics in Computer Science*
A participating seminar on topics of current interest and importance in Computer Science.
CS 800 Special Problems in Computer Science (M.S.)*
An investigation of a current research topic at the pre-master's level, under the direction of a faculty member. A written report is required, which should have the substance of a publishable article. Students with no practical experience who do not write a master's thesis are invited to take advantage of this experience. One to six credits for the degree of Master of Science (Computer Science).
CS 801 Special Problems in Computer Science (Ph.D.)*
An investigation of a current research topic beyond that of CS 800 level, under the direction of a faculty member. A written report is required, which should have importance in Computer Science and should have the substance of a publishable article. This course is open to students who intend to be doctoral candidates and wish to explore an area that is different from the doctoral research topic. One to six credits for the degree of Doctor of Philosophy.
CS 802 Software Engineering Examination*
This will test the software engineering knowledge of students who have completed Stevens Institute of Technology-approved training programs in software engineering. Upon successful completion (graded pass/fail), students will be awarded six credits towards the Master of Quantitative Software Engineering on their study plan and three credits on the approval form for the certificate of Quantitative Software Engineering. To obtain a pass in this course, the student is required to demonstrate proficiency equivalent to a grade of “B” (i.e., 3.0 out of 4.0) or higher. These credits are not transferable to other institutions. Prerequisite: completion of an approved Software Engineering Training Program.
CS 900 Thesis in Computer Science (M.S.)*
A thesis of significance to be filed in libraries, demonstrating competence in a research area of Computer Science. Five to ten credits with departmental approval for the degree of Master of Science (Computer Science).
CS 960 Research in Computer Science (Ph.D.)*
Original research of a significant character carried out under the guidance of a member of the departmental faculty, which may serve as the basis for the dissertation, is required for the degree of Doctor of Philosophy. Credits to be arranged.
*By request.
Service-Oriented Computing Courses
SOC 510 Human-Computer Interaction
This is an introduction to Human-Computer Interaction (HCI). It covers basic concepts, principles, and frameworks in HCI; models of interaction; and design guidelines and methodologies. The course includes extensive readings and reports, as well as work on projects involving interface design and development. Prerequisite: CS 385, CS 590, SOC 605, or equivalent. Cross-listed with CS 545.
SOC 521 Software Requirements Acquisition and Analysis
Requirements acquisition is one of the least understood and hardest phases in the development of software products, especially because requirements are often unclear in the minds of many or most stakeholders. This course deals with the identification of stakeholders, and the elicitation and verification, with their participation, of the requirements for a new or to-be-extended software product. It deals further with the analysis and modeling of requirements, the first steps in the direction of software design. Finally, it deals with the quality assurance aspects of the software requirements phase of the software development process. This course is case-history and project-oriented, and uses industry-standard software tools. Prerequisite: CS 385, CS 590, or SOC 606. Cross-listed with CS 564.
SOC 542 Engineering of Enterprise Software Systems
This course addresses the important engineering issues in building large-scale enterprise software systems. The course emphasizes service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion. Introduction to SOA; BPM; project management, and configuration management; Web services; mainframe services, virtualization and data integration; application integration; legacy integration; enterprise integration; federal enterprise architecture (FEA); and case studies. Prerequisite: CS 385, CS 590, SOC 606, or admission to M.S. in QSE program. Cross-listed with CS 548.
SOC 550 Knowledge Discovery and Data Mining
This course introduces fundamental and practical tools, techniques, and algorithms for Knowledge Discovery and Data Mining (KD&DM). It provides a balanced approach between methods and practice. On the methodological side, it covers several techniques for transforming corporate data into business intelligence. These include: Online Analytical Processing (OLAP) Systems, Artificial Neural Networks (ANN), Rule-Based Systems (RBS), Fuzzy Logic (FL), Machine Learning (ML), Classification Trees (C4.5 Algorithm), and Classification and Regression Trees (CART Algorithm). To illustrate the practical significance of the various techniques, half of the course is devoted to case studies. The case studies, drawn from real-world applications, demonstrate application of techniques to real-world problems. Cross-listed with CS 513. Prerequisite: Knowledge of statistics.
SOC 551 Privacy in a Networked World
Increasing use of computers and networks in business, government, recreation, and almost all aspects of daily life has led to a proliferation of online sensitive that, if used improperly, can harm the data subjects. As a result, concern about the ownership, control, privacy, and accuracy of these data has become a top priority. This course focuses on both the technical challenges of handling sensitive data and the policy and legal issues facing data subjects, data owners, and data users. This course is suitable for advanced undergraduate computer science majors, graduate students in computer science, and students in technology management or other programs with some computer science background. Course readings draw on a variety of sources, including both technical materials and the popular press. Cross-listed with CS 578.
SOC 552 Health Informatics
This course integrates computer science and health informatics. It is the capstone course for students in the service-oriented computing program who choose the health informatics application domain. The course covers the history of health informatics, including discussions of protocols and standards, such as OSI, UDEF, and HL7, review of information access and evaluation; health care terminology and health care economics; and looks at system selection and evaluation in the areas of telemedicine, dental informatics, consumer health informatics, and hospital/clinical informatics. Special attention is given to Web services and mobile computing as they relate to the health care industry. The course includes extensive readings. Prerequisites: CS 548 or SOC 542, and CS 549 or SOC 641. Cross-listed with CS 544.
SOC 605 Introduction to Service-Oriented Computing
This is an introduction to the field of service-oriented computing, in the context of a first course in computer programming, for students with no prior experience. Students will learn the core process of programming: given a problem statement, how does one design an algorithm to solve that particular problem and then implement the algorithm in a computer program? The course will also introduce elementary programming concepts like basic control concepts (such as conditional statements and loops) and a few essential data types. The notions of objects and object creation will also be introduced. The course will involve programming assignments using a self-contained user-friendly programming environment.
SOC 606 Introduction to Developing Internet Applications
This is a survey course of techniques and technologies for developing Internet applications, particularly for the Web. Web servers and security; three-tier client server architectures; database design and administration; and server- and client-side scripting in Web applications. The course also introduces basic software engineering principles and practices, including project management, requirements acquisition, design, testing and configuration management, reliability, security, and risk management. Prerequisite: SOC 605 or permission of instructor.
SOC 611 Web Fundamentals
This course introduces students to the infrastructure underlying the Web, including protocols and mark-up languages. It also addresses the question of how one presents large volumes of information to people who need to find out what they are looking for quickly. The scope of the course ranges from mechanics to aesthetics. Social and ethical issues are also discussed, including the concept of information ecologies for social acceptance. Networks and protocols; pervasive computing; Web protocols; markup languages and XML; defining information architecture; understanding information needs and information-seeking behaviors; organizing Web sites and intranets; navigation systems; search systems; thesauri; from research to design: strategies for information architecture; enterprise information architecture; ethics on the Web; and information ecologies.
SOC 641 Distributed Application Development
This course is a survey of advanced techniques for developing distributed applications. Blocking and unblocking message-passing; RPC and middleware; Web services; concurrency control; recoverability and availability; transactions and distributed databases; centralized and distributed transactions; load balancing; mobile computing; and distributed systems security. Discussion of architectures, such as representational state transfer (REST) and technologies such as AJAX and SOAP. Prerequisite: SOC 606.
back to top
|