Printer-friendly version of the guidesheet
These suggested course tracks are based on undergraduate requirements from the class
entering in the 2013-14 academic year. These are only suggestions, refer to the University Bulletin for the official requirements for each major.
For archived requirements refer to the University Bulletin. Select desired year in the bottom left-hand corner under, "Bulletin Archive" and
then the area of study.
For more information on graduate-level requirements go here.
Please make note of Pre- or Co-requisites
Program with CS-110
Your schedule over four years may vary considerably from this sample but you must
observe course prerequisites. The flowchart for required courses in CS shows which
courses must precede others. Students are encouraged to vary this schedule depending
on their interests and the CS advisor will be happy to discuss alternatives.
Students with AP credit for Gened courses and a strong CS background may take CS 120
and CS 140 in the first semester. Students without prior programming experience should
take CS 110 in Fall and either CS 120 or CS 140 in the Spring. Please consult a CS
advisor before attempting CS 120 and CS 140 together.
For students with programming experience
Year 1
Fall - 17 Credits
-
CS 101 - Prof Skills Ethics & CS Trends
Introduction to and discussion of topics of interest to computer science majors:
social, ethical and professional issues; university, school and department resources;
current developments in computer science. Prerequisite: none. Offered in the Fall
semester. 1 credits
Levels: Undergraduate
-
CS 120 - Prog & Hardware Fundamentals
Introduction to the C programming language, including local and global variables,
basic control structures, function calls, pointers and the stack; use of command-line
C development environments and development tools such as gdb and make; assembly language
connection to higher-level C; building blocks of the Von Neumann machine (ALU, registers,
control unit, RAM, decoders, program counters) and the underlying basic logic elements;
simple non-pipelined processor architectures. Supervised laboratory work involves
programming in C and low-level languages, interfacing with hardware, and the design
and simulation of small circuits and simplified microprocessors. Prerequisite MATH
225 that may be taken concurrently. Prerequisite: CS 110, CS Majors may request a
waiver from the Undergraduate Director based on prior programming experience. Offered
every semester. 4 credits
Levels: Graduate, Undergraduate
-
MATH 224 - Differential Calculus
This is a 2-credit course in differential calculus covering limits, continuity,
and
differentiation. Prerequisites: MATH 223 with a grade of C- or better, or Placement
Exam. Offered each half semester. 2 credits.
Levels: Undergraduate
-
WRIT 111 - Inquiry and Academic Writing
WRIT 111 helps first-year students become stronger writers, speakers, and thinkers.
The course treats writing as a process, emphasizes revision, and gives students practice
in critical thinking and research writing, reinforcing the notion that writing conventions
differ according to their rhetorical situations. Formal writing assignments include
personal, civic, and academic genres. Prerequisites: first-year students only. Transfer
and ESL students by approval of Writing Initiative only. 4 credits. Offered fall and
spring semesters.
Levels: Undergraduate
Social Science/Humanities Elective - These courses should be selected to fulfill the
General Education Composition (C), Global Interdependencies (G), Pluralism (P), Aesthetics
(A), Humanities (H), Social Science (N) and Physical Activity/Wellness (Y, S or B)
requirements. Students who have not earned an 85 or higher in a NYS foreign language
Regents exam must complete one semester of a foreign language. One Free Elective must
be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness can
be counted as free elective credit.
Spring - 16 Credits
-
CS 140 - Prog with Obj & Data Struct
Assumes a foundation in procedural programming as covered in CS 100 or CS 110.
Provides the foundations of software development using Java. Problem solving using
object-oriented programming techniques is emphasized. Topics include primitive and
reference data types, variables, expressions, assignment, functions/methods, parameters,
selection, iteration, recursion, exception handling, generic linear data structures
and maps, file types, file I/O, simple GUIs, programming to an interface, use of inheritance,
javadoc documentation, and introduction to Java threads. Required laboratory provides
supervised problem solving, programming using the command line as well as Eclipse
or Netbeans development environments, code backup in a version control repository,
debugging and JUnit testing techniques. Prerequisite: CS 110,CS Majors may request
a waiver from the Undergraduate Director based on prior programming experience. Offered
every semester. Prerequisite math 225 (All prerequisites must have a grade of C- or
better).
Levels: Graduate, Undergraduate
-
MATH 226 - Integration Tech & Application
This is a 2-credit course covering the calculus of transcendental & inverse
functions, L’Hospital’s Rule, integral techniques, improper integrals,
calculus of parametric curves, and polar coordinates.
Prerequisites: Math 225 with a grade of at least a C- or consent of instructor. 2
credits.
Levels: Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign
language Regents exam must complete one semester of a foreign language. One Free Elective
must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
Science - Must have a science sequence and one other L course, see Bulletin for details.
Year 2
Fall - 16 Credits
-
CS 220 - Arch from a Prog Perspective
The architecture and programming of computer systems. Data representation and computer
arithmetic. Processor and memory organization. Assembly and machine language programming.
Advanced C programming language constructs and their implementation in assembly language.
Introduction to system software (assemblers, linkers, loaders, compilers). Supervised
laboratory work involves programming and debugging using machine language, assembly
language and C. Prerequisite: CS 120 and CS 140 (All prerequisites must have a grade
of C- or better). Offered every semester. 4 credits
Levels: Graduate, Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign language Regents exam must complete one semester of a foreign language. One
Free Elective must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
-
MATH 304 - Linear Algebra
Vector spaces, linear transformations, determinants, characteristic values, inner
products. Prerequisites: C- or better in MATH 225 or consent of instructor. Every
semester. 4 credits.
Levels: Graduate, Undergraduate
OR
-
MATH 371 - Ordinary Diff. Equations
Ordinary differential equations from quantitative and qualitative point of view
including existence and uniqueness theory, first and second order equations and higher
order equations, systems of first order equations, Laplace transforms, series
solutions methods. MATH 371 contains the topics of MATH 324 and includes additional
topics of the theory of existence and uniqueness, and systems of linear equations.
The topics are studied from a more advanced mathematical viewpoint than in MATH 324.
Only one of Math 324 and Math 371 can be counted towards math minor. Prerquisites:
C or better in both MATH 304 and MATH 330, or consent of instructor. Every semester.
4 credits.
Levels: Undergraduate
OR
-
MATH 381 - Graph Theory
Directed and undirected graphs, trees, connectivity, Eulerian and Hamiltonian graphs,
planar graphs, coloring of graphs, graph parameters, optimization and graph algorithms.
Prerequisites: C or better in both MATH 304 and either MATH 314 or MATH 330, or consent
of instructor. Spring only. 4 credits.
Levels: Undergraduate
Science - Must have a science sequence and one other L course, see Bulletin for details.
Spring - 16 Credits
-
CS 240 - Data Struct & Algorithms
Analysis of the design, implementation, and properties of basic and advanced data
structures, including lists, stacks, queues, hash tables, trees, heaps, and graphs.
Design and time-space analysis of basic and advanced algorithms, including searching,
sorting, insert/delete, hash table collision resolution techniques, recursive functions,
balanced tree maintenance, and graph algorithms. Weekly required laboratory programming
and three or more additional programming projects in C++. Practical programming techniques
including C++ templates and the Standard Template Library (STL), operator overloading,
C++ stream I/O, separate compilation using makefiles, debugging tools and techniques,
dynamic memory management. Prerequisites: CS 120 and CS 140, and either MATH 226 (may
be taken concurrently) OR MATH 230 (All prerequisites must have a grade of C- or better).
Offered every semester. 4 credits
Levels: Graduate, Undergraduate
-
CS 301 - Eth Soc & Global Issues Comput
Communications course with required writing and oral presentations. Understanding
the local and global implications of computing in society, including ethical, legal,
security and social issues. Developing professional skills related to computing, including
effective communication and productive teamwork. Fostering an appreciation for continuing
professional development. Should be taken at the same time as or before any junior-level
Computer Science courses. Prerequisites: Any General Education "C" course,
CS 101, and either CS 220 or CS 240. Offered every semester. 4 credits
Levels: Undergraduate
-
MATH 314 - Discrete Mathematics
Logic, sets, relations, functions, induction, recursion, counting methods, graphs,
trees. Some abstract algebra. Prerequisites: C- or better in MATH 225 or consent
of instructor. Every semester. 4 credits.
Levels: Undergraduate
Science - Must have a science sequence and one other L course, see Bulletin for details.
TOTAL 16 credits
Year 3
Fall - 16 Credits
-
CS 375 - Design & Analysis of Algorithm
Analysis of common algorithms for processing strings, trees, graphs and networks.
Comparison of sorting and searching algorithms. Algorithm design strategies: divide
and conquer, dynamic, greedy, back tracking, branch and bound. Introduction to NP-completeness.
Required activity includes student presentations. Prerequisites: CS 240, MATH 227
and MATH 314 or MATH 330, CS 301 (may be taken concurrently). (All prerequisites must
have a grade of C- or better). Offered every semester. 4 credits
Levels: Undergraduate
-
MATH 327 - Probability with Stat Methods
Development of probabilistic concepts in discrete and absolutely continuous cases.
Classical combinatorial methods, independence, random variables, distributions, moments,
transformations, conditioning, confidence intervals, estimation. Open to Watson School
students only. Does not serve as a prerequisite for MATH 448 or for any actuarial
science courses. Prerequisites: C- or better in MATH 227 or MATH 230, or consent of
instructor. Every semester. 4 credits.
Levels: Undergraduate
-
CS 320 - Advanced Computer Architecture
Performance metrics and analysis; instruction set architecture and its implications;
high-performance computer arithmetic; instruction pipelines and pipelined datapath
implementation; out-of-order execution, register renaming, branch prediction and superscalar
processors; caches and memory systems; memory hierarchy; the I/O subsystem; reliable
storage systems; introduction to multicore and multithreaded architectures; introduction
to GPUs and accelerators. Required lab includes programming projects. Prerequisite:
CS 220. Offered every semester. 4 credits
Levels: Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign
language Regents exam must complete one semester of a foreign language. One Free Elective
must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
Spring - 16 Credits
-
CS 350 - Operating Systems
Introduction to the design and implementation of operating systems: hardware/software
interface; processes and threads; CPU scheduling; virtual memory; memory management;
concurrency, race conditions, deadlocks, and synchronization; file and storage systems;
input/output; protection and security; virtualization and hypervisors; multi-processor
operating systems. Required lab includes programming exercises and presentations.
Prerequisites: CS 220 and CS 240 (All prerequisites must have a grade of C- or better).
Prerequisite (May be taken concurrently.): CS 301. Offered every semester. 4 credits.
Levels: Undergraduate
-
CS 373 - Automata Theory & Formal
Lg.
Theory and application of automata and the languages they recognize. Regular languages,
finite-state automata, regular expressions, context-free languages, normal forms,
pushdown automata, context-sensitive languages, linear bounded automata, Turing machines,
computability, transducers. Application of concepts. Required activity includes student
presentations. Prerequisites: CS 140 and either MATH 314 or MATH 330 (All prerequisites
must have a grade of C- or better). Offered every semester 4 credits
Levels: Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign
language Regents exam must complete one semester of a foreign language. One Free Elective
must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
Free Elective
Year 4
Fall - 16 Credits
-
CS 471 - Programming Languages
Introduction to the design and implementation of programming languages: linguistic
features for expressing algorithms; formal syntax specification; introduction to language
semantics and parsing; declarative programming (functional and goal-driven); scripting
languages; imperative programming (procedural and object-oriented); comparative design
and implementation issues across languages and paradigms. Assignments emphasize languages
such as Prolog, Haskell, Python, and Ruby. Required lab includes student presentations.
Prerequisites: CS 373 and 375 (All prerequisites must have a grade of C- or better).
Offered every semester. 4 credits
Levels: Undergraduate
Computer Science Elective
Computer Science Elective
Free Elective
Spring - 14 Credits
Computer Science Elective
Computer Science Elective
Free Elective
Free Elective (Physical Activity/Wellness)
Undergraduate Computer Science Program (with CS 110)
For students with limited programming experience
Your schedule over four years may vary considerably from this sample but you must
observe course prerequisites. The flowchart for required courses in CS shows which
courses must precede others. Students are encouraged to vary this schedule depending
on their interests and the CS advisor will be happy to discuss alternatives.
Students without prior programming experience should take CS 110 in Fall and either
CS 120 or CS 140 in the Spring—visit the CS advisor before attempting CS 120 and CS
140 together. (CS 110 counts as a free elective)
Year 1
Fall - 17 Credits
-
CS 101 - Prof Skills Ethics & CS Trends
Introduction to and discussion of topics of interest to computer science majors:
social, ethical and professional issues; university, school and department resources;
current developments in computer science. Prerequisite: none. Offered in the Fall
semester. 1 credits
Levels: Undergraduate
-
CS 110 - Pgming Concepts&Applic
An introductory course for students with little or no programming experience. Basic
control flow, data types, simple data structures and functions using a scripting language.
Developing code using an integrated environment. The basics of directories, files
and file types, including text files. Simple examples of the applications enabled
by a modern, platform-independent scripting language such as GUIs, event handling,
and database access. This course is open to all students who have not taken any other
CS courses (with the exception of CS 105) and under these conditions, can count as
free-elective credit for CS majors. Offered every semester. Prerequisite (May be
taken concurrently. ): Math 225. 4 credits
Levels: Undergraduate
-
MATH 224 - Differential Calculus
This is a 2-credit course in differential calculus covering limits, continuity,
and
differentiation. Prerequisites: MATH 223 with a grade of C- or better, or Placement
Exam. Offered each half semester. 2 credits.
Levels: Undergraduate
-
WRIT 111 - Inquiry and Academic Writing
WRIT 111 helps first-year students become stronger writers, speakers, and thinkers.
The course treats writing as a process, emphasizes revision, and gives students practice
in critical thinking and research writing, reinforcing the notion that writing conventions
differ according to their rhetorical situations. Formal writing assignments include
personal, civic, and academic genres. Prerequisites: first-year students only. Transfer
and ESL students by approval of Writing Initiative only. 4 credits. Offered fall and
spring semesters.
Levels: Undergraduate
Social Science/Humanities Elective - These courses should be selected to fulfill the
General Education Composition (C), Global Interdependencies (G), Pluralism (P), Aesthetics
(A), Humanities (H), Social Science (N) and Physical Activity/Wellness (Y, S or B)
requirements. Students who have not earned an 85 or higher in a NYS foreign language
Regents exam must complete one semester of a foreign language. One Free Elective must
be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness can
be counted as free elective credit.
Spring - 16 Credits
-
CS 120 - Prog & Hardware Fundamentals
Introduction to the C programming language, including local and global variables,
basic control structures, function calls, pointers and the stack; use of command-line
C development environments and development tools such as gdb and make; assembly language
connection to higher-level C; building blocks of the Von Neumann machine (ALU, registers,
control unit, RAM, decoders, program counters) and the underlying basic logic elements;
simple non-pipelined processor architectures. Supervised laboratory work involves
programming in C and low-level languages, interfacing with hardware, and the design
and simulation of small circuits and simplified microprocessors. Prerequisite MATH
225 that may be taken concurrently. Prerequisite: CS 110, CS Majors may request a
waiver from the Undergraduate Director based on prior programming experience. Offered
every semester. 4 credits
Levels: Graduate, Undergraduate
-
MATH 226 - Integration Tech & Application
This is a 2-credit course covering the calculus of transcendental & inverse
functions, L’Hospital’s Rule, integral techniques, improper integrals,
calculus of parametric curves, and polar coordinates.
Prerequisites: Math 225 with a grade of at least a C- or consent of instructor. 2
credits.
Levels: Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign
language Regents exam must complete one semester of a foreign language. One Free Elective
must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
Science - Must have a science sequence and one other L course, see Bulletin for details.
Year 2
Fall - 16 Credits
-
CS 140 - Prog with Obj & Data Struct
Assumes a foundation in procedural programming as covered in CS 100 or CS 110.
Provides the foundations of software development using Java. Problem solving using
object-oriented programming techniques is emphasized. Topics include primitive and
reference data types, variables, expressions, assignment, functions/methods, parameters,
selection, iteration, recursion, exception handling, generic linear data structures
and maps, file types, file I/O, simple GUIs, programming to an interface, use of inheritance,
javadoc documentation, and introduction to Java threads. Required laboratory provides
supervised problem solving, programming using the command line as well as Eclipse
or Netbeans development environments, code backup in a version control repository,
debugging and JUnit testing techniques. Prerequisite: CS 110,CS Majors may request
a waiver from the Undergraduate Director based on prior programming experience. Offered
every semester. Prerequisite math 225 (All prerequisites must have a grade of C- or
better).
Levels: Graduate, Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign
language Regents exam must complete one semester of a foreign language. One Free Elective
must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
-
MATH 304 - Linear Algebra
Vector spaces, linear transformations, determinants, characteristic values, inner
products. Prerequisites: C- or better in MATH 225 or consent of instructor. Every
semester. 4 credits.
Levels: Graduate, Undergraduate
OR
-
MATH 371 - Ordinary Diff. Equations
Ordinary differential equations from quantitative and qualitative point of view
including existence and uniqueness theory, first and second order equations and higher
order equations, systems of first order equations, Laplace transforms, series
solutions methods. MATH 371 contains the topics of MATH 324 and includes additional
topics of the theory of existence and uniqueness, and systems of linear equations.
The topics are studied from a more advanced mathematical viewpoint than in MATH 324.
Only one of Math 324 and Math 371 can be counted towards math minor. Prerquisites:
C or better in both MATH 304 and MATH 330, or consent of instructor. Every semester.
4 credits.
Levels: Undergraduate
OR
-
MATH 381 - Graph Theory
Directed and undirected graphs, trees, connectivity, Eulerian and Hamiltonian graphs,
planar graphs, coloring of graphs, graph parameters, optimization and graph algorithms.
Prerequisites: C or better in both MATH 304 and either MATH 314 or MATH 330, or consent
of instructor. Spring only. 4 credits.
Levels: Undergraduate
Science - Must have a science sequence and one other L course, see Bulletin for details.
Spring - 16 Credits
-
CS 240 - Data Struct & Algorithms
Analysis of the design, implementation, and properties of basic and advanced data
structures, including lists, stacks, queues, hash tables, trees, heaps, and graphs.
Design and time-space analysis of basic and advanced algorithms, including searching,
sorting, insert/delete, hash table collision resolution techniques, recursive functions,
balanced tree maintenance, and graph algorithms. Weekly required laboratory programming
and three or more additional programming projects in C++. Practical programming techniques
including C++ templates and the Standard Template Library (STL), operator overloading,
C++ stream I/O, separate compilation using makefiles, debugging tools and techniques,
dynamic memory management. Prerequisites: CS 120 and CS 140, and either MATH 226 (may
be taken concurrently) OR MATH 230 (All prerequisites must have a grade of C- or better).
Offered every semester. 4 credits
Levels: Graduate, Undergraduate
-
CS 301 - Eth Soc & Global Issues Comput
Communications course with required writing and oral presentations. Understanding
the local and global implications of computing in society, including ethical, legal,
security and social issues. Developing professional skills related to computing, including
effective communication and productive teamwork. Fostering an appreciation for continuing
professional development. Should be taken at the same time as or before any junior-level
Computer Science courses. Prerequisites: Any General Education "C" course,
CS 101, and either CS 220 or CS 240. Offered every semester. 4 credits
Levels: Undergraduate
-
MATH 314 - Discrete Mathematics
Logic, sets, relations, functions, induction, recursion, counting methods, graphs,
trees. Some abstract algebra. Prerequisites: C- or better in MATH 225 or consent
of instructor. Every semester. 4 credits.
Levels: Undergraduate
Science - Must have a science sequence and one other L course, see Bulletin for details.
Year 3
Fall - 16 Credits
-
CS 220 - Arch from a Prog Perspective
The architecture and programming of computer systems. Data representation and computer
arithmetic. Processor and memory organization. Assembly and machine language programming.
Advanced C programming language constructs and their implementation in assembly language.
Introduction to system software (assemblers, linkers, loaders, compilers). Supervised
laboratory work involves programming and debugging using machine language, assembly
language and C. Prerequisite: CS 120 and CS 140 (All prerequisites must have a grade
of C- or better). Offered every semester. 4 credits
Levels: Graduate, Undergraduate
-
CS 375 - Design & Analysis of Algorithm
Analysis of common algorithms for processing strings, trees, graphs and networks.
Comparison of sorting and searching algorithms. Algorithm design strategies: divide
and conquer, dynamic, greedy, back tracking, branch and bound. Introduction to NP-completeness.
Required activity includes student presentations. Prerequisites: CS 240, MATH 227
and MATH 314 or MATH 330, CS 301 (may be taken concurrently). (All prerequisites must
have a grade of C- or better). Offered every semester. 4 credits
Levels: Undergraduate
-
MATH 327 - Probability with Stat Methods
Development of probabilistic concepts in discrete and absolutely continuous cases.
Classical combinatorial methods, independence, random variables, distributions, moments,
transformations, conditioning, confidence intervals, estimation. Open to Watson School
students only. Does not serve as a prerequisite for MATH 448 or for any actuarial
science courses. Prerequisites: C- or better in MATH 227 or MATH 230, or consent of
instructor. Every semester. 4 credits.
Levels: Undergraduate
Social Science/Humanities Elective - These courses should be selected to fulfill the
General Education Composition (C), Global Interdependencies (G), Pluralism (P), Aesthetics
(A), Humanities (H), Social Science (N) and Physical Activity/Wellness (Y, S or B)
requirements. Students who have not earned an 85 or higher in a NYS foreign language
Regents exam must complete one semester of a foreign language. One Free Elective must
be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness can
be counted as free elective credit.
Spring - 14 Credits
-
CS 320 - Advanced Computer Architecture
Performance metrics and analysis; instruction set architecture and its implications;
high-performance computer arithmetic; instruction pipelines and pipelined datapath
implementation; out-of-order execution, register renaming, branch prediction and superscalar
processors; caches and memory systems; memory hierarchy; the I/O subsystem; reliable
storage systems; introduction to multicore and multithreaded architectures; introduction
to GPUs and accelerators. Required lab includes programming projects. Prerequisite:
CS 220. Offered every semester. 4 credits
Levels: Undergraduate
-
CS 350 - Operating Systems
Introduction to the design and implementation of operating systems: hardware/software
interface; processes and threads; CPU scheduling; virtual memory; memory management;
concurrency, race conditions, deadlocks, and synchronization; file and storage systems;
input/output; protection and security; virtualization and hypervisors; multi-processor
operating systems. Required lab includes programming exercises and presentations.
Prerequisites: CS 220 and CS 240 (All prerequisites must have a grade of C- or better).
Prerequisite (May be taken concurrently.): CS 301. Offered every semester. 4 credits.
Levels: Undergraduate
-
CS 373 - Automata Theory & Formal
Lg.
Theory and application of automata and the languages they recognize. Regular languages,
finite-state automata, regular expressions, context-free languages, normal forms,
pushdown automata, context-sensitive languages, linear bounded automata, Turing machines,
computability, transducers. Application of concepts. Required activity includes student
presentations. Prerequisites: CS 140 and either MATH 314 or MATH 330 (All prerequisites
must have a grade of C- or better). Offered every semester 4 credits
Levels: Undergraduate
Social Sciences/Humanities Elective - These courses should be selected to fulfill
the General Education Composition (C), Global Interdependencies (G), Pluralism (P),
Aesthetics (A), Humanities (H), Social Science (N) and Physical Activity/Wellness
(Y, S or B) requirements. Students who have not earned an 85 or higher in a NYS foreign
language Regents exam must complete one semester of a foreign language. One Free Elective
must be in Liberal Arts & Science. At most 2 credits of Physical Activity/Wellness
can be counted as free elective credit.
Year 4
Fall - 16 Credits
-
CS 471 - Programming Languages
Introduction to the design and implementation of programming languages: linguistic
features for expressing algorithms; formal syntax specification; introduction to language
semantics and parsing; declarative programming (functional and goal-driven); scripting
languages; imperative programming (procedural and object-oriented); comparative design
and implementation issues across languages and paradigms. Assignments emphasize languages
such as Prolog, Haskell, Python, and Ruby. Required lab includes student presentations.
Prerequisites: CS 373 and 375 (All prerequisites must have a grade of C- or better).
Offered every semester. 4 credits
Levels: Undergraduate
Computer Science Elective
Computer Science Elective
Free Elective
Spring - 14 Credits
Computer Science Elective
Computer Science Elective
Free Elective
Free Elective (Physical Activity/Wellness)