|
Term I | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 115 | Introduction to Computer ScienceThis 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. Close | 3 | 2 | 8 | 4 | | Science I | 3 | 0 | 3 | 3 | CS 146 | Introduction to Web Programming and Project DevelopmentThis 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. Close | 3 | 0 | 6 | 3 | MA 121 | Differential CalculusLimits, the derivatives of functions of one variable, differentiation rules, applications of the derivative.Prerequisites:MA 120Introduction to Calculus (4-0-0)
(Lecture-Lab-Study Hours)
The first part of the course reviews algebra and precalculus skills. The second part of the course introduces students to topics from differential calculus, including limits, rates of change and differentiation rules. Close |
Close | 4 | 0 | 8 | 2 | MA 122 | Integral CalculusDefinite integrals of functions of one variable, antiderivatives, the Fundamental Theorem, integration techniques, improper integrals, applications. Prerequisites:MA 121Differential Calculus (4-0-8)
(Lecture-Lab-Study Hours) Limits, the derivatives of functions of one variable, differentiation rules, applications of the derivative. Close |
Close | 4 | 0 | 8 | 2 | CAL 103 OR CAL 105 | Writing And Communications ColloquiumThis course empowers students with the written and oral communications skills essential for both university-level academic discourse as well as success outside Stevens in the professional world. Tailored to the Stevens student, styles of writing and communications include technical writing, business proposals and reports, scientific reports, expository writing, promotional documents and advertising, PowerPoint presentations, and team presentations. The course covers the strategies for formulating effective arguments and conveying them to a wider audience. Special attention is given to the skills necessary for professional document structure, successful presentation techniques and grammatical/style considerations. Close OR CAL Colloquium: Knowledge, Nature, CultureThis course introduces students to all the humanistic disciplines offered by the College of Arts and Letters: history, literature, philosophy, the social sciences, art, and music. By studying seminal works and engaging in discussions and debates regarding the themes and ideas presented in them, students learn how to examine evidence in formulating ideas, how to subject opinions, both their own, as well those of others, to rational evaluation, and in the end, how to appreciate and respect a wide diversity of opinions and points of view. Close | 3 | 0 | 6 | 3 | PE 200 | Physical Education I | 0 | 0 | 0 | 0 | | Total | 20 | 2 | 39 | 17 |
| Term II | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 284 | Data StructuresThis 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; searching; sorting; and introduction to asymptotic complexity analysis. Corequisites:CS 135Discrete Structures (3-2-8)(Lecture-Lab-Study Hours) The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course. Close |
Prerequisites:CS 115Introduction to Computer Science (3-2-8)
(Lecture-Lab-Study Hours) 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. Close |
Close | 2 | 2 | 8 | 4 | | Science II | 3 | 0 | 3 | 3 | | Science Lab | 0 | 3 | 0 | 1 | CS 135 | Discrete StructuresThe aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course. Close | 3 | 2 | 8 | 4 | MA 123 | Series, Vectors, Functions, and SurfacesTaylor polynomials and series, functions of two and three variables, linear functions, implicit functions, vectors in two and three dimensions. Prerequisites:MA 122 or Integral Calculus (4-0-8)
(Lecture-Lab-Study Hours)
Definite integrals of functions of one variable, antiderivatives, the Fundamental Theorem, integration techniques, improper integrals, applications. Close |
MA 115Calculus I (0-0-0)
(Lecture-Lab-Study Hours) An introduction to differential and integral calculus for functions of one variable. The differential calculus includes limits, continuity, the definition of the derivative, rules for differentiation, and applications to curve sketching, optimization, and elementary initial value problems. The integral calculus includes the definition of the definite integral, the Fundamental Theorem of Calculus, techniques for finding antiderivatives, and applications of the definite integral. Transcendental and inverse functions are included throughout. Close |
Close | 4 | 0 | 8 | 2 | MA 124 | Calculus of Two VariablesPartial derivatives, the tangent plane and linear approximation, the gradient and directional derivatives, the chain rule, implicit differentiation, extreme values, application to optimization, double integrals in rectangular coordinates. Prerequisites:MA 123Series, Vectors, Functions, and Surfaces (4-0-8)
(Lecture-Lab-Study Hours) Taylor polynomials and series, functions of two and three variables, linear functions, implicit functions, vectors in two and three dimensions. Close |
Close | 4 | 0 | 8 | 2 | CAL 105 OR CAL 103 | CAL Colloquium: Knowledge, Nature, CultureThis course introduces students to all the humanistic disciplines offered by the College of Arts and Letters: history, literature, philosophy, the social sciences, art, and music. By studying seminal works and engaging in discussions and debates regarding the themes and ideas presented in them, students learn how to examine evidence in formulating ideas, how to subject opinions, both their own, as well those of others, to rational evaluation, and in the end, how to appreciate and respect a wide diversity of opinions and points of view. Close OR Writing And Communications ColloquiumThis course empowers students with the written and oral communications skills essential for both university-level academic discourse as well as success outside Stevens in the professional world. Tailored to the Stevens student, styles of writing and communications include technical writing, business proposals and reports, scientific reports, expository writing, promotional documents and advertising, PowerPoint presentations, and team presentations. The course covers the strategies for formulating effective arguments and conveying them to a wider audience. Special attention is given to the skills necessary for professional document structure, successful presentation techniques and grammatical/style considerations. Close | 3 | 0 | 6 | 3 | PE 200 | Physical Education II | 0 | 0 | 0 | 0 | | Total | 19 | 7 | 41 | 19 |
| Term III | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 334 | Automata and ComputationIntroduction 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 Introduction to Computer Science (3-2-8)
(Lecture-Lab-Study Hours) 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. Close |
CS 135Discrete Structures (3-2-8)
(Lecture-Lab-Study Hours) The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course. Close |
Close | 3 | 0 | 0 | 3 | CS 383 | Computer Organization and ProgrammingThe main aspects of computers: data (data types and formats, number bases), hardware (stored program computer concept, addressing methods and program sequencing, instruction sets and their implementation, the CPU and microprogrammed control, input/output organization, peripherals and interfacing, and main memory), communication (network protocols), software (operating systems, dispatching algorithms), and assembly language programming. Corequisites:CS 181 or Introduction to Computer Science Honors I (3-2-0)(Lecture-Lab-Study Hours) 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. Trees and simple sorting with searching algorithms. By invitation only. Students who complete this class are exempt from CS 115 and CS 284. Close |
CS 284Data Structures (2-2-8)(Lecture-Lab-Study Hours) 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; searching; sorting; and introduction to asymptotic complexity analysis. Close |
Prerequisites:CS 115Introduction to Computer Science (3-2-8)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 0 | 3 | CS 385 | AlgorithmsThis 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 181 or Introduction to Computer Science Honors I (3-2-0)
(Lecture-Lab-Study Hours) 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. Trees and simple sorting with searching algorithms. By invitation only. Students who complete this class are exempt from CS 115 and CS 284. Close |
CS 284Data Structures (2-2-8)
(Lecture-Lab-Study Hours) 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; searching; sorting; and introduction to asymptotic complexity analysis. Close |
Close | 4 | 0 | 8 | 4 | CS 306 | Intro to IT Security The course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and non-repudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies Close | 3 | 0 | 0 | 3 | HSS 371 OR HPL 455 | Computers and SocietyAn introduction to arguments about the relationship between computing and society, the impact of computing activities on social relationships, and the evolution of institutions to regulate computer-mediated activities. Close OR Ethical Issues in Science and TechnologyConsideration of such issues as the ethical responsibility of scientists and technologists for the uses of their knowledge, the ethics of scientific research, and truth and fraud in science and engineering. We will study such contemporary moral questions as those concerning the uses and abuses of nuclear energy, environmental pollution and the preservation of natural resources, and the impact of new technologies on the right to privacy. Close | 3 | 0 | 6 | 3 | PE 200 | Physical Education III | 0 | 2 | 0 | 0 | | Total | 16 | 2 | 14 | 16 |
| Term IV | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 392 | Systems ProgrammingIntroduction 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 debugability, and language pitfalls. X programming and GUI design will be covered, if time allows. Prerequisites:CS 182 or Introduction to Computer Science Honors II (4-0-0)
(Lecture-Lab-Study Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms. Close |
CS 385Algorithms (4-0-8)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 0 | 3 | CS 496 | Principles of Programming LanguagesAn 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. Corequisites:CS 182 or Introduction to Computer Science Honors II (4-0-0)(Lecture-Lab-Study Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms. Close |
CS 385Algorithms (4-0-8)(Lecture-Lab-Study Hours) 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. Close |
Prerequisites:CS 334Automata and Computation (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 0 | 3 | CS 347 | Software Development ProcessThis 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:CS 181 or Introduction to Computer Science Honors I (3-2-0)
(Lecture-Lab-Study Hours) 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. Trees and simple sorting with searching algorithms. By invitation only. Students who complete this class are exempt from CS 115 and CS 284. Close |
CS 284, Data Structures (2-2-8)
(Lecture-Lab-Study Hours) 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; searching; sorting; and introduction to asymptotic complexity analysis. Close |
CS 135Discrete Structures (3-2-8)
(Lecture-Lab-Study Hours) The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course. Close |
Close | 3 | 0 | 0 | 3 | MA 222 | Probability and StatisticsIntroduces the essentials of probability theory and elementary statistics. Lectures and assignments greatly stress the manifold applications of probability and statistics to computer science, production management, quality control, and reliability. A statistical computer package is used throughout the course for teaching and for assignments. Contents include: descriptive statistics, pictorial and tabular methods, and measures of location and of variability; sample space and events, probability axioms, and counting techniques; conditional probability and independence, and Bayes' formula; discrete random variables, distribution functions and moments, and binomial and Poisson distributions; continuous random variables, densities and moments, normal, gamma, and exponential and Weibull distributions unions; distribution of the sum and average of random samples; the Central Limit Theorem; confidence intervals for the mean and the variance; hypothesis testing and p-values, and applications for the mean; simple linear regression, and estimation of and inference about the parameters; and correlation and prediction in a regression model. Prerequisites:MA 116 or Calculus II (4-0-8)
(Lecture-Lab-Study Hours) Continues from MA 115 with improper integrals, infinite series, Taylor series, and Taylor polynomials. Vectors operations in 3-space, mathematical descriptions of lines and planes, and single-variable calculus for parametric curves. Introduction to calculus for functions of two or more variables including graphical representations, partial derivatives, the gradient vector, directional derivatives, applications to optimization, and double integrals in rectangular and polar coordinates. Close |
MA 124Calculus of Two Variables (4-0-8)
(Lecture-Lab-Study Hours) Partial derivatives, the tangent plane and linear approximation, the gradient and directional derivatives, the chain rule, implicit differentiation, extreme values, application to optimization, double integrals in rectangular coordinates. Close |
Close | 3 | 0 | 6 | 3 | HUM | Humanities 200 Level | 3 | 0 | 6 | 3 | PE 200 | Physical Education IV | 0 | 2 | 0 | 0 | | Total | 15 | 2 | 12 | 15 |
| Term V | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 503 | Discrete Mathematics for CryptographyTopics 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. Recommended for high-level undergraduate students. Prerequisites:MA 502 or Mathematical Foundations of Computer Science (3-0-0)
(Lecture-Lab-Study Hours) This course provides the necessary mathematical prerequisites for the computer science master’s program and also serves as a foundation for further study in mathematics. The topics covered include prepositional calculus: predicates and quantifiers; elementary number theory and methods of proof; mathematical induction; elementary set theory; combinatorics; functions and relations; countability; recursion and O-notation. Applications to computer science are stressed. Close |
CS 135Discrete Structures (3-2-8)
(Lecture-Lab-Study Hours) The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course. Close |
Close | 3 | 0 | 0 | 3 | CS 442 | Database Management SystemsIntroduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization. Prerequisites:CS 182 or Introduction to Computer Science Honors II (4-0-0)
(Lecture-Lab-Study Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms. Close |
CS 385Algorithms (4-0-8)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 6 | 3 | CS 443 | Database PracticumIn this course students use skills developed in earlier courses to work in teams with clients on the development of software to be used by the clients or by the organizations for which they work. Potential clients include Stevens faculty, Stevens departments that provide services to students, not-for-profit organizations, government agencies, and, on occasion, for-profit companies. Teams work with clients to iteratively develop GUI-based prototypes of software that will satisfy the clients’ needs (requirements engineering); they perform the analysis and design required before implementation begins, and, finally, they implement the software, and deploy it to the client’s site together with documentation required by the software’s users and maintainers. Prerequisites:CS 385, and Algorithms (4-0-8)
(Lecture-Lab-Study Hours) 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. Close |
CS 442Database Management Systems (3-0-6)
(Lecture-Lab-Study Hours) Introduction to the design and querying of relational databases. Topics include: relational schemas; keys and foreign key references; relational algebra (as an introduction to SQL); SQL in depth; Entity-Relationship (ER) database design; translating from ER models to relational schemas and from relational schemas to ER models; functional dependencies; and normalization.
Close |
Close | 3 | 0 | 6 | 3 | CS 576 | Secure SystemsAttacks 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 intrustion detection systems; and operating systems and application vulnerabilites, 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. Corequisites:CS 577Cybersecurity Laboratory (3-0-0)(Lecture-Lab-Study Hours) Cybersecurity Laboratory 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 securityoriented 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 vulnerabilites, exploits, and countermeasures. Close |
Prerequisites:CS 182 or Introduction to Computer Science Honors II (4-0-0)
(Lecture-Lab-Study Hours) Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms. Close |
CS 385 or Algorithms (4-0-8)
(Lecture-Lab-Study Hours) 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. Close |
CS 590, and Algorithms (3-0-0)
(Lecture-Lab-Study Hours) This is a course on more complex data structures, and algorithm design and analysis, using one or more modern imperative language(s), as chosen by the instructor. 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. Close |
CS 306Introduction to IT Security (3-1-0)
(Lecture-Lab-Study Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and nonrepudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close | 3 | 0 | 0 | 3 | CS 577 | Cybersecurity LaboratoryCybersecurity Laboratory 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 securityoriented 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 vulnerabilites, exploits, and countermeasures.Corequisites:CS 576Secure Systems (3-0-0)(Lecture-Lab-Study Hours)
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 intrustion detection systems; and operating systems and application vulnerabilites, 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. Close |
Prerequisites:CS 520 or Introduction to Operating Systems (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
CS 492, and Operating Systems (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
CS 579Foundations of Cryptography (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 0 | 3 | | Total | 15 | 0 | 12 | 15 |
| Term VI | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 488 | Computer ArchitectureAn 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. Corequisites:MA 222Probability and Statistics (3-0-6)(Lecture-Lab-Study Hours) Introduces the essentials of probability theory and elementary statistics. Lectures and assignments greatly stress the manifold applications of probability and statistics to computer science, production management, quality control, and reliability. A statistical computer package is used throughout the course for teaching and for assignments. Contents include: descriptive statistics, pictorial and tabular methods, and measures of location and of variability; sample space and events, probability axioms, and counting techniques; conditional probability and independence, and Bayes' formula; discrete random variables, distribution functions and moments, and binomial and Poisson distributions; continuous random variables, densities and moments, normal, gamma, and exponential and Weibull distributions unions; distribution of the sum and average of random samples; the Central Limit Theorem; confidence intervals for the mean and the variance; hypothesis testing and p-values, and applications for the mean; simple linear regression, and estimation of and inference about the parameters; and correlation and prediction in a regression model. Close |
Prerequisites:CS 383Computer Organization and Programming (3-0-0)
(Lecture-Lab-Study Hours) The main aspects of computers: data (data types and formats, number bases), hardware (stored program computer concept, addressing methods and program sequencing, instruction sets and their implementation, the CPU and microprogrammed control, input/output organization, peripherals and interfacing, and main memory), communication (network protocols), software (operating systems, dispatching algorithms), and assembly language programming. Close |
Close | 3 | 0 | 0 | 3 | CS 492 | Operating SystemsThe 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 383, Computer Organization and Programming (3-0-0)
(Lecture-Lab-Study Hours) The main aspects of computers: data (data types and formats, number bases), hardware (stored program computer concept, addressing methods and program sequencing, instruction sets and their implementation, the CPU and microprogrammed control, input/output organization, peripherals and interfacing, and main memory), communication (network protocols), software (operating systems, dispatching algorithms), and assembly language programming. Close |
CS 392Systems Programming (3-0-0)
(Lecture-Lab-Study Hours) 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 debugability, and language pitfalls. X programming and GUI design will be covered, if time allows. Close |
Close | 3 | 0 | 0 | 3 | CS 578 | Privacy in a Networked WorldIncreasing 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.Prerequisites:CS 579 or Foundations of Cryptography (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
CS 594 or Enterprise Security and Information Assurance (3-0-0)
(Lecture-Lab-Study Hours) 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 backup 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. The course includes a project and related lab experiments. Close |
CS 306Introduction to IT Security (3-1-0)
(Lecture-Lab-Study Hours) This course provides a basic introduction to the key concepts in security. It covers basic concepts such as authentication, confidentiality, integrity, and nonrepudiation as well as important techniques and applications. Topics include access control, security economics, ethics, privacy, software/operating system security, and security policies.
Close |
Close | 3 | 0 | 0 | 3 | CS 579 | Foundations of CryptographyThis 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 590 or Algorithms (3-0-0)
(Lecture-Lab-Study Hours) This is a course on more complex data structures, and algorithm design and analysis, using one or more modern imperative language(s), as chosen by the instructor. 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. Close |
CS 385, Algorithms (4-0-8)
(Lecture-Lab-Study Hours) 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. Close |
CS 503Discrete Mathematics for Cryptography (3-0-0)
(Lecture-Lab-Study Hours) 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. Recommended for high-level undergraduate students. Close |
Close | 3 | 0 | 0 | 3 | HUM | Humanities 300 Level | 3 | 0 | 6 | 3 | | Total | 15 | 0 | 6 | 15 |
| Term VII | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 425 | Cybersecurity Capstone IUnder the guidance of a cybersecurity faculty member of the department, students will participate in a year-long cybersecurity project. The project may be conducted in a number of ways, including as a cybersecurity-only project, as a project where the cybersecurity student is integrated into the senior capstone project of another discipline like CS, QF, ECE, or as a project where the cybersecurity student interacts in a consultant role with one or more senior capstone teams of another discipline. Prerequisites:CS 576, and Secure Systems (3-0-0)
(Lecture-Lab-Study Hours)
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 intrustion detection systems; and operating systems and application vulnerabilites, 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. Close |
CS 577Cybersecurity Laboratory (3-0-0)
(Lecture-Lab-Study Hours) Cybersecurity Laboratory 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 securityoriented 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 vulnerabilites, exploits, and countermeasures. Close |
Close | 3 | 0 | 0 | 3 | CS 595 | Information Security and the LawThis course examines every major aspect of the relationship between information security and the law, at a level suitable for information security specialists and senior managers who supervise information security operations. In the first phase, the course explores substantive legal principles relating to information security, with regard to both private and government interests. The second phase of the course explores information security operations as the repository of information that may be at issue in legal proceedings. Finally, the course concludes with a discussion of the balancing process required to promote information security in a system of ordered liberties, that is, with due respect for civil rights. Close | 3 | 0 | 0 | 3 | CS | Security Elective | 3 | 0 | 3 | 3 | CS | CS Elective | 3 | 0 | 3 | 3 | CS 511 | Concurrent ProgrammingThe 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. Prerequisites:CS 590 or Algorithms (3-0-0)
(Lecture-Lab-Study Hours) This is a course on more complex data structures, and algorithm design and analysis, using one or more modern imperative language(s), as chosen by the instructor. 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. Close |
CS 385Algorithms (4-0-8)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 6 | 3 | CS 485 | Societal Impact of Information TechnologiesStudents explore tradeoffs posed by modern information technologies such as the Internet, mining of personal data, web tracking, and surveillance systems. Also covered are major debates about how IT technologies should be harnessed to serve the greater good, such as: Internet governance, privacy vs. openness, and laws regarding intellectual property. Students will learn how actions undertaken in their daily lives as IT professionals may have broad consequences, both planned and unplanned. Students will learn how to identify and analyze these consequences and who may be affected by them. Student must be a senior computer science or cybersecurity major. Close | 1 | 0 | 0 | 1 | | Total | 16 | 0 | 12 | 16 |
| Term VIII | Course # | Course Name | Lecture | Lab | Study | Credit |
---|
CS 426 | Cybersecurity Capstone IIContinuation of CS425. Prerequisites:CS 425Cybersecurity Capstone I (3-0-0)
(Lecture-Lab-Study Hours) Under the guidance of a cybersecurity faculty member of the department, students will participate in a year-long cybersecurity project. The project may be conducted in a number of ways, including as a cybersecurity-only project, as a project where the cybersecurity student is integrated into the senior capstone project of another discipline like CS, QF, ECE, or as a project where the cybersecurity student interacts in a consultant role with one or more senior capstone teams of another discipline. Close |
Close | 3 | 0 | 0 | 3 | CS | Security Elective | 3 | 0 | 3 | 3 | | Free Elective | 3 | 0 | 6 | 3 | CS 521 | TCP/IP NetworkingIntroduction 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. Emphasis on network layer and above. Assignments focus on protocols and software. Prerequisites:CS 520 or Introduction to Operating Systems (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
CS 492Operating Systems (3-0-0)
(Lecture-Lab-Study Hours) 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. Close |
Close | 3 | 0 | 0 | 3 | | Humanities (1) | 3 | 0 | 6 | 3 | | Total | 15 | 0 | 15 | 15 |
| |