Computer Science - Office of the University Registrar

advertisement
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 1
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
This is a proof for the 2012-2013 Bulletin of Undergraduate Instruction. This file should be in track-change mode (if it isn’t,
please type [Ctrl]+[Shift]+e). Please do not change the title of this file, or turn off the track-change setting.
The only changes permissible on this proof are to:

Change faculty listings (in both the beginning of this proof, and in course listings)

Indicating courses that have been processed by the University Registrar's office that are missing from the proof

Correct misspellings

Indicating curriculum changes that have been officially approved by the Arts and Sciences Curriculum Committee
through Dean Walther's office that are missing from the proof;
Also, PLEASE IGNORE WHAT MAY LOOK LIKE INCORRECT OR AWKWARD FORMATTING (e.g., font sizes and
styles, indents, spacing between paragraphs or words). Formatting irregularities are a function of the translation of the document
from publishing software into Word format. All formatting will be finalized and proofed before publication. This proof is
supplied to revise only content, not formatting or layout. For questions, contact sarah.kibler@duke.edu.
Computer Science (COMPSCI)
Professor Tomasi, Chair; Associate Professor of the Practice Lucic, Associate Chair; Professor of the Practice
Astrachan, Director of Undergraduate Studies; Associate Professor J. Yang, Director of Graduate Studies;
Professors Agarwal, Calderbank, Chase, Conitzer, Donald, Edelsbrunner, Harer, Henriquez, Lebeck, Lenoir, Maggs,
Reif, Rose, Sun, Tomasi, and Trivedi; Associate Professors Board, Dwyer, Ferrari, Hartemink, Kedem, Kim,
Mukherjee, Munagala, Ohler, Parr, Roy Choudhury, Schmidler, Sorin, J. Yang and X. Yang; Assistant Professors
Babu, Conitzer, Cox, Gordan, Lee, and Maggioni; Professors Emeriti Biermann, Ellis, Gallie, Loveland, Patrick,
Ramm, Starmer and Wagner; Professors of the Practice Astrachan and Rodger; Associate Professors of the Practice
Forbes and Lucic; Adjunct Professors Arge, Baldine, Fowler, LaBean, Lombardi, Pitsianis and Pormann; Research
Scientists Brady and Schultes; Lecturer Duvall
A major or a minor is available in this department.
The Department of Computer Science provides courses on the concepts of computing and computers, their
capabilities, and uses. In most courses students make extensive use of the available computing facilities. Students
who wish to take a single introductory course, as part of their general education, usually elect either Computer
Science 94 or 101.
88S. Introduction to Problem Solving. QS Techniques for solving computational problems in groups and
individually. Topics vary every semester the course is offered. Course may be repeated once. Consent of instructor
required. Co-requisite: Enrollment in Computer Science 94 or Computer Science 101. Instructor: Rodger. Half
course.
89S. First-Year Seminar. Topics vary each semester offered. Instructor: Staff. One course. C-L: Information
Science and Information Studies
91. Principles of Computer Science. QS, STS An overview for students not intending to major in computer
science. Computer programming, algorithms, symbolic and numeric computation, computer systems, basic
theoretical foundations, and the effects of computer and information technology on society. Not open to students
having credit for Computer Science 101 or higher. Instructors: Forbes. One course. C-L: Information Science and
Information Studies
92. Technical and Social Analysis of Information and the Internet. EI, QS, STS The development of technical
and social standards governing the Internet and Information Technology in General. The role of software as it relates
to law, patents, intellectual property, and IETF (Internet Engineering Task Force) standards. Analysis of issues from
a technical perspective with an emphasis on the role of software and the relationship of standards to social and
ethical issues. Not open to students who have taken Computer Science 82S or 342S. Instructor: Astrachan, Forbes.
One course. C-L: Information Science and Information Studies 202
94. Programming and Problem Solving. QS Programming and problem solving in a specific domain such as
robotics, virtual worlds, web programming, biology, genomics, or computer science. Students learn the basics of
programming by studying problems in one application area. Instructor: Astrachan, Duvall, Forbes, or Rodger. One
course. C-L: Information Science and Information Studies
101. Program Design and Analysis I. QS Introduction to the practices and principles of computer science and
programming and their impact on and potential to change the world. Algorithmic, problem-solving, and
programming techniques in domains such as art, data visualization, mathematics, natural and social sciences.
Programming using high-level languages and design techniques emphasizing abstraction, encapsulation, and
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 2
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
problem decomposition. Design, implementation, testing, and analysis of algorithms and programs. No previous
programming experience required. Instructor: Astrachan or staff. One course. C-L: Information Science and
Information Studies
101L. Introduction to Computer Science. QS Introduction practices and principles of computer science and
programming and their impact on and potential to change the world. Algorithmic, problem-solving, and
programming techniques in domains such as art, data visualization, mathematics, natural and social sciences.
Programming using high-level languages and design techniques emphasizing abstraction, encapsulation, and
problem decomposition. Design, implementation, testing, and analysis of algorithms and programs. No previous
programming experience required. Instructor: Astrachan, Duvall, Forbes, or Rodger. One course.
102S. Constructing Immersive Virtual Worlds. QS One course. C-L: see Information Science and Information
Studies 270S; also C-L: Visual and Media Studies 287S
104FS. Introduction to Computational Genomics and Computer Science. QS, STS The role of computation in
prior and current biological research, both in large-scale genomics projects such as the human genome project and in
basic biology and medical research. Introduction to programming possibly including scripting, CGI programming,
dynamic programming, web protocols. Introduction to specific algorithms, tools, and resources for biological
research including genome sequence alignment and database design and mining. Technical and social implications
of genomics and genome studies made possible by advances in algorithms, computational methods, and
computational models. For Focus Program students only. One course. C-L: Genome Sciences and Policy
107. Artificial Life, Culture, and Evolution. QS, SS, STS One course. C-L: see Information Science and
Information Studies 170; also C-L: Visual and Media Studies 172
109FS. Minds and Computers: Foundations of Artificial Intelligence. QS, R The project of Artificial
Intelligence (AI) and the idea of understanding the mind/brain as a computing machine. Elementary ideas both in
computational theory and in programming (for example, LISP). Examination of neural network models built to
understand the workings of the brain, and major AI projects in knowledge representation, game playing and
autonomous robotics, issues in the philosophical foundations of AI, such as the idea of Turing Test, and evaluation
of debates between AI researchers and their critics. Open only to students in the Focus Program. Instructor: Staff.
One course. C-L: Information Science and Information Studies
148. Logic and Its Applications. QS One course. C-L: see Mathematics 488; also C-L: Philosophy 350
149S. Computer Science Education Research Seminar. EI, QS, STS Project-based robotics course linked with
community service. Designing and implementing the software and hardware architecture of a LEGO robot to
perform tasks such as line tracking and simple map building. Reactive and deliberative control. Mentoring students
in local schools. Course promotes ability to reason about core algorithms and challenges present in field of
autonomous mobile robotics, and to effectively convey and formulate mobile robotics curricula for middle or high
school students. Prerequisite: None. One course. C-L: Education 149S
190. Topics in Computer Science. QS Instructor: Staff. One course.
190A. Duke-Administered Study Abroad: Special Topics in Computer Science. Topics differ by section.
Instructor: Staff. One course.
190S. Topics in Computer Science. QS Seminar version of Computer Science 190, topics from various areas of
computer science, changing each year. Instructor: Staff. One course.
201. Data Structures and Algorithms. QS Analysis, use, and design of data structures and algorithms using an
object-oriented language like Java to solve computational problems. Emphasis on abstraction including interfaces
and abstract data types for lists, trees, sets, tables/maps, and graphs. Implementation and evaluation of programming
techniques including recursion. Intuitive and rigorous analysis of algorithms. Prerequisite: Computer Science 101 or
Engineering 110L, or equivalent. Instructor: Astrachan, Duvall, staff. One course. C-L: Information Science and
Information Studies
210. Introduction to Operating Systems. QS Basic concepts and principles of multiprogrammed operating
systems. Processes, interprocess communication, CPU scheduling, mutual exclusion, deadlocks, memory
management, I/O devices, file systems, protection mechanisms. Also taught as Electrical and Computer Engineering
353. Prerequisites: Computer Science 201 and 250. Instructor: Chase, Cox, or Maggs. One course. C-L: Modeling
Biological Systems
220. Introduction to Numerical Methods and Analysis. QS Theory, algorithms, and software that concern
numerical solution of linear equations, approximation and interpolation of functions, numerical solution of nonlinear
equations, and numerical solution of ordinary differential equations. Prerequisite: Computer Science 101;
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 3
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
Mathematics 21; 122; 221 or 111. Instructor: Rose or Sun. One course. C-L: Modeling Biological Systems 220S.
Introduction to Numerical Methods and Analysis. QS Seminar version of Computer Science 220. One course.
223. Computational Microeconomics. QS Use of computational techniques to operationalize basic concepts from
economics. Expressive marketplaces: combinatorial auctions and exchanges, winner determination problem. Game
theory: normal and extensive-form games, equilibrium notions, computing equilibria. Mechanism design: auction
theory, automated mechanism design. Prerequisites: 100-level Statistics and 100-level Mathematics or consent of
instructor. Instructor: Conitzer. One course.
224. Introduction to Computer Modeling. QS Introduction to techniques for developing, evaluating, and
analyzing computational models for problems in the sciences and social sciences. Stochastic, deterministic, discrete,
and continuous models. Stability of numerical approximations, parameter estimation, perturbation theory. Case
studies from biology and economics. Prerequisites: Mathematics 21, 122, 100-level Statistics. Instructor: Tomasi.
One course. C-L: Modeling Biological Systems
230. Discrete Math for Computer Science. QS Mathematical notations, logic, and proof; linear and matrix
algebra; graphs, digraphs, trees, representations, and algorithms; counting, permutations, combinations, discrete
probability, Markov models; advanced topics from algebraic structures, geometric structures, combinatorial
optimization, number theory. Prerequisites: Mathematics 21 and 122; Computer Science 101. Instructor: Agarwal,
Edelsbrunner, Forbes, Reif, or Tomasi. One course.
241S. Computer Science Seminar. QS, R, W In-depth exploration of specific areas in computer science. The
methods of critical inquiry and scholarly research reinforced with regular written analysis, seminar-style
presentations and collaborative research projects. Prerequisites: Computer Science 201 and 250. Instructor: Staff.
One course. C-L: Information Science and Information Studies, Markets and Management Studies
249S. CompSci Majors - Project-based Robotics Course with Service Learning. EI, STS Project-based robotics
course linked with community service. Introduction and implementation of algorithms for navigation, map building,
and object recognition. Representing uncertainty in robot motion and sensing. Mentoring students in local schools.
After taking this course, students should be able to reason about the core algorithms and challenges present in the
field of autonomous mobile robotics; and effectively convey and formulate mobile robotics curricula for middle or
high school students. Prerequisite: Computer Science 201 or equivalent programming experience. Instructor: Forbes.
Half course.
250. Computer Organization and Programming. QS Computer structure, machine language, instruction
execution, addressing techniques, and digital representation of data. Computer systems organization, logic design,
microprogramming, and interpreters. Symbolic coding and assembly systems. Prerequisite: Computer Science 201
or consent of instructor. Instructor: Kedem or Lebeck. One course. C-L: Modeling Biological Systems
260. Introduction to Computational Genomics. NS, QS A computational perspective on the analysis of genomic
and genome-scale information. Focus on exploration and analysis of large genomic sequences, but also attention to
issues in structural and functional genomics. Topics include genome sequence assembly, local and global alignment,
gene and motif finding, protein threading and folding, and the clustering and classification of genes and tissues using
gene expression data. Students to learn computational approaches to genomics as well as to develop practical
experience with handling, analyzing, and visualizing information at a genome-scale. Instructor: Hartemink. One
course. C-L: Genome Sciences and Policy
270. Introduction to Artificial Intelligence. QS Algorithms and representations used in artificial intelligence.
Introduction and implementation of algorithms for search, planning, decision, theory, logic, Bayesian networks,
robotics and machine learning. Prerequisite: Computer Science 201. Instructor: Parr. One course. C-L: Information
Science and Information Studies, Modeling Biological Systems
290. Topics in Computer Science. QS Topics from various areas of computer science, changing each year.
Prerequisite: Computer Science 201 or equivalent. Instructor: Staff. One course.
290A. Duke-Administered Study Abroad: Advanced Special Topics in Computer Science. Topics differ by
section. Instructor: Staff. One course.
290S. Topics in Computer Science. QS Seminar version of Computer Science 290. Instructor: Staff. One course.
308. Software Design and Implementation. QS Techniques for design and construction of reliable, maintainable
and useful software systems. Programming paradigms and tools for medium to large projects: revision control,
UNIX tools, performance analysis, GUI, software engineering, testing, documentation. Prerequisite: Computer
Science 201. Instructor: Astrachan or Duvall. One course. C-L: Information Science and Information Studies,
Modeling Biological Systems
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 4
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
309S. Problem Solving Seminar. QS Techniques for attacking, solving, and writing computer programs for
challenging computational problems. Algorithmic and programming language tool kits. Course may be repeated.
Consent of instructor required. Instructor: Astrachan. Half course.
310. Introduction to Computer Networks. QS, R Networking and distributed systems. Network infrastructure
support for distributed applications ranging from email to web browsing to electronic commerce. Principles
underlying the design of our network infrastructure and the challenges that lie ahead. The socket API, security,
naming network file systems, wireless networks, Internet routing, link layer protocols (such as Ethernet), and
transport protocols (TCP). Hands-on programming assignments covering issues in distributed systems and
networking. Prerequisites: Computer Science 210 and 308 or equivalent. Instructor: Maggs or X. Yang. One course.
C-L: Electrical and Computer Engineering 358, Information Science and Information Studies
316. Introduction to Database Systems. QS, R Databases and relational database management systems. Data
modeling, database design theory, data definition and manipulation languages, storaging and indexing techniques,
query processing and optimization, concurrency control and recovery, database programming interfaces. Current
research issues including XML, web data management, data integration and dissemination, data mining. Hands-on
programming projects and a term project. Prerequisite: Computer Science 201, recommended: Computer Science
308. Instructor: Babu or J. Yang. One course. C-L: Information Science and Information Studies
330. Introduction to the Design and Analysis of Algorithms. QS Design and analysis of efficient algorithms
including sorting, searching, dynamic programming, graph algorithms, fast multiplication, and others;
nondeterministic algorithms and computationally hard problems. Prerequisites: Computer Science 201 and 230.
Instructor: Edelsbrunner, Mungala, or Reif. One course. C-L: Modeling Biological Systems
334. Mathematical Foundations of Computer Science. QS An introduction to theoretical computer science
including studies of abstract machines, the language hierarchy from regular sets to recursively enumerable sets,
noncomputability, and complexity theory. Prerequisites: Computer Science 201 and Mathematics 212. Instructor:
Reif or Rodger. One course. C-L: Modeling Biological Systems
342S. Technical and Social Analysis of Information and the Internet. EI, QS, R, SS, W Technical version of
Computer Science 82S. Requires a significant technical project. The development of technical and social standards
governing the Internet and information technology in general. The role of software as it relates to law, patents,
intellectual property, and IETF (Internet Engineering Task Force) standards. Written analysis of issues from a
technical perspective with an emphasis on the role of software and on how standards relate to social and ethical
issues. Meets as a seminar with an additional weekly meeting to accommodate guest lectures. Not open to students
who have taken Computer Science 82S. Prerequisites: Computer Science 308 and recommended Computer Science
316. Instructor: Astrachan and Forbes. One course. C-L: Information Science and Information Studies
344. Computer Graphics. QS Overview, motivation, and history; OpenGL and OpenInventor; coordinate systems
and geometric transforms; drawing routines, antialiasing, supersampling; 3d object representation, spatial data
structures, constructive solid geometry; hidden-surface-removal algorithms, z-buffer, A-buffer; illumination and
shading models, surface details, radiosity; achromatic light, color specification, colorimetry, different color models;
graphics pipeline, SGI reality engine, Pixel 5; animation, levels of detail. Prerequisites: Computer Science 308 and
Mathematics 221. Instructor: Agarwal or Duvall. One course. C-L: Visual and Media Studies 241, Modeling
Biological Systems
390. Topics in Computer Science. QS, R Topics from various areas of computer science, changing each year.
Includes research intensive work exposing the student to computer science research methodology and resulting in a
major document or project. Prerequisite: Computer Science 201. Instructor: Staff. One course.
391. Independent Study. Individual work in a field of special interest under the supervision of a faculty member,
the central goal of which is a substantive paper, project, or written report covering a previously approved topic.
Consent of instructor and director of undergraduate studies required. Instructor: Staff. One course.
393. Research Independent Study. R Individual research in a field of special interest under the supervision of a
faculty member, the central goal of which is a substantive paper, project, or written report containing significant
analysis and interpretation of a previously approved topic. Consent of instructor and director of undergraduate
studies required. Instructor: Staff. One course.
394. Research Independent Study. R See Computer Science 393. Consent of instructor and director of
undergraduate studies required. Instructor: Staff. One course.
430. Algorithmic Paradigms. QS Applications include dynamic data structures,graph algorithms, randomized
algorithms. Intractability and NP completeness. Prerequisite: Computer Science 100 and 102. Instructor: Agarwal,
Edelsbrunner, Munagala, or Reif. Three courses.
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 5
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
510. Operating Systems. QS Fundamental principles of operating system design applied to state-of-the-art
computing environments (multiprocessors and distributed systems) including process management (coscheduling
and load balancing), shared memory management (data migration and consistency), and distributed file systems.
Instructor: Chase, Cox, or Maggs. One course.
512. Distributed Information Systems. Principles and techniques for sharing information reliably and efficiently in
computer networks, ranging from high-speed clusters to global-scale networks (e.g., the Internet). Topics include
advanced distributed file systems, distributed programming environments, replication, caching and consistency,
transactional concurrency control, reliable update and recovery, and issues of scale and security for Internet
information services. Prerequisites: Computer Science 210 or 510 and Computer Science 514, or consent of the
instructor. Instructor: Chase, Cox, or Maggs. One course.
514. Computer Networks and Distributed Systems. QS, R Basic systems support for process-to-process
communications across a computer network. The TCP/IP protocol suite and the Berkeley sockets application
programs interface. Development of network application programs based on the client-server model. Remote
procedure call and implementation of remote procedure call. Prerequisite: knowledge of the C programming
language. Instructor: Maggs or X. Yang. One course. C-L: Electrical and Computer Engineering 558
515. Wireless Networking and Mobile Computing. One course. C-L: see Electrical and Computer Engineering
556
516. Data-Intensive Computing Systems. QS, R Data-Intensive Computing Systems. Principles and techniques for
making intelligent use of the massive amounts of data being generated in commerce, industry, science, and society.
Topics include indexing, query processing, and optimization in large databases, data mining and warehousing, new
abstractions and algorithms for parallel and distributed data processing, fault-tolerant and self-tuning data
management for cloud computing, and information retrieval and extraction for the Web. Prerequisites: Computer
Science 316 or an introductory database course or consent of instructor. Instructor: Babu or J. Yang. One course.
520. Numerical Analysis. QS, R Error analysis, interpolation and spline approximation, numerical differentiation
and integration, solutions of linear systems, nonlinear equations, and ordinary differential equations. Prerequisites:
knowledge of an algorithmic programming language, intermediate calculus including some differential equations,
and Mathematics 221. Instructor: Rose or Sun. One course. C-L: Mathematics 565, Statistical Science 612,
Modeling Biological Systems
524. Nonlinear Dynamics. QS, R One course. C-L: see Physics 513; also C-L: Modeling Biological Systems
527. Introduction to Computer Vision. Image formation and analysis; feature computation and tracking; image
motion analysis; stereo vision; image, object, and activity recognition and retrieval. Prerequisites: Mathematics 221
or 216; Mathematics 230 or Statistical Science 230; Computer Science 101. Instructor: Tomasi. One course.
528. Introduction to Computational Science. QS Introduction to scientific computing and its applications to
facilitate interdisciplinary collaborative research. Brief intro to contemporary high performance computer
architectures, basic linear algebra, numerical analysis, programming languages and widely available software
packages. Study high performance algorithms in finite elements, fast transforms, molecular dynamics, high
dimensional optimization, computational quantum mechanics and visualization. Parallel lab sessions by experts
offer further specialization. Prerequisite: programming experience in Fortran or C, calculus, numerical linear algebra
or equivalent. Instructor: Staff. One course.
530. Design and Analysis of Algorithms. QS Design and analysis of efficient algorithms. Algorithmic paradigms.
Applications include sorting, searching, dynamic structures, graph algorithms, randomized algorithms.
Computationally hard problems. NP completeness. Prerequisite: Computer Science 201 or equivalent. Instructor:
Agarwal, Edelsbrunner, Munagala, or Reif. One course.
532. Approximation Algorithms. QS Cover traditional approximation algorithms with combinatorial and linear
programming techniques; extended survey of cut problems and metric embeddings; embeddings, dimensionality
reduction, locality sensitive hashing, and game theory. Instructor: Agarwal or Munagala. One course.
534. Computational Complexity. QS Turing machines, undecidability, recursive function theory, complexity
measures, reduction and completeness, NP, NP-Completeness, co-NP, beyond NP, relativized complexity, circuit
complexity, alternation, polynomial time hierarchy, parallel and randomized computation, algebraic methods in
complexity theory, communication complexity. Prerequisite: Computer Science 334 or equivalent. Instructor:
Agarwal or Reif. One course.
550. Advanced Computer Architecture I. QS, R Fundamental aspects of advanced computer architecture design
and analysis. Topics include processor design, pipelining, superscalar, out-of-order execution, caches (memory
hierarchies), virtual memory, storage systems, simulation techniques, technology trends and future challenges.
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 6
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
Prerequisite: Computer Science 250 or Electrical and Computer Engineering 350 or equivalent. Instructors: Board,
Kedem, Lebeck, or Sorin. One course. C-L: Electrical and Computer Engineering 552, Modeling Biological Systems
554. Fault-Tolerant and Testable Computer Systems. One course. C-L: see Electrical and Computer Engineering
554
555. Probability for Electrical and Computer Engineers. One course. C-L: see Electrical and Computer
Engineering 555; also C-L: Information Science and Information Studies, Modeling Biological Systems
561. Computational Sequence Biology. Introduction to algorithmic and computational issues in analysis of
biological sequences: DNA, RNA, and protein. Emphasizes probabilistic approaches and machine learning methods,
e.g. Hidden Markov models. Explores applications in genome sequence assembly, protein and DNA homology
detection, gene and promoter finding, motif identification, models of regulatory regions, comparative genomics and
phylogenetics, RNA structure prediction, post-transcriptional regulation. Prerequisites: basic knowledge algorithmic
design (Computer Science 530 or equivalent), probability and statistics (Statistical Science 611 or equivalent),
molecular biology (Biology 118 or equivalent). Alternatively, consent instructor. Instructor: Hartemink or Ohler.
One course. C-L: Computational Biology and Bioinformatics 561
570. Artificial Intelligence. QS Design and analysis of algorithms and representations for artificial intelligence
problems. Formal analysis of techniques used for search, planning, decision theory, logic, Bayesian networks,
robotics, and machine learning. Prerequisite: Computer Science 201 and Computer Science 330. Instructor: Conitzer
or Parr. One course.
571. Machine Learning. QS Theoretical and practical issues in modern machine learning techniques. Topics
include statistical foundations, supervised and unsupervised learning, decision trees, hidden Markov models, neural
networks, and reinforcement learning. Minimal overlap with Computer Science 570. Prerequisite: Computer Science
201, Mathematics 221, and Statistical Science 111 or consent of instructor. Instructor: Parr. One course.
579. Statistical Data Mining. QS One course. C-L: see Statistical Science 622
590. Advanced Topics in Computer Science. QS Instructor: Staff. One course.
630. Randomized Algorithms. QS, R Models of computation, Las Vegas and Monte Carlo algorithms, linearity of
expectation, Markov and Chebyshev inequalities and their applications, Chernoff bound and its applications,
probabilistic methods, expanders, Markov chains and random walk, electric networks and random walks, rapidly
mixing Markov chains, randomized data structures, randomized algorithms for graph problems, randomized
geometric algorithms, number theoretic algorithms, RSA cryptosystem, derandomization. Prerequisite: Computer
Science 530. Instructor: Agarwal, Munagala, or Reif. One course.
634. Computational Geometry. QS Models of computation and lower-bound techniques; storing and manipulating
orthogonal objects; orthogonal and simplex range searching, convex hulls, planar point location, proximity
problems, arrangements, linear programming and parametric search technique, probabilistic and incremental
algorithms. Prerequisite: Computer Science 530 or equivalent. Instructor: Agarwal or Edelsbrunner. One course. CL: Computational Biology and Bioinformatics 634, Modeling Biological Systems
636. Computational Topology. QS Introduction to topology via graphs; facts about curves and surfaces;
representing triangulations; discussion of simplicial complexes; emphasis on Delaunay and alpha complexes and on
homology groups; computational via matrix reduction; Morse functions; PL functions; Reeb graphs; development of
persistent homology; proof of stability; applications and extensions. Prerequisite: Computer Science 530. Instructor:
Edelsbrunner or Harer. One course. C-L: Mathematics 619
650. Advanced Computer Architecture II. QS Parallel computer architecture design and evaluation. Design topics
include parallel programming, message passing, shared memory, cache coherence, cache coherence, memory
consistency models, symmetric multiprocessors, distributed shared memory, interconnection networks, and
synchronization. Evaluation topics include modeling, simulation, and benchmarking. Prerequisite: Computer
Science 550 or Electrical and Computer Engineering 552 or consent of instructor. Instructor: Lebeck or Sorin. One
course. C-L: Electrical and Computer Engineering 652, Modeling Biological Systems
662. Computational Systems Biology. NS, QS, R Provides a systematic introduction to algorithmic and
computational issues present in the analysis of biological systems. Emphasizes probabilistic approaches and
machine learning methods. Explores modeling basic biological processes (e.g., transcription, splicing, localization
and transport, translation, replication, cell cycle, protein complexes, evolution) from a systems biology perspective.
Lectures and discussions of primary literature. Prerequisites: basic knowledge of algorithm design (Computer
Science 530 or equivalent), probability and statistics (Statistical Science 611 or equivalent), molecular biology
(Biology 201L or equivalent), and computer programming. Alternatively, consent of instructor. Instructor:
Hartemink or Ohler. One course. C-L: Computational Biology and Bioinformatics 662, Genome Sciences and Policy
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 7
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
663. Algorithms in Structural Biology and Biophysics. NS, QS, R Introduction to algorithmic and computational
issues in structural molecular biology and molecular biophysics. Emphasizes geometric algorithms, provable
approximation algorithms, computational biophysics, molecular interactions, computational structural biology,
proteomics, rational drug design, and protein design. Explores computational methods for discovering new
pharmaceuticals, NMR and X-ray data, and protein-ligand docking. Prerequisites: basic knowledge of algorithm
design (Computer Science 530 or equivalent), probability and statistics (Statistics 611 or equivalent), molecular
biology (Biology 118 or equivalent), and computer programming. Alternatively, consent of instructor. Instructor:
Donald. One course. C-L: Computational Biology and Bioinformatics 663
664. Computational Structural Biology. QS, R Introduction to theory and computation of macromolecular
structure. Principles of biopolymer structure: computer representations and database search; molecular dynamics and
Monte Carlo simulation; statistical mechanics of protein folding; RNA and protein structure prediction (secondary
structure, threading, homology modeling); computer-aided drug design; proteomics; statistical tools (neural
networks, HMMs, SVMs). Prerequisites: basic knowledge algorithmic design (Computational Biology and
Bioinfomatics 230 or equivalent), probability and statistics (Statistics 611 and 721 or equivalent), molecular biology
(Biology 118 or equivalent), and computer programming. Alternatively, consent of instructor. Instructor: Schmidler.
One course. C-L: Computational Biology and Bioinformatics 550, Statistical Science 614
THE MAJOR
For the A.B. Degree
Prerequisites. Computer Science 101, Mathematics 11lL, 112L or equivalents.
Major Requirements. Computer Science 201, 230, 250, 210, and 330. Three 200- level and above electives: one
in Computer Science (not an independent study course) and two in Computer Science, Electrical and Computer
Engineering, Mathematics, Statistics, or in a related area approved by the director of undergraduate studies.
For the previous curriculums, see: http://www.cs.duke.edu/cseducation/undergrad/ba.html
For the B.S. Degree
Prerequisites. Computer Science 101, Mathematics 111L, 112L, or equivalents.
Major Requirements. Computer Science 201, 230, 250, 210, and 330. Three 200- or 500-level electives in
Computer Science (not independent study courses). Two courses at the 200-level and above including all courses in
Copmuter Science (including independent study), Electrical and Computer Engineering, Mathematics, Statistics, or
in a related area approved by the director of undergraduate studies. One of Mathematics 202, 212, 221, or 216.
Either Mathematics 230 or a Statistics course at or above 111.
For the previous curriculums, see: http://www.cs.duke.edu/cseducation/undergrad/ba.html.
Departmental Graduation with Distinction
A program for Graduation with Distinction in computer science is available. Candidates for a degree with
distinction, high distinction, or highest distinction must apply to the director of undergraduate studies and meet the
following criteria. Candidates for Graduation with Distinction must have a grade point average of 3.0 or higher in
computer science courses numbered above 200. Candidates must complete a substantial project, representing at least
one year's work and including at least one independent study, under the guidance of a faculty member in computer
science who oversees and endorses the project. The project should represent a significant intellectual endeavor
including the writing of a report. A presentation of the project must be made to a committee of three faculty
members, two of whom will normally be from computer science although for interdisciplinary projects this
restriction can be relaxed. Graduation with high or highest distinction is awarded at the discretion of the faculty
committee in consultation with the director of undergraduate studies. Graduation with high or highest distinction is
typically awarded for projects that are of publishable quality. In addition, candidates for a degree with high or
highest distinction should have a grade point average of 3.5 or higher in those computer science courses related to
the area of research; these courses must include at least one course at the 500 level.
THE MINOR
Computer Science
Five courses in computer science (including the prerequisite), at least four of which must be at the 200 level or
above.
Prerequisites. Computer Science 101, or both Computer Science 6 and Computer Science 100.
Requirements. Computer Science 201 and 250. All 200-level and above courses count in meeting the minor
requirements.
Proof for the 2012-2013 Duke University Bulletin of Undergraduate Instruction, p. 8
RETURN PROOF BY MARCH 6, 2012 TO INGEBORG WALTHER: waltheri@duke.edu
________________________________________________________________________________
Computational Biology and Bioinformatics
Prerequisites. Mathematics 111L, 112L, and 100-level statistics course.
Requirements. Five courses at the 200 level (not including the prerequisites); three from Computer Science and two
from Biology, as follows: Computer Science 201, Computer Science 260, Biology 201L; one biology course from
the following: 220, 251, 214L, 414LS, 556, 413L or as approved by the director of undergraduate studies in
computer science in consultation with the director of undergraduate studies in biology; one computer science course
from the following: 224, 358, 270, or any 500-level computer science course, or as approved by the director of
undergraduate studies in computer science, e.g., an independent study in an area related to bioinformatics or
computational biology.
Download