Go to m.barnard.edu for the Mobile Barnard web app or download it from the App Store or Google Play.

Go to m.barnard.edu for the Mobile Barnard web app or download it from the App Store or Google Play.

In the listing below, the designator COMS (Computer Science) is understood to precede all course numbers for which no designator is indicated.

NOTE: Students may receive credit for only one of the following two courses: *COMS W1003 and W 1004.* Likewise students may receive credit for only one of the following four courses: *COMS W3133, W3134, W3137, and W3139.*

**COMS W 1001x and y Introduction to Information Science**

Basic introduction to concepts and skills in Information Sciences:
human-computer interfaces, representing information digitally, organizing and
searching information on the World Wide Web, principles of algorithmic
problem solving, introduction to database concepts, and introduction to
programming in Python.

*BC: Fulfillment of General Education Requirement: Quantitative and
Deductive Reasoning (QUA)..*

*3 points*

**CSEN W 1002y Computing in Context**

Introduction to elementary computing concepts and Python programming with
domain specific applications. Shared CS concepts and python programming
lectures with track specific sections. Track themes will vary but may
include: computing for the social sciences, computing for economics and
finance, digital humanities, and more. Intended for non-majors. Students may
only receive credit for one of ENGI E1006 and COMS W1002. - A. Cannon, D. Tenen, M. Jones, K.
Sigman

*4 points*

**COMS W 1004x and y Introduction to Computer Science and Programming
in Java**

A general introduction to computer science for science and engineering
students interested in majoring in computer science or engineering. Covers
fundamental concepts of computer science, algorithmic problem-solving
capabilities, and introductory Java programming skills. Assumes no prior
programming background. Columbia University students may receive credit for
only one of the following two courses: *W1004* and *W1005*. - A. Cannon

*BC: Fulfillment of General Education Requirement: Quantitative and
Deductive Reasoning (QUA)..*

*3 points*

**COMS W 1005x and y Introduction to Computer Science and Programming
in MATLAB**

A general introduction to computer science concepts, algorithmic
problem-solving capabilities, and programming skills in MATLAB. Assumes no
prior programming background. Columbia University students may receive credit
for only one of the following two courses: *W1004* and *W1005*. - Paul Blaer

*BC: Fulfillment of General Education Requirement: Quantitative and
Deductive Reasoning (QUA)..*

*3 points*

**ENGI E 1006x and y Introduction to Computing for Engineers and
Applied Scientists**

An interdisciplinary course in computing intended for first year SEAS
students. Introduces computational thinking, algorithmic problem solving and
Python programming with applications in science and engineering. Assumes no
prior programming background. - Adam Cannon

*3 points*

**COMS W 1007x Honors Introduction to Computer Science**

An honors-level introduction to computer science, intended primarily for
students considering a major in computer science. Computer science as a
science of abstraction. Creating models for reasoning about and solving
problems. The basic elements of computers and computer programs. Implementing
abstractions using data structures and algorithms. Taught in Java. - John
Kender

*Prerequisites: AP Computer Science with a grade of 4 or 5 or similar
experience. BC: Fulfillment of General Education Requirement: Quantitative
and Deductive Reasoning (QUA)..*

*3 points*

**COMS W 1404x and y Emerging Scholars Program Seminar**

Peer-led weekly seminar intended for first and second year undergraduates
considering a major in Computer Science. Pass/fail only. May not be used
towards satisfying the major or SEAS credit requirements. - A. Cannon

*Corequisites: COMS W1004/COMS W1007 or ENGI E1006. Enrollment with instructor's permission
only.*

**ECBM E 3060x Introduction to Genomic Information Science and
Technology**

Introduction to the information system paradigm of molecular biology.
Representation, organization, structure, function and manipulation of the
biomolecular sequences of nucleic acids and proteins. The role of enzymes and
gene regulatory elements in natural biological functions as well as in
biotechnology and genetic engineering. Recombination and other macromolecular
processes viewed as mathematical operations with simulation and visualization
using simple computer programming. This course shares lectures with ECBM E4060, but the work requirements differ somewhat. - D.
Anastassiou

*BC: Fulfillment of General Education Requirement: Quantitative and
Deductive Reasoning (QUA)..*

*3 points Lect: 3.*

**COMS W 3101x and y Programming Languages**

Introduction to a programming language. Each section is devoted to a specific
language. Intended only for those who are already fluent in at least one
programming language. Sections may meet for one hour per week for the whole
term, for three hours per week for the first third of the term, or for two
hours per week for the first six weeks. May be repeated for credit if
different languages are involved.

