# Courses

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 W1004 and W1005.* Likewise students may receive credit for only one of the following three courses: *COMS W3134, W3136, or W3137.*

**COMS W1001x and y Introduction to Information Science** *3
pts.* 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.

**COMS W1002y Computing in Context** *4 pts.* 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 nonmajors. Students may only
receive credit for one of ENGI E1006 and COMS W1002.

**COMS W1004x and y Introduction to Computer Science and Programming in
Java** *3 pts.* 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*.

**COMS W1005x and y Introduction to Computer Science and Programming in
MATLAB** *3 pts.* 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*.

**ENGI E1006x and y Introduction to Computing for Engineers and Applied
Scientists** *3 pts.* 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.

**COMS W1007x Honors Introduction to Computer Science** *3
pts.* Prerequisites: AP Computer Science with a grade of 4 or 5 or
similar experience. 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.

**COMS W1404x and y Emerging Scholars Program Seminar** *1-1
pts. Pass/Fail only.* Prerequisites: the instructor's permission.
Corequisites: *COMS W1004*/*COMS W1007* or *ENGI E1006*. 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.

**ECBM E3060x Introduction to Genomic Information Science and
Technology** *3 pts. Lect: 3.* 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.

**COMS W3101x and y Programming Languages** *1 pt.* Prerequisites: fluency in at least one programming language. 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.

**COMS W3102x and y Development Technologies** *1-2 pts. Lab
Hours: 0 - 2**Not offered in 2016-2017.* Prerequisites: Fluency
in at least one programming language Introduction to software development
tools and environments. Each section devoted to a specific tool or
environment. One-point sections meet for two hours each week for half a
semester and two point sections include an additional two-hour lab.

**COMS W3134x and y Data Structures in Java** *3 pts.* Prerequisites: *COMS W1004* or knowledge of 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*.

**COMS W3136y Data Structures with C/C++** *4-4 pts.* Prerequisites: *COMS W1004*, *W1005*, *W1007*, or *ENGI E1006*. A second programming course intended for
nonmajors with at least one semester of introductory programming experience.
Basic elements of programming in C and C++, arraybased data structures,
heaps, linked lists, C programming in UNIX environment, object-oriented
programming in C++, trees, graphs, generic programming, hash tables. Due to
significant overlap, students may only receive credit for either COMS W3134, W3136, or W3137.

**COMS W3137y Honors Data Structures and Algorithms** *4
pts.* Prerequisites: *COMS W1004 or W1007*. Corequisites: *COMS W3203*. 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*.

**COMS W3157x and y Advanced Programming** *4 pts.* Prerequisites: two semesters of programming experience. 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. Lab Required.

**COMS W3203x and y Discrete Mathematics: Introduction to Combinatorics
and Graph Theory** *3 pts.* Prerequisites: any introductory
course in computer programming. 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).

**COMS W3210y Scientific Computation** *3 pts.* Prerequisites: two terms of calculus. 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.

**COMS W3251x Computational Linear Algebra** *3 pts.* Prerequisites: two terms of calculus. Computational linear algebra, solution
of linear systems, sparse linear systems, least squares, eigenvalue problems,
and numerical solution of other multivariate problems as time permits.

**COMS W3261x and y Computer Science Theory** *3 pts.* Prerequisites: *COMS W3203*. Corequisites: *COMS W3134*, *W3136*, or *W3137*. 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.

**COMS W3410y Computers and Society** *3 pts.* Broader
impact of computers. Social networks and privacy. Employment,intellectual
property, and the media. Science and engineering ethics. Suitable for
non-majors.

**CSEE W3827x and y Fundamentals of Computer Systems** *3
pts. Lect: 3.* Prerequisites: an introductory programming course.
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.

**COMS W3902x and y Undergraduate Thesis** *1-6 pts.* Prerequisites: agreement by a faculty member to serve as thesis adviser. 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.

**COMS W3995x or y Special Topics in Computer Science** *3
pts.* Prerequisites: the instructor's permission. 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.

**COMS W3998x and y Undergraduate Projects in Computer Science**
*1-3 pts.* Prerequisites: approval by a faculty member who agrees to
supervise the work. 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.

**ECBM E4060x Introduction to Genomic Information** *3 pts.
Lect: 3.* 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.

**COMS W4111x and y Introduction to Databases** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*, fluency in Java; or the instructor's
permission. 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.

**COMS W4112y Database System Implementation** *3 pts.* Prerequisites: *COMS W4111*; fluency in Java or C++. *CSEE W3827* is recommended. 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.

**COMS W4113x Fundamentals of Large-Scale Distributed Systems**
*3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*. *COMS W3157* or good working knowledge of C and C++.
*COMS W4118* or *CSEE W4119*. 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.

**COMS W4115x and y Programming Languages and Translators**
*3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*(or equivalent), *W3261*, and *CSEE W3827*, or the instructor's permission. 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.

**COMS W4117x or y Compilers and Interpreters** *3 pts.* Prerequisites: *COMS W4115* or the instructor's permission.
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.

**COMS W4118x and y Operating Systems I** *3 pts.* Prerequisites: *CSEE W3827* and knowledge of C and programming tools as
covered in *W3136*, *W3157*, or *W3101*, or the instructor's permission. 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.

**CSEE W4119x and y Computer Networks** *3 pts. Lect: 3.* Corequisites: *SIEO W3600* or *IEOR E3658*, or equivalent. 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.

**COMS W4121x Computer Systems for Data Science** *3
pts.* 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. 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.

**COMS W4130x Principles and Practice of Parallel Programming**
*3 pts.* Prerequisites: experience in Java, basic understanding of
analysis of algorithms. *COMS W3134*, *W3136*, or *W3137*(or equivalent). 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.

**CSEE W4140x or y Networking Laboratory** *3 pts. Lect:
3.* Prerequisites: CSEE 4119 or equivalent 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).

**COMS W4156x Advanced Software Engineering** *3 pts.* Prerequisites: substantial software development experience in Java, C++ or C#
beyond the level of *COMS W3157*. Corequisites: Recommended: *COMS W4111*. 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.

**COMS W4160y Computer Graphics** *3 pts.* Prerequisites:
*COMS W3134*, *W3136*, or *W3137*; *W4156* is recommended. Strong programming background
and some mathematical familiarity including linear algebra is required.
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.

**COMS W4162x or y Advanced Computer Graphics** *3 pts.* Prerequisites: *COMS W4160* or equivalent, or the instructor's
permission. 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.

**COMS W4167x or y Computer Animation** *3 pts.* Prerequisites: multivariable calculus, linear algebra, C++ programming
proficiency. *COMS W4156* recommended. 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.

**COMS W4170x User Interface Design** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*. 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.

**COMS W4172y 3D User Interfaces and Augmented Reality** *3
pts.* Prerequisites: *COMS W4160*, *COMS W4170*, or the instructor's permission. 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.

**COMS W4180x or y Network Security** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137* and *W4119*, or the instructor's permission. 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.

**COMS W4187x or y Security Architecture and Engineering** *3
pts.* Prerequisites: *COMS W4118*; *W4180* and/or *W4119* recommended. Secure programming. Cryptograhic
engineering and key handling. Access controls. Tradeoffs in security design.
Design for security.

**COMS W4203y Graph Theory** *3 pts.* Prerequisites:
*COMS W3203*. 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.

**CSOR W4231x Analysis of Algorithms I** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*, and *W3203*. 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.

**COMS W4236y Introduction to Computational Complexity** *3
pts.* Prerequisites: *COMS W3261*. 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.

**COMS W4241y Numerical Algorithms and Complexity** *3
pts.* Prerequisites: knowledge of a programming language. Some knowledge
of scientific computation is desirable. 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.

**CSOR W4246x Algorithms for Data Science** *3 pts.* Prerequisites: basic knowledge in programming (e.g., at the level of
*COMS W1007*), a basic grounding in calculus and linear
algebra. Methods for organizing data, e.g. hashing, trees, queues,
lists,priority queues. Streaming algorithms for computing statistics on the
data. Sorting and searching. Basic graph models and algorithms for searching,
shortest paths, and matching. Dynamic programming. Linear and convex
programming. Floating point arithmetic, stability of numerical algorithms,
Eigenvalues, singular values, PCA, gradient descent, stochastic gradient
descent, and block coordinate descent. Conjugate gradient, Newton and
quasi-Newton methods. Large scale applications from signal processing,
collaborative filtering, recommendations systems, etc.

**COMS W4252x or y Introduction to Computational Learning
Theory** *3 pts.* Prerequisites: *CSOR W4231* or *COMS W4236* or *COMS W3203* and the instructor's permission, or
*COMS W3261* and the instructor's permission.
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.

**COMS W4261x or y Introduction to Cryptography** *3
pts.* Prerequisites: comfort with basic discrete math and probability.
Recommended: *COMS W3261* or *CSOR W4231*. 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.

**COMS W4281x or y Introduction to Quantum Computing** *3
pts.* Prerequisites: knowledge of linear algebra. Prior knowledge of
quantum mechanics is not required, although it is helpful. 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.

**EECS E4340x Computer Hardware Design** *3 pts. Lect:
2.* Prerequisites: *ELEN E3331*, plus *ELEN E3910* or *CSEE W3827*. 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.

**COMS W4444x Programming and Problem Solving** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137* and *CSEE W3827*. 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.

**COMS W4460y Principles of Innovation and Entrepreneurship**
*3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*(or equivalent), or the instructor's permission.
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.

**COMS W4560x Introduction to Computer Applications in Health Care and
Biomedicine** *3 pts.* 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. 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.

**COMS W4701x or y Artificial Intelligence** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*. 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.

**COMS W4705x Natural Language Processing** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*; or the instructor's permission. 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.

**COMS W4706y Spoken Language Processing** *3 pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*; or the instructor's permission. 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.

**COMS W4731x or y Computer Vision** *3 pts.* 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. 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.

**COMS W4733x or y Computational Aspects of Robotics** *3
pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*. 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.

**COMS W4735x or y Visual Interfaces to Computers** *3
pts.* Prerequisites: *COMS W3134*, *W3136*, or *W3137*. 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 W4737x or y Biometrics** *3 pts.* Prerequisites: a
background at the sophomore level in computer science, engineering, or like
discipline. 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.

**CBMF W4761x or y Computational Genomics** *3 pts. Lect:
3.* Prerequisites: introductory probability and statistics and basic
programming skills. 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.

**COMS W4771y Machine Learning** *3 pts.* 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.
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.

**COMS W4772x Advanced Machine Learning** *3 pts.* Prerequisites: *COMS W4771* or the instructor's permission; knowledge
of linear algebra & introductory probability or statistics is required.
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.

**COMS W4776x Machine Learning for Data Science** *3 pts.
Lect.: 3* Prerequisites: SIEO W3600 or W4150 or equivalent. Introduction to machine learning,
emphasis on data science. Topics include least square methods, Gaussian
distributions, linear classification, linear regression, maximum likelihood,
exponential family distributions, Bayesian networks, Bayesian inference,
mixture models, the EM algorithm, graphical models, hidden Markov models,
support vector machines kernel methods. Emphasizes methods and problems
relevant to big data. Students may not receive credit for both COMS W4771 and W4776.

**CSEE W4823x or y Advanced Logic Design** *3 pts. Lect:
3.* Prerequisites: *CSEE W3827*, or a half semester introduction to digital
logic, or the equivalent. 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.

**CSEE W4824x Computer Architecture** *3 pts. Lect: 3.* Prerequisites: *CSEE W3827* or the equivalent. 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.

**CSEE W4840y Embedded Systems** *3 pts. Lect: 3.* Prerequisites: *CSEE W4823*. 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. Lab
Required.

**CSEE W4868x System-on-Chip Platforms** *3 pts.**Not
offered in 2016-2017.* Prerequisites: COMS W3157 and CSEE W3827 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, models of
computation, the SystemC language, transaction-level modeling, software
simulation and virtual platforms, hardware-software partitioning, high-level
synthesis, system programming and device drivers, on-chip communication,
memory organization, power management and optimization, integration of
programmable processor cores and specialized accelerators. Case studies of
modern SoC platforms for various classes of applications.

**COMS W4901x and y Projects in Computer Science** *1-3
pts.* Prerequisites: approval by a faculty member who agrees to supervise
the work. 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.

**COMS W4910x and y Curricular Practical Training** *1
pt.* Prerequisites: obtained internship and approval from faculty
advisor. 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.

**COMS W4995x or y Special Topics in Computer Science, I** *3
pts.* Prerequisites: the instructor's permission. 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.

**COMS E6111y Advanced Database Systems** *3 pts. Lect:
2.* Prerequisites: *COMS W4111* and knowledge of Java or the instructor's
permission. Continuation of *COMS W4111*, covers latest trends in both database
research and industry: information retrieval, web search, data mining, data
warehousing, OLAP, decision support, multimedia databases, and XML and
databases. Programming projects required.

**COMS E6113y Topics in Database Systems** *3 pts. Lect:
2.**Not offered in 2016-2017.* Prerequisites: *COMS W4111*. Concentration on some database paradigm,
such as deductive, heterogeneous, or object-oriented, and/or some database
issue, such as data modeling, distribution, query processing, semantics, or
transaction management. A substantial project is typically required. May be
repeated for credit with instructor's permission.

**COMS E6117x or y Topics in Programming Languages and
Translators** *3 pts. Lect: 2.* Prerequisites: *COMS W4115* or the instructor's permission.
Concentration on the design and implementation of programming languages, and
tools focused on advanced applications in new areas in software verification,
distributed systems, programming in the large, and web computing. A
substantial project is typically required. May be repeated for credit.

**COMS E6118y Operating systems, II** *3 pts. Lect: 2.**Not offered in 2016-2017.* Prerequisites: *COMS W4118*. Corequisites: *COMS W4119*. Continuation of *COMS W4118*, with emphasis on distributed operating
systems. Topics include interfaces to network protocols, distributed run-time
binding, advanced virtual memory issues, advanced means of interprocess
communication, file system design, design for extensibility, security in a
distributed environment. Investigation is deeper and more hands-on than in
*COMS W4118*. A programming project is required.

**COMS E6121x Reliable Software** *3 pts.**Not
offered in 2016-2017.* Prerequisites: at least one of *COMS W4118* Operating Systems I, *COMS W4115* Programming Languages and Translators, or
*COMS W4117* Compilers and Interpreters; or significant
software development experiences. Topics include: automated debugging,
automated software repair, Concurrent software reliability, software error
detection, and more.

**COMS E6123x or y Programming Environments and Software Tools
(PEST)** *3 pts. Lect: 2.* Prerequisites: *COMS W4156*, or equivalent. Software methodologies and
technologies concerned with development and operation of today's software
systems. Reliability, security, systems management and societal issues.
Emerging software architectures such as enterprise and grid computing. Term
paper and programming project. Seminar focus changes frequently to remain
timely.

**COMS E6125y Web-enhanced Information Management (WHIM)** *3
pts. Lect: 2.* Prerequisites: at least one *COMS W41xx* or
*COMS E61xx* course and/or *COMS W4444*, or the instructor's permission. Strongly
recommended: *COMS W4111*. History of hypertext, markup languages,
groupware and the Web. Evolving Web protocols, formats and computation
paradigms such as HTTP, XML and Web Services. Novel application domains
enabled by the Web and societal issues. Term paper and programming project.
Seminar focus changes frequently to remain timely.

**COMS E6156y Topics in Software Engineering** *3 pts.* Topics in Software engineering arranged as the need and availability arises.
Topics are usually offered on a one-time basis. Since the content of this
course changes, it may be repeated for credit with advisor approval. Consult
the department for section assignment.

**COMS E6160x or y Topics in Computer Graphics** *3 pts.
Lect: 2.* Prerequisites: *COMS W4160* or the instructor's permission. An advanced
graduate course, involving study of an advanced research topic in Computer
Graphics. Content varies between offerings, and the course may be repeated
for credit. Recent offerings have included appearance models in graphics,
and high quality real-time rendering.

**COMS E6174y Interaction Design: A Perceptual Approach** *3
pts. Lect: 3.* Prerequisites: *COMS W4170* or the instructor's permission. Design
methology for special-purpose user interfaces. Emphasis on how psychology and
perception inform good design. Interviewing and task modeling, participatory
design, and low-fidelilty prototyping. Applications of brain research,
graphic design and art to develop custom user interfaces components, screen
layouts, and interaction techniques for application-specific systems.

**COMS E6176x or y User Interfaces for Mobile and Wearable
Computing** *3 pts. Lect: 2.* Prerequisites: *COMS W4170* or the instructor's permission.
Introduction to research on user interfaces for mobile and wearable computing
through lectures, invited talks, student-led discussions of important papers,
and programming projects. Designing and authoring for mobility and
wearability. Ubiquitous/pervasive computing. Collaboration with other
users. Display, interaction, and communication technologies. Sensors for
tracking position, orientation, motion, environmental context, and personal
context. Applications and social consequences.

**CSEE E6180x or y Modeling and Performance** *3 pts. Lect:
2.* Prerequisites: *COMS W4118* and *SIEO W4150*. Introduction to queuing analysis and
simulation techniques. Evaluation of time-sharing and multiprocessor systems.
Topics include priority queuing, buffer storage, and disk access,
interference and bus contention problems, and modeling of program behaviors.

**COMS E6181x or y Advanced Internet Services** *3 pts. Lect:
2.* In-depth survey of protocols and algorithms needed to transport
multimedia information across the Internet, including audio and video
encoding, multicast, quality-of-service, voice-over-IP, streaming media and
peer-to-peer multimedia systems. Includes a semester-long programming
project.

**COMS E6183x or y Advanced Topics in Network Security** *3
pts. Lect: 3.* Prerequisites: *COMS W4180*, *CSEE 4119*, and *COMS W4261* recommended. Review the fundamental aspects
of security, including authentication, authorization, access control,
confidentiality, privacy, integrity, and availability. Review security
techniques and tools, and their applications in various problem areas. Study
the state of the art in research. A programming project is required.

**COMS E6184y Seminar on Anonymity and Privacy** *3 pts.
Lect: 3.**Not offered in 2016-2017.* Prerequisites: *COMS W4261* or *COMS W4180* or *CSEE W4119,* or the instructor's permission. This
course will cover the following topics: Legal and social framework for
privacy. Data mining and databases. Anonymous commerce and internet usage.
Traffic analysis. Policy and national security considerations. Classes are
seminars with students presenting papers and discussing them. Seminar focus
changes frequently to remain timely.

**COMS E6185x or y Intrusion and Anomaly Detection Systems**
*2 pts. Lect: 2.* Prerequisites: *COMS W4180* Network Security. Corequisites:
*COMS W4180* Network Security. The state of threats
against computers, and networked systems. An overview of computer security
solutions and why they fail. Provides a detailedtreatment for Network and
Host-based Intrusion Detection and Intrusion Prevention systems. Considerable
depth is provided on anomaly detection systems to detect new attacks. Covers
issues and problems in email (spam, and viruses) and insider attacks
(masquerading and impersonation).

**COMS E6204x or y Topics in Graph Theory** *3 pts. Lect:
2.* Prerequisites: *COMS W4203* or the instructor's permission. Content
varies from year to year. This course may be repeated for credit.
Concentration on some aspect of graph theory, such as topological graph
theory, algebraic graph theory, enumerative graph theory, graphical
optimization problems, or matroids.

**COMS E6206x or y Topics in Combinatorial Theory** *3 pts.
Lect: 2.* Prerequisites: *COMS W4203* or *COMS W4205*, or the instructor's permission.
Concentration on some aspect of combinatorial theory. Content varies form
year to year. This course may be repeated for credit.

**COMS E6232x or y Analysis of Algorithms, II** *3 pts. Lect:
2.* Prerequisites: *CSOR W4231*. Continuation of *CSOR W4231*.

**COMS E6253y Advanced Topics in Computational Learning Theory**
*3 pts. Lect: 3.**Not offered in 2016-2017.* Prerequisites:
*CSOR W4231* or equivalent, *COMS W4252* or *COMS W4236* helpful but not required. In-depth study of
inherent abilities and limitations of computationally efficient learning
algorithms. Algorithms for learning rich Boolean function classes in online,
Probably Approximately Correct, and exact learning models. Connections with
computational complexity theory emphasized. Substantial course project or
term paper required.

**COMS E6261x or y Advanced Cryptography** *3 pts. Lect:
3.* Prerequisites: *COMS W4261*. A study of advanced cryptographic research
topics such as: secure computation, zero knowledge, privacy, anonymity,
cryptographic protocols. Concentration on theoretical foundations, rigorous
approach, and provable security. Contents varies between offerings. May be
repeated for credit.

**COMS E6291x or y Theoretical Topics in Computer Science**
*3 pts. Lect: 3.* Prerequisites: the instructor's permission.
Concentration on some theoretical aspect of computer science. Content varies
from year to year. May be repeated for credit.

**COMS E6731y Humanoid Robots** *3 pts.* Prerequisites: A
Course in at least One of the following: AI, Robotics, Computer Graphics, or
Computer Vision Seminar on Humanoid Robots. Analysis of existing hardware and
software platforms. Programming of multi-degree-of-freedom robots.
Understanding sensor feedback in perceive-act-sense control paradigms.
Task-level planning and reasoning. Final project includes implementing a
humanoid robot task on either a simulated or physical robot.

**COMS E6732x or y Computational Imaging** *3 pts. Lect:
3.* Prerequisites: *COMS W4731* or the instructor's permission.
Computational imaging uses a combination of novel imaging optics and a
computational module to produce new forms of visual information. Survey of
the state of art in computational imaging. Review of recent papers on: omni
directional and panoramic imaging, catadioptric imaging, high dynamic range
imaging, mosaicing and superresolution. Classes are seminars with the
instructor, guest speakers, and students presenting papers and discussing
them.

**COMS E6733x or y 3 -D photography** *3 pts. Lect: 2.* Prerequisites: experience with at least one of the following topics: Computer
Graphics, Computer Vision, Pixel Processing, Robotics or Computer Aided
Design, or the instructor's permission. Programming proficiency in C, C++ or
JAVA. Programming proficiency in C, C++ or JAVA. 3D Photography - the process
of automatically creating 3D, texture-mapped models of objects in detail.
Applications include robotics, medicine, graphics, virtual reality,
entertainment and digital movies etc. Topics include 3D data acquisition
devices, 3D modeling systems and algorithms to acquire, create, augment,
manipulate, render, animate and physically build such models.

**COMS E6734y Computational Photography** *3 pts. Lect:
3.* Prerequisites: *COMS W4160*, *COMS W4731*, or a working knowledge of photography are
recommended. Students should have knowledge in any of three core areas:
computer vision, computer graphics, or photography. Computational techniques
are used to produce a new level of images and visual representations. Topics
include: HDR imaging, feature matching using RANSAC, image mosaics,
image-based rendering, motion magnification, camera lens arrays, programmable
lighting, face detection, single and multi-view geometry, and more.

**COMS E6735y Visual Databases** *3 pts. Lect: 3.**Not offered in 2016-2017.* Prerequisites: *COMS W3134* or *COMS W3137* required. *COMS W4731* and *COMS W4735* helpful but not required. Contact
instructor if uncertain. The analysis and retrieval of large collections of
image and video data, with emphasis on visual semantics, human psychology,
and user interfaces. Low-level processing: features and similarity measures;
shot detection; key frame selection; machine learning methods for
classification. Middle-level processing: organizational rules for videos,
including unedited (home, educational), semi-edited (sports, talk shows),
edited (news, drama); human memory limits; progressive refinement;
visualization techniques; incorporation of audio and text. High-level
processing: extraction of thematic structures; ontologies, semantic filters,
and learning; personalization of summaries and interfaces; detection of
pacing and emotions. Examples and demonstrations from commercial and research
systems throughout. Substantial course project or term paper required.

**COMS E6737x or y Biometrics** *3 pts. Lect: 3.* Prerequisites: a background at the sophomore level in computer science,
engineering, or like discipline. 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 W4737. 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.

**CSEE E6824y Parallel Computer Architecture** *3 pts. Lect:
2.* Prerequisites: *CSEE W4824*. Parallel computer principles, machine
organization and design of parallel systems including parallelism detection
methods, synchronization, data coherence and interconnection networks.
Performance analysis and special purpose parallel machines.

**CSEE E6831y Sequential Logic Circuits** *3 pts. Lect:
3.**Not offered in 2016-2017.* Prerequisites: *CSEE W3827* or any introduction to logic circuits
Generation and manipulation of flow table descriptions to asynchronous
sequential functions. Coding of flow tables to satisfy various design
criteria. Delays, races, hazards, metastability. Analysis of latches to
determine key parameters. Bounds of input rates. Clocking schemes for
synchronous systems. Synthesis of self-timed systems using 4-phase or 2-phase
handshakes.

**CSEE E6832x or y Topics in Logic Design Theory** *3 pts.
Lect: 3.* Prerequisites: *CSEE W3827* or any introduction to logic circuits. A
list of topics for each offering of the course is available in the department
office one month before registration. May be taken more than once if topics
are different Iterative logic circuits applied to pattern recognition. Finite
state machines; alternative representations, information loss, linear
circuits, structure theory. Reliability and testability of digital systems.

**CSEE E6847y Distributed Embedded Systems** *3 pts. Lect:
2.**Not offered in 2016-2017.* Prerequisites: Any COMS W411X,
CSEE W48XX or ELEN E43XX course, or the instructor's permission. An
inter-disciplinary graduate-level seminar on the design of distributed
embedded systems. System robustness in the presence of highly variable
communication delays and heterogeneous component behaviors. The study of the
enabling technologies (VLSI circuits, communication protocols, embedded
processors, RTOSs), models of computation, and design methods. The analysis
of modern domain-specific applications including on-chip micro-networks,
multiprocessor systems, fault-tolerant architectures, and robust deployment
of embedded software. Research challenges such as design complexity,
reliability, scalability, safety, and security. The course requires
substantial reading, class participation and a research project.

**CSEE E6861y Computer-Aided Design of Digital Systems** *3
pts. Lect: 2.* Prerequisites: (i) one semester of advanced digital logic
(*CSEE 4823* or equivalent, or the instructor's permission); and (ii)
a basic course in data structures and algorithms (*COMS W3134*, *W3136*, *W3137*, *W3157*, or equivalent, and familiarity with
programming. Introduction to modern digital CAD synthesis and optimization
techniques. Topics include: modern digital system design (high-level
synthesis, register-transfer level modeling, algorithmic state machines,
optimal scheduling algorithms, resource allocation and binding, retiming),
controller synthesis and optimization, exact and heuristic two-level logic
minimization, advanced multi-level logic optimization, optimal technology
mapping to library cells (for delay, power and area minimization), advanced
data structures (binary decision diagrams), SAT solvers and their
applications, static timing analysis, and introduction to testability.
Includes hands-on small design projects using and creating CAD tools.

**EECS E6870x or y Speech Recognition** *3 pts. Lect: 3.* Prerequisites: basic probability and statistics. Theory and practice of
contemporary automatic speech recognition. Gaussian mixture distributions,
hidden Markov models, pronunciation modeling, decision trees, finite-state
transducers, and language modeling. Selected advanced topics will be covered
in more depth.

**COMS E6900x and y Tutorial in Computer Science** *1-3
pts.* Prerequisites: the instructor's permission. A reading course in an
advanced topic for a small number of students, under faculty supervision.

**COMS E6901x Projects in Computer Science** *1-12 pts.* Prerequisites: the instructor's permission. Software or hardware projects in
computer science. Before registering, the student must submit a written
proposal to the instructor for review. The proposal should give a brief
outline of the project, estimated schedule of completion, and computer
resources needed. Oral and written reports are required. May be taken over
more than one semester, in which case the grade will be deferred until all 12
points have been completed. No more than 12 points of *COMS E6901* may be taken. Consult the department for
section assignment.

**COMS E6902x and y Thesis** *1-9 pts.* Available to MS
and CSE candidates. An independent investigation of an appropriate problem in
computer science carried out under the supervision of a faculty member. A
formal written report is essential and an oral presentation may also be
required. May be taken over more than one semester, in which case the grade
will be deferred until all 9 points have beem completed. No more than 9
points of *COMS E6902* may be taken. Consult the department for
section assignment.

**COMS E6915y Writing for Computer Scientists and Engineers**
*1-1 pts. 5 week course* Prerequisites: For M.S. and Ph.D candidates
in CS/CE. Topics to help CS/CE graduate students' communication skills.
Emphasis on writing, presenting clear, concise proposals, journal articles,
conference papers, theses, and technical presentations. May be repeated for
credit. Credit may not be used to satisfy degree requirements.

**COMS E6998x and y Topics in Computer Science** *3 pts.* Prerequisites: Instructor's permission. Selected topics in computer science.
Content varies from year to year. May be repeated for credit.

**COMS E6999x and y Topics in Computer Science, II** *3
pts.* Prerequisites: *COMS E6998*. Continuation of *COMS E6998*.

**COMS E9800x and y Directed Research in Computer Science**
*1-15 pts.* Prerequisites: submission of an outline of the proposed
research for approval by the faculty member who will supervise. The
department must approve the number of points. May be repeated for credit.
This course is only for Eng.Sc.D. candidates.

**COMS E9910x and y Graduate Research I** *1-6 pts.* Prerequisites: submission of an outline of the proposed research for approval
by the faculty member who will supervise. The department must approve the
number of credits. May be repeated for credit. This course is only for MS
candidates holding GRA or TA appointments. Note: It is NOT required that a
student take Graduate Research I prior to taking Graduate Research II.
Consult the department for section assignment.

**COMS E9911x and y Graduate research II** *1-15 pts.* Prerequisites: submission of an outline of the proposed research for approval
by the faculty member who will supervise. The department must approve the
number of points. May be repeated for credit. This course is only for MS/PhD
and PhD students. Note: It is NOT required that a student take Graduate
Research I prior to taking Graduate Research II. Consult the department for
section assignment.

## Of Related Interest

### Applied Physics and Applied Math

### Biomedical Engineering

E3060 Introduction to genomic information science and technology

E4060 Introduction to genomic information

W4761 Computational genomics

### Electrical Engineering

E3060 Introduction to genomic information science and technology

E4060 Introduction to genomic information science and technology

W4119 Computer networks

E4340 Computer hardware design

W4840 Embedded systems

E6870 Speech recognition