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.