*Prerequisites: fluency in at least one programming language. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

*1 point*

**COMS W 3134x and y Data Structures in Java**

Data types and structures: arrays, stacks, singly and doubly linked lists,
queues, trees, sets, and graphs. Programming techniques for processing such
structures: sorting and searching, hashing, garbage collection. Storage
management. Rudiments of the analysis of algorithms. Taught in Java. Note:
Due to significant overlap, students may receive credit for only one of the
following three courses: *COMS W3134*, *COMS W3136*, *COMS W3137*. - S. Hershkop

*Prerequisites: COMS W1004 or knowledge of Java. BC: Fulfillment of
General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**COMS W 3136y Data Structures with C/C++**

A second programming course intended for non-majors with at least one
semester of introductory programming experience. Basic elements of
programming in C and C++, array-based data structures, heaps, linked lists, C
programming in UNIX environment, object-oriented programming in C++, trees,
graphs, generic programming, and hash tables. - J. Lee

*Prerequisites: COMS W1004, W1005, W1007 or ENGI E1006.*

**COMS W 3137y Honors Data Structures and Algorithms**

An honors introduction to data types and structures: arrays, stacks, singly
and doubly linked lists, queues, trees, sets, and graphs. Programming
techniques for processing such structures: sorting and searching, hashing,
garbage collection. Storage management. Design and analysis of algorithms.
Taught in Java. Note: Due to significant overlap, students may receive credit
for only one of the following three courses: *COMS W3134*, *W3136*, or *W3137*. - Peter Allen

*Prerequisites: COMS W1007. Corequisites: COMS W3203. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 3157x and y Advanced Programming**

Practical, hands-on introduction to programming techniques and tools for
professional software construction, including learning how to write code to
given specifications as well as document the results. Provides introductory
overview of C and C++ in a UNIX environment, for students with Java
background. Also introduces scripting languages (perl) and basic web
programming. UNIX programming utilities are also covered.

*Prerequisites: two semesters of programming experience. Lab Required. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

*4 points*

**COMS W 3203x and y Discrete Mathematics: Introduction to
Combinatorics and Graph Theory**

Logic and formal proofs, sequences and summation, mathematical induction,
binomial coefficients, elements of finite probability, recurrence relations,
equivalence relations and partial orderings, and topics in graph theory
(including isomorphism, traversability, planarity, and colorings). - J.
Gross

*Prerequisites: any introductory course in computer programming. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

*3 points*

**COMS W 3210y Scientific Computation**

Introduction to computation on digital computers. Design and analysis of
numerical algorithms. Numerical solution of equations, integration,
recurrences, chaos, differential equations. Introduction to Monte Carlo
methods. Properties of floating point arithmetic. Applications to weather
prediction, computational finance, computational science, and computational
engineering. - J. Traub

*Prerequisites: two terms of calculus. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points*

**COMS W 3251x Computational Linear Algebra**

Computational linear algebra, solution of linear systems, sparse linear
systems, least squares, eigenvalue problems, and numerical solution of other
multivariate problems as time permits. - H. Wozniakowski

*Prerequisites: two terms of calculus. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points*

**COMS W 3261x and y Computer Science Theory**

Regular languages: deterministic and non-deterministic finite automata,
regular expressions. Context-free languages: context-free grammars, push-down
automata. Turing machines, the Chomsky hierarchy, and the Church-Turing
thesis. Introduction to Complexity Theory and NP-Completeness. - M.
Yannakakis

*Prerequisites: COMS W3203. Corequisites: COMS W3134, W3136, or W3137. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**CSEE W 3827x and y Fundamentals of Computer Systems**

Fundamentals of computer organization and digital logic. Boolean algebra,
Karnaugh maps, basic gates and components, flipflops and latches, counters
and state machines, basics of combinational and sequential digital design.
Assembly language, instruction sets, ALU's, single-cycle and multi-cycle
processor design, introduction to pipelined processors, caches, and virtual
memory.

*Prerequisites: An introductory programming course. BC: Fulfillment of
General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points Lect: 3.*

**COMS W 3902x and y Undergraduate Thesis**

An independent theoretical or experimental investigation by an undergraduate
major of an appropriate problem in computer science carried out under the
supervision of a faculty member. A formal written report is mandatory and an
oral presentation may also be required. May be taken over more than one term,
in which case the grade is deferred until all 6 points have been completed.
Consult the department for section assignment.

