Computer Science (CS) Courses (2019-20)
EE/CS/MedE 125. Digital Electronics and Design with FPGAs and VHDL. 9 units (3-6-0): third term. Study of programmable logic devices (CPLDs and FPGAs). Detailed study of the VHDL language, with basic and advanced applications. Review and discussion of digital design principles for combinational-logic, combinational-arithmetic, sequential, and state-machine circuits. Detailed tutorials for synthesis and simulation tools using FPGAs and VHDL. Wide selection of complete, real-world fundamental advanced projects, including theory, design, simulation, and physical implementation. All designs are implemented using state-of-the-art development boards. Instructor: Pedroni.
EE/CS/MedE 175. Digital Circuits Analysis and Design with Complete VHDL and RTL Approach. 9 units (3-6-0): third term. A careful balance between synthesis and analysis in the development of digital circuits plus a truly complete coverage of the VHDL language. The RTL (register transfer level) approach. Study of FPGA devices and comparison to ASIC alternatives. Tutorials of software and hardware tools employed in the course. VHDL infrastructure, including lexical elements, data types, operators, attributes, and complex data structures. Detailed review of combinational circuits followed by full VHDL coverage for combinational circuits plus recommended design practices. Detailed review of sequential circuits followed by full VHDL coverage for sequential circuits plus recommended design practices. Detailed review of state machines followed by full VHDL coverage and recommended design practices. Construction of VHDL libraries. Hierarchical design and practice on the hard task of project splitting. Automated simulation using VHDL testbenches. Designs are implemented in state-of-the-art FPGA boards. Instructor: Pedroni.
Bi/BE/CS 183. Introduction to Computational Biology and Bioinformatics. 9 units (3-0-6): second term. Biology is becoming an increasingly data-intensive science. Many of the data challenges in the biological sciences are distinct from other scientific disciplines because of the complexity involved. This course will introduce key computational, probabilistic, and statistical methods that are common in computational biology and bioinformatics. We will integrate these theoretical aspects to discuss solutions to common challenges that reoccur throughout bioinformatics including algorithms and heuristics for tackling DNA sequence alignments, phylogenetic reconstructions, evolutionary analysis, and population and human genetics. We will discuss these topics in conjunction with common applications including the analysis of high throughput DNA sequencing data sets and analysis of gene expression from RNA-Seq data sets. Instructors: Pachter, Thomson.
CNS/Bi/EE/CS/NB 186. Vision: From Computational Theory to Neuronal Mechanisms. 12 units (4-4-4): second term. Lecture, laboratory, and project course aimed at understanding visual information processing, in both machines and the mammalian visual system. The course will emphasize an interdisciplinary approach aimed at understanding vision at several levels: computational theory, algorithms, psychophysics, and hardware (i.e., neuroanatomy and neurophysiology of the mammalian visual system). The course will focus on early vision processes, in particular motion analysis, binocular stereo, brightness, color and texture analysis, visual attention and boundary detection. Students will be required to hand in approximately three homework assignments as well as complete one project integrating aspects of mathematical analysis, modeling, physiology, psychophysics, and engineering. Given in alternate years; Offered 2019-20. Instructors: Meister, Perona, Shimojo, Tsao.
CNS/Bi/Ph/CS/NB 187. Neural Computation. 9 units (3-0-6): first term. Programming will be required. This course investigates computation by neurons. Of primary concern are models of neural computation and their neurological substrate, as well as the physics of collective computation. Thus, neurobiology is used as a motivating factor to introduce the relevant algorithms. Topics include rate-code neural networks, their differential equations, and equivalent circuits; stochastic models and their energy functions; associative memory; supervised and unsupervised learning; development; spike-based computing; single-cell computation; error and noise tolerance. Not offered 2019-20. Instructor: Perona.
BE/CS/CNS/Bi 191 ab. Biomolecular Computation. 9 units (3-0-6) second term, (2-4-3) third term: . This course investigates computation by molecular systems, emphasizing models of computation based on the underlying physics, chemistry, and organization of biological cells. We will explore programmability, complexity, simulation of, and reasoning about abstract models of chemical reaction networks, molecular folding, molecular self-assembly, and molecular motors, with an emphasis on universal architectures for computation, control, and construction within molecular systems. If time permits, we will also discuss biological example systems such as signal transduction, genetic regulatory networks, and the cytoskeleton; physical limits of computation, reversibility, reliability, and the role of noise, DNA-based computers and DNA nanotechnology. Part a develops fundamental results; part b is a reading and research course: classic and current papers will be discussed, and students will do projects on current research topics. Not offered 2019-20. Instructor: Winfree.
BE/CS 196 ab. Design and Construction of Programmable Molecular Systems. 12 units; a (3-6-3) second term; b (2-8-2) third term: second, third terms. This course will introduce students to the conceptual frameworks and tools of computer science as applied to molecular engineering, as well as to the practical realities of synthesizing and testing their designs in the laboratory. In part a, students will design and construct DNA logic circuits, biomolecular neural networks, and self-assembled DNA nanostructures, as well as quantitatively analyze the designs and the experimental data. Students will learn laboratory techniques including fluorescence spectroscopy and atomic force microscopy, and will use software tools and program in MATLAB or Mathematica. Part b is an open-ended design and build project. Enrollment in both parts a and b is limited to 12 students. Not offered 2019-20. Instructor: Qian.