*Prerequisites: agreement by a faculty member to serve as thesis
adviser.*

*1-6 points.*

**COMS W 3995x or y Special Topics in Computer Science**

Consult the department for section assignment. Special topics arranged as the
need and availability arise. Topics are usually offered on a one-time basis.
Since the content of this course changes each time it is offered, it may be
repeated for credit.

*Prerequisites: the instructor's permission.*

*3 points*

**COMS W 3998x and y Undergraduate Projects in Computer
Science**

Independent project involving laboratory work, computer programming,
analytical investigation, or engineering design. May be repeated for credit,
but not for a total of more than 3 points of degree credit. Consult the
department for section assignment.

*Prerequisites: approval by a faculty member who agrees to supervise the
work.*

*1-3 points.*

**ECBM E 4060x Introduction to Genomic Information**

Introduction to the information system paradigm of molecular biology.
Representation, organization, structure, function, and manipulation of the
biomolecular sequences of nucleic acids and proteins. The role of enzymes and
gene regulatory elements in natural biological functions as well as in
biotechnology and genetic engineering. Recombination and other macromolecular
processes viewed as mathematical operations with simulation and visualization
using simple computer programming. This course shares lectures with ECBM E3060, but the work requirements differ somewhat. - D.
Anastassiou

*3 points Lect: 3.*

**COMS W 4111x and y Introduction to Databases**

The fundamentals of database design and application development using
databases: entity-relationship modeling, logical design of relational
databases, relational data definition and manipulation languages, SQL, XML,
query processing, physical database tuning, transaction processing, security.
Programming projects are required. - L. Gravano

*Prerequisites: COMS W3134, W3136, or W3137, fluency in Java; or the instructor's
permission. BC: Fulfillment of General Education Requirement: Quantitative
and Deductive Reasoning (QUA)..*

**COMS W 4112y Database System Implementation**

The principles and practice of building large-scale database management
systems. Storage methods and indexing, query processing and optimization,
materialized views, transaction processing and recovery, object-relational
databases, parallel and distributed databases, performance considerations.
Programming projects are required. - L. Gravano, K. Ross

*Prerequisites: COMS W4111; fluency in Java or C++. CSEE W3827 is recommended.*

**COMS W 4113x Fundamentals of Large-Scale Distributed
Systems**

Design and implementation of large-scale distributed and cloud systems.
Teaches abstractions, design and implementation techniques that enable the
building of fast, scalable, fault-tolerant distributed systems. Topics
include distributed communication models (e.g., sockets, remote procedure
calls, distributed shared memory), distributed synchronization (clock
synchronization, logical clocks, distributed mutex), distributed file
systems, replication, consistency models, fault tolerance, distributed
transactions, agreement and commitment, Paxos-based consensus, MapReduce
infrastructures, scalable distributed databases. Combines concepts and
algorithms with descriptions of real-world implementations at Google,
Facebook, Yahoo, Microsoft, LinkedIn, etc. - R. Geambasu

*Prerequisites: COMS W3134, W3136, or W3137. COMS W3157 or good working knowledge of C and C++.
COMS W4118 or CSEE W4119.*

*3 points*

**COMS W 4115x and y Programming Languages and
Translators**

Modern programming languages and compiler design. Imperative,
object-oriented, declarative, functional, and scripting languages. Language
syntax, control structures, data types, procedures and parameters, binding,
scope, run-time organization, and exception handling. Implementation of
language translation tools including compilers and interpreters. Lexical,
syntactic and semantic analysis; code generation; introduction to code
optimization. Teams implement a language and its compiler. - S. Edwards, A.
Aho

*Prerequisites: COMS W3134, W3136, or W3137(or equivalent), W3261, and CSEE W3827, or the instructor's permission. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**COMS W 4117x or y Compilers and Interpreters**

Continuation of *COMS W4115*, with broader and deeper investigation into
the design and implementation of contemporary language translators, be they
compilers or interpreters. Topics include: parsing, semantic analysis, code
generation and optimization, run-time environments, and compiler-compilers. A
programming project is required. - A. Aho

*Prerequisites: COMS W4115 or the instructor's permission. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**COMS W 4118x and y Operating Systems I**

Design and implementation of operating systems. Topics include process
management, process synchronization and interprocess communication, memory
management, virtual memory, interrupt handling, processor scheduling, device
management, I/O, and file systems. Case study of the UNIX operating system. A
programming project is required. - J. Nieh

*Prerequisites: CSEE W3827 and knowledge of C and programming tools as
covered in W3136, W3157, or W3101, or the instructor's permission. BC: Fulfillment
of General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**CSEE W 4119x and y Computer Networks**

Introduction to computer networks and the technical foundations of the
Internet, including applications, protocols, local area networks, algorithms
for routing and congestion control, security, elementary performance
evaluation. Several written and programming assignments required. - V.
Misra

*Corequisites: SIEO W3600 or IEOR E3658 or equivalent*

*3 points Lect: 3.*

**COMS W 4121x Computer Systems for Data Science**

An introduction to computer architecture and distributed systems with an
emphasis on warehouse scale computing systems. Topics will include
fundamental tradeoffs in computer systems, hardware and software techniques
for exploiting instruction-level parallelism, data-level parallelism and task
level parallelism, scheduling, caching, prefetching, network and memory
architecture, latency and throughput optimizations, specialization, and an
introduction to programming data center computers. Course open only to M.S.
students in Data Sciences with approval from faculty advisor(s). - S.
Sethumadhavan, A. Aho, R. Geambasu

*Prerequisites: Background in Computer System Organization and good
working knowledge of C/C++ Corequisites: CSOR 4246 (Algorithms for Data
Science), STATS W4105 (Probability), or equivalent as approved by
faculty advisor.*

*3 points*

**COMS W 4130x Principles and Practice of Parallel
Programming**

Principles of parallel software design. Topics include task and data
decomposition, load-balancing, reasoning about correctness, determinacy,
safety, and deadlock-freedom. Application of techniques through semester-long
design project implementing performant, parallel application in a modern
parallel programming language. - M. Kim

*Prerequisites: Experience in Java, basic understanding of analysis of
algorithms. COMS W3134, W3136, or W3137(or equivalent).*

**CSEE W 4140x or y Networking Laboratory**

In this course, students will learn how to put "principles into practice," in
a hands-on-networking lab course. The course will cover the technologies and
proctocols of the internet using equipment currently available to large
internet service providers such as CISCO routers and end-systems. A set of
laboratory experiments will provide hands-on experience with engineering
wide-area networks and will familiarize students with the Internet Protocol
(IP), Address Resolution Protocal (ARP), Internet Control Message Protocol
(ICMP), User Datagram Protocol (UDP) and Transmission Control Protocol (TCP),
the Domain Name System (DNS), routing protocols (RIP, OSPF, BGP), network
management protocols (SNMP, and application-level protocols (FTP, TELNET,
SMTP).

*Prerequisites: CSEE 4119 or equivalent*

*3 points Lect: 3.*

**COMS W 4156x Advanced Software Engineering**

Software lifecycle from the viewpoint of designing and implementing N-tier
applications (typically utilizing web browser, web server, application
server, database). Major emphasis on quality assurance (code inspection, unit
and integration testing, security and stress testing). Centers on a
student-designed team project that leverages component services (e.g.,
transactions, resource pooling, publish/subscribe) for an interactive
multi-user application such as a simple game. - G. Kaiser

*Prerequisites: Substantial software development experience in Java, C++
or C# beyond the level of COMS W3157. Corequisites: Recommended: COMS W4111. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4160y Computer Graphics**

Introduction to computer graphics. Topics include 3D viewing and projections,
geometric modeling using spline curves, graphics systems such as OpenGL,
lighting and shading, and global illumination. Significant implementation is
required: the final project involves writing an interactive 3D video game in
OpenGL. - C. Zheng

*Prerequisites: COMS W3134, W3136, or W3137; W4156 is recommended. Strong programming background
and some mathematical familiarity including linear algebra is required. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**COMS W 4162x or y Advanced Computer Graphics**

A second course in computer graphics covering more advanced topics including
image and signal processing, geometric modeling with meshes, advanced image
synthesis including ray tracing and global illumination, and other topics as
time permits. Emphasis will be placed both on implementation of systems and
important mathematical and geometric concepts such as Fourier analysis, mesh
algorithms and subdivision, and Monte Carlo sampling for rendering. Note:
Course will be taught every two years. - Ravi Ramamoorthi

*Prerequisites: COMS W4160 or equivalent, or the instructor's
permission. BC: Fulfillment of General Education Requirement: Quantitative
and Deductive Reasoning (QUA)..*

**COMS W 4167x or y Computer Animation**

Theory and practice of physics-based animation algorithms, including animated
clothing, hair, smoke, water, collisions, impact, and kitchen sinks. Topics
covered: Integration of ordinary differential equations, formulation of
physical models, treatment of discontinuities including collisions/contact,
animation control, constrained Lagrangian Mechanics, friction/dissipation,
continuum mechanics, finite elements, rigid bodies, thin shells,
discretization of Navier-Stokes equations. - E. Grinspun

*Prerequisites: Multivariable calculus, linear algebra, C++ programming
proficiency. COMS W4156 recommended. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**COMS W 4170x User Interface Design**

Introduction to the theory and practice of computer user interface design,
emphasizing the software design of graphical user interfaces. Topics include
basic interaction devices and techniques, human factors, interaction styles,
dialogue design, and software infrastructure. Design and programming projects
are required. - S. Feiner

*Prerequisites: COMS W3134, W3136, or W3137. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4172y 3D User Interfaces and Augmented Reality**

Design, development, and evaluation of 3D user interfaces. Interaction
techniques and metaphors, from desktop to immersive. Selection and
manipulation. Travel and navigation. Symbolic, menu, gestural, and multimodal
interaction. Dialogue design. 3D software support. 3D interaction devices and
displays. Virtual and augmented reality. Tangible user interfaces. Review of
relevant 3D math. - S. Feiner

*Prerequisites: COMS W4160, COMS W4170, or the instructor's permission. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**COMS W 4180x or y Network Security**

Introduction to network security concepts and mechanisms. Foundations of
network security and an in-depth review of commonly-used security mechanisms
and techniques, security threats and network-based attacks, applications of
cryptography, authentication, access control, intrusion detection and
response, security protocols (IPsec, SSL, Kerberos), denial of service,
viruses and worms, software vulnerabilities, web security, wireless security,
and privacy. - A. Keromytis

*Prerequisites: COMS W3134, W3136, or W3137 and W4119, or the instructor's permission. BC: Fulfillment
of General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**COMS W 4187x or y Security Architecture and
Engineering**

Secure programming. Cryptograhic engineering and key handling. Access
controls. Tradeoffs in security design. Design for security. - Steven
Bellovin

*Prerequisites: COMS W4118; W4180 and/or W4119 recommended. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**COMS W 4203y Graph Theory**

General introduction to graph theory. Isomorphism testing, algebraic
specification, symmetries, spanning trees, traversability, planarity,
drawings on higher-order surfaces, colorings, extremal graphs, random graphs,
graphical measurement, directed graphs, Burnside-Polya counting, voltage
graph theory. - J. Gross

*Prerequisites: COMS W3203. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4205x Combinatorial Theory**

Sequences and recursions, calculus of finite differences and sums, elementary
number theory, permutation group structures, binomial coefficients, Stilling
numbers, harmonic numbers, generating functions. - J. Gross

*Prerequisites: COMS W3203 and a course in calculus. BC: Fulfillment
of General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**CSOR W 4231x Analysis of Algorithms I**

Introduction to the design and analysis of efficient algorithms. Topics
include models of computation, efficient sorting and searching, algorithms
for algebraic problems, graph algorithms, dynamic programming, probabilistic
methods, approximation algorithms, and NP-completeness. - M. Yannakakis

*Prerequisites: COMS W3134, W3136, or W3137, and W3203. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4236y Introduction to Computational Complexity**

Develops a quantitative theory of the computational difficulty of problems in
terms of the resources (eg. time, space) needed to solve them. Classification
of problems into complexity classes, reductions, and completeness. Power and
limitations of different modes of computation such as nondeterminism,
randomization, interaction, and parallelism. - M. Yannakakis, R.
Servedio

*Prerequisites: COMS W3261. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4241y Numerical Algorithms and Complexity**

Modern theory and practice of computation on digital computers. Introduction
to concepts of computational complexity. Design and analysis of numerical
algorithms. Applications to computational finance, computational science, and
computational engineering. - J. Traub

*Prerequisites: knowledge of a programming language. Some knowledge of
scientific computation is desirable. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

*3 points*

**COMS W 4252x or y Introduction to Computational Learning
Theory**

Possibilities and limitations of performing learning by computational agents.
Topics include computational models of learning, polynomial time
learnability, learning from examples and learning from queries to oracles.
Computational and statistical limitations of learning. Applications to
Boolean functions, geometric functions, automata. - R. Servedio

*Prerequisites: CSOR W4231 or COMS W4236 or COMS W3203 and the instructor's permission, or
COMS W3261 and the instructor's permission. BC:
Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**COMS W 4261x or y Introduction to Cryptography**

An introduction to modern cryptography, focusing on the complexity-theoretic
foundations of secure computation and communication in adversarial
environments; a rigorous approach, based on precise definitions and provably
secure protocols. Topics include private and public key encryption schemes,
digital signatures, authentication, pseudorandom generators and functions,
one-way functions, trapdoor functions, number theory and computational
hardness, identification and zero knowledge protocols. - T. Malkin

*Prerequisites: Comfort with basic discrete math and probability.
Recommended: COMS W3261 or CSOR W4231. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4281x or y Introduction to Quantum Computing**

Introduction to quantum computing. Shor's factoring algorithm, Grover's
database search algorithm, the quantum summation algorithm. Relationship
between classical and quantum computing. Potential power of quantum
computers. - H. Wozniakowski

*Prerequisites: Knowledge of linear algebra. Prior knowledge of quantum
mechanics is not required, although it is helpful. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points*

**EECS E 4340x Computer Hardware Design**

Practical aspects of computer hardware design through the implementation,
simulation, and prototyping of a PDP-8 processor. High-level and assembly
languages, I/O, interrupts, datapath and control design, piplelining, busses,
memory architecture. Programmable logic and hardware prototyping with FPGAs.
Fundamentals of VHDL for register-transfer level design. Testing and
validation of hardware. Hands-on use of industry CAD tools for simulation and
synthesis. Lab required.

*Prerequisites: ELEN E3331 plus ELEN E3910 or CSEE W3827. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

*3 points Lect: 2.*

**COMS W 4444x Programming and Problem Solving**

Hands-on introduction to solving open-ended computational problems. Emphasis
on creativity, cooperation, and collaboration. Projects spanning a variety of
areas within computer science, typically requiring the development of
computer programs. Generalization of solutions to broader problems, and
specialization of complex problems to make them manageable. Team-oriented
projects, student presentations, and in-class participation required. - K.
Ross

*Prerequisites: COMS W3134, W3136, or W3137 and CSEE W3827. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4460y Principles of Innovation and
Entrepreneurship**

Team project centered course focused on principles of planning, creating, and
growing a technology venture. Topics include: indentifying and analyzing
opportunities created by technology paradigm shifts, designing innovative
products, protecting intellectual property, engineering innovative business
models. - Y. Yemini

*Prerequisites: COMS W3134, W3136, or W3137(or equivalent), or the instructor's
permission.*

**COMS W 4560x Introduction to Computer Applications in Health Care and
Biomedicine**

An overview of the field of biomedical informatics, combining perspectives
from medicine, computer science and social science. Use of computers and
information in health care and the biomedical sciences, covering specific
applications and general methods, current issues, capabilities and
limitations of biomedical informatics. Biomedical Informatics studies the
organization of medical information, the effective management of information
using computer technology, and the impact of such technology on medical
research, education, and patient care. The field explores techniques for
assessing current information practices, determining the information needs of
health care providers and patients, developing interventions using computer
technology, and evaluating the impact of those interventions. - M.
Chiang

*Prerequisites: Experience with computers and a passing familiarity with
medicine and biology. Undergraduates in their senior or junior years may take
this course only if they have adequate background in mathematics and receive
the instructor's permission. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

*3 points*

**COMS W 4701x or y Artificial Intelligence**

Provides a broad understanding of the basic techniques for building
intelligent computer systems. Topics include state-space problem
representations, problem reduction and and-or graphs, game playing and
heuristic search, predicate calculus, and resolution theorem proving, AI
systems and languages for knowledge representation, machine learning and
concept formation and other topics such as natural language processing may be
included as time permits. - K. McKeown, S. Stolfo

*Prerequisites: COMS W3134, W3136, or W3137. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4705x Natural Language Processing**

Computational approaches to natural language generation and understanding.
Recommended preparation: some previous or concurrent exposure to AI or
Machine Learning. Topics include information extraction, summarization,
machine translation, dialogue systems, and emotional speech. Particular
attention is given to robust techniques that can handle understanding and
generation for the large amounts of text on the Web or in other large
corpora. Programming exercises in several of these areas. - J.
Hirschberg

*Prerequisites: COMS W3134, W3136, or W3137; or the instructor's permission. BC: Fulfillment
of General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**COMS W 4706y Spoken Language Processing**

Computational approaches to speech generation and understanding. Topics
include speech recognition and understanding, speech analysis for
computational linguistics research, and speech synthesis. Speech applications
including dialogue systems, data mining, summarization, and translation.
Exercises involve data analysis and building a small text-to-speech system. -
J. Hirschberg

*Prerequisites: COMS W3134, W3136, or W3137; or the instructor's permission. BC: Fulfillment
of General Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

**COMS W 4725x or y Knowledge Representation and
Reasoning**

General aspects of knowledge representation (KR). The two fundamental
paradigms (semantic networks and frames) and illustrative systems. Topics
include hybrid systems, time, action/plans, defaults, abduction, and
case-based reasoning. Throughout the course particular attention will be paid
to design tradeoffs between language expressiveness and reasoning complexity,
and issues relating to the use of KR systems in larger applications.

*Prerequisites: COMS W4701. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4731x or y Computer Vision**

Introductory course in computer vision. Topics include image formation and
optics, image sensing, binary images, image processing and filtering, edge
extraction and boundary detection, region growing and segmentation, pattern
classification methods, brightness and reflectance, shape from shading and
photometric stereo, texture, binocular stereo, optical flow and motion, 2-D
and 3-D object representation, object recognition, vision systems and
applications. - S. Nayar

*Prerequisites: The fundamentals of calculus, linear algebra, and C
programming. Students without any of these prerequisites are advised to
contact the instructor prior to taking the course. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points*

**COMS W 4733x or y Computational Aspects of Robotics**

Introduction to robotics from a computer science perspective. Topics include
coordinate frames and kinematics, computer architectures for robotics,
integration and use of sensors, world modeling systems, design and use of
robotic programming languages, and applications of artificial intelligence
for planning, assembly, and manipulation. - P. Allen

*Prerequisites: COMS W3134, W3136, or W3137. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

**COMS W 4735x or y Visual Interfaces to Computers**

Visual input as data and for control of computer systems. Survey and analysis
of architecture, algorithms, and underlying assumptions of commercial and
research systems that recognize and interpret human gestures, analyze imagery
such as fingerprint or iris patterns, generate natural language descriptions
of medical or map imagery. Explores foundations in human psychophysics,
cognitive science, and artificial intelligence.

*COMS W3134*, *W3136*, or *W3137*. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..

*3 points*

**COMS W 4737x or y Biometrics**

In this course. we will explore the latest advances in biometrics as well as
the machine learning techniques behind them. Students will learn how these
technologies work and how they are sometimes defeated. Grading will be based
on homework assignments and a final project. There will be no midterm or
final exam. This course shares lectures with *COMS E6737*. Students taking *COMS E6737* are required to complete additional
homework problems and undertake a more rigorous final project. Students will
only be allowed to earn credit for *COMS W4737* or *COMS E6737* and not both. - P. Belhumeur

*Prerequisites: a background at the sophomore level in computer science,
engineering, or like discipline. BC: Fulfillment of General Education
Requirement: Quantitative and Deductive Reasoning (QUA)..*

*3 points*

**CBMF W 4761x or y Computational Genomics**

Provides comprehensive introduction to computational techniques for analyzing
genomic data including DNA, RNA and protein structures; microarrays;
transcription and regulation; regulatory, metabolic and protein interaction
networks. The course covers sequence analysis algorithms, dynamic
programming, hidden Markov models, phylogenetic analysis, Bayesian network
techniques, neural networks, clustering algorithms, support vector machines,
Boolean models of regulatory networks, flux based analysis of metabolic
networks and scale-free network models. The course provides self-contained
introduction to relevant biological mechanisms and methods.

*Prerequisites: Introductory probability and statistics and basic
programming skills. BC: Fulfillment of General Education Requirement:
Quantitative and Deductive Reasoning (QUA)..*

*3 points Lect: 3.*

**COMS W 4771y Machine Learning**

Topics from generative and discriminative machine learning including least
squares methods, support vector machines, kernel methods, neural networks,
Gaussian distributions, linear classification, linear regression, maximum
likelihood, exponential family distributions, Bayesian networks, Bayesian
inference, mixture models, the EM algorithm, graphical models and hidden
Markov models. Algorithms implemented in Matlab. - T. Jebara

*Prerequisites: Any introductory course in linear algebra and any
introductory course in statistics are both required. Highly recommended:
COMS W4701 or knowledge of Artificial Intelligence.
BC: Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**COMS W 4772x Advanced Machine Learning**

An exploration of advanced machine learning tools for perception and behavior
learning. How can machines perceive, learn from, and classify human activity
computationally? Topics include Appearance-Based Models, Principal and
Independent Components Analysis, Dimensionality Reduction, Kernel Methods,
Manifold Learning, Latent Models, Regression, Classification, Bayesian
Methods, Maximum Entropy Methods, Real-Time Tracking, Extended Kalman
Filters, Time Series Prediction, Hidden Markov Models, Factorial HMMS,
Input-Output HMMs, Markov Random Fields, Variational Methods, Dynamic
Bayesian Networks, and Gaussian/Dirichlet Processes. Links to cognitive
science. - T. Jebara

*Prerequisites: COMS W4771 or the instructor's permission; knowledge
of linear algebra & introductory probability or statistics is required.
BC: Fulfillment of General Education Requirement: Quantitative and Deductive
Reasoning (QUA)..*

**CSEE W 4823x or y Advanced Logic Design**

An introduction to modern digital system design. Advanced topics in digital
logic: controller synthesis (Mealy and Moore machines); adders and
multipliers; structured logic blocks (PLDs, PALs, ROMs); iterative circuits.
Modern design methodology: register transfer level modelling (RTL);
algorithmic state machines (ASMs); introduction to hardware description
languages (VHDL or Verilog); system-level modelling and simulation; design
examples. - S. Nowick

*Prerequisites: CSEE 3827, or a half semester introduction to digital
logic, or the equivalent. BC: Fulfillment of General Education Requirement:
Quantitative and Deductive Reasoning (QUA)..*

*3 points Lect: 3.*

**CSEE W 4824x Computer Architecture**

Focuses on advanced topics in computer architecture, illustrated by case
studies from classic and modern processors. Fundamentals of quantitative
analysis. Pipelining. Memory hierarchy design. Instruction-level and
thread-level parallelism. Data-level parallelism and graphics processing
units. Multiprocessors. Cache coherence. Interconnection networks. Multi-core
processors and systems-on-chip. Platform architectures for embedded, mobile,
and cloud computing. - L. Carloni

*Prerequisites: CSEE W3827 or the equivalent. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points Lect: 3.*

**CSEE W 4840y Embedded Systems**

Embedded system design and implementation combining hardware and software.
I/O, interfacing, and peripherals. Weekly laboratory sessions and term
project on design of a microprocessor-based embedded system including at
least one custom peripheral. Knowledge of C programming and digital logic
required. - S. Edwards

*Prerequisites: CSEE W4823. Lab Required. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points Lect: 3.*

**COMS W 4901x and y Projects in Computer Science**

A second-level independent project involving laboratory work, computer
programming, analytical investigation, or engineering design. May be repeated
for credit, but not for a total of more than 3 points of degree credit.
Consult the department for section assignment. - The Staff

*Prerequisites: approval by a faculty member who agrees to supervise the
work. BC: Fulfillment of General Education Requirement: Quantitative and
Deductive Reasoning (QUA)..*

*1-3 points.*

**COMS W 4910x and y Curricular Practical Training**

Only for M.S. students in the Computer Science department who need relevant
work experience as part of their program of study. Final report required.
This course may not be taken for pass/fail credit or audited.

*Prerequisites: obtained internship and approval from faculty
advisor.*

*1 point*

**COMS W 4995x or y Special Topics in Computer Science,
I**

Special topics arranged as the need and availability arises. Topics are
usually offered on a one-time basis. Since the content of this course changes
each time it is offered, it may be repeated for credit. Consult the
department for section assignment.

*Prerequisites: the instructor's permission. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points*

**COMS W 4996x or y Special Topics in Computer Science,
II**

A continuation of *COMS W4995* when the special topic extends over two
terms.

*Prerequisites: the instructor's permission. BC: Fulfillment of General
Education Requirement: Quantitative and Deductive Reasoning
(QUA)..*

*3 points*

**COMS E 6121x Reliable Software**

Topics include: automated debugging, automated software repair, Concurrent software reliability, software error detection, and more.

- J. Yang
**CSEE E 6868x or y System-on-Chip Platforms**

**Design and programming of System-on-Chip (SoC) platforms.
Topics include: overview of technology and economic trends, methodologies and
supporting CAD tools for system-level design and verification, software
simulation and virtual platforms, models of computation, the SystemC
language, transaction-level modeling, hardware-software partitioning,
high-level synthesis, memory organization, device drivers, on-chip
communication architectures, power management and optimization, integration
of programmable cores and specialized accelerators. Case studies of modern
SoC platforms for various classes of applications.** - L.
Carloni

*Prerequisites: COMS W3157 and CSEE W3827*

*3 points*