Computer Science Courses

For more information on specific courses, including prerequisites, registration details and any last-minute changes, visit my.harvard

Great Ideas in Computer Science

COMPSCI 1
2017 Spring
Henry Leitner
Tuesday, Thursday
10:00 am to 11:29 am

An introduction to the most important discoveries and intellectual paradigms in computer science, designed for students with little or no previous background. Explores problem-solving using high and low-level programming languages; presents an integrated view of computer systems, from switching circuits up through compilers and GUI design. Examines theoretical and practical limitations related to unsolvable and intractable computational problems, and the social and ethical dilemmas presented by such issues as software unreliability and invasions of privacy.

Discrete Mathematics for Computer Science

COMPSCI 20
2017 Spring
Harry Lewis
Monday, Wednesday, Friday
10:00 am to 10:59 am

Widely applicable mathematical tools for computer science, including topics from logic, set theory, combinatorics, number theory, probability theory, and graph theory. Practice in reasoning formally and proving theorems.

Introduction to Computer Science I

COMPSCI 50
2016 Fall
David J. Malan
Monday, Wednesday
1:00 pm to 2:29 pm

Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. Designed for concentrators and non-concentrators alike, with or without prior programming experience. 73% of CS50 students have never taken CS before.

Introduction to Computer Science II

COMPSCI 51
2017 Spring
Stuart Shieber
Tuesday
1:00 pm to 2:29 pm

Abstraction and design in computation. Topics include functional and object-oriented styles of programming, software engineering in the small, and models of computation. Our main goal is to understand how to design large programs to make them readable, maintainable, elegant, and efficient.

Systems Programming and Machine Organization

COMPSCI 61
2016 Fall
Margo Seltzer,
Eddie Kohler
Tuesday, Thursday
2:30 pm to 3:59 pm

Fundamentals of computer systems programming, machine organization, and performance tuning. This course provides a solid background in systems programming and a deep understanding of low-level machine organization and design. Topics include C and assembly language programming, program optimization, memory hierarchy and caching, virtual memory and dynamic memory management, concurrency, threads, and synchronization.

The Internet: Governance and Power

COMPSCI 90NAR
2016 Fall
Virgilio Almeida
Tuesday, Thursday
11:30 am to 12:59 pm

In this course, we study cyberspace governance. Cyberspace is a unique combination of physical and virtual properties. In this course, we view cyberspace as a structure consisting of three layers:  the physical layer represented by the global communication infrastructure and two virtual layers, composed by the Internet layer and the social and economic layer.  Our focus concentrates on the  top two layers. The principles, norms, rules, and procedures that shape the cyberspace are studied in this course through quantitative analysis of data collected from different sources in the digital world.  Data-oriented analysis of problems and policies in cyberspace will be illustrated by examining several case studies in the major internet platforms. The case studies will help students to understand the role of social algorithms, programs that rank and classify people and information  and services that provide customized experiences.  Ultimately, students learn how to use quantitative methods to understand different issues related to digital governance.

Contemporary Issues in Intelligence Gathering

COMPSCI 90NBR
2017 Spring
Jonathan Zittrain
Monday
5:00 pm to 6:59 pm

The digital environment offers greatly expanded opportunities for intelligence gathering. This seminar will explore some of the most difficult problems arising in managing the collection and use of intelligence for national security, including compliance with the law; avoidance of, and remedies for, over collection; and protection of privacy and other fundamental values.

We will discuss how an intelligence community's activities can be meaningfully communicated to the public while respecting its sources and methods; how agencies might internally reconcile their various missions to protect the public and protect public values; and what a set of authorities and limitations for intelligence collection might look like if a clean slate were available on which to develop them. Please visit http://brk.mn/CIIG17 to access the application and read more about the course.

Supervised Reading and Research

COMPSCI 91R
2016 Fall
Harry Lewis

Supervised individual study of advanced topics in computer science. A student wishing to enroll in Computer Science 91r must be accepted by a faculty member who will supervise the course work. A form available from the Student Affairs Office, Pierce Hall 110, must be filled out and signed by the student and faculty supervisor. Students writing theses may enroll in this course while conducting thesis research and writing.

Supervised Reading and Research

COMPSCI 91R
2017 Spring
Harry Lewis

Supervised individual study of advanced topics in computer science. A student wishing to enroll in Computer Science 91r must be accepted by a faculty member who will supervise the course work. A form available from the Student Affairs Office, Pierce Hall 110, must be filled out and signed by the student and faculty supervisor. Students writing theses may enroll in this course while conducting thesis research and writing.

Privacy and Technology

COMPSCI 105
2016 Fall
James Waldo
Tuesday, Thursday
1:00 pm to 2:29 pm

What is privacy, and how is it affected by recent developments in technology? This course critically examines popular concepts of privacy and uses a rigorous analysis of technologies to understand the policy and ethical issues at play. Case studies: database anonymity, research ethics, wiretapping, surveillance, and others. Course relies on some technical material, but is open and accessible to all students, especially those with interest in economics, engineering, political science, computer science, sociology, biology, law, government, philosophy.

Intelligent Systems: Design and Ethical Challenges

COMPSCI 108
2016 Fall
Barbara Grosz
Tuesday, Thursday
11:30 am to 12:59 pm

For centuries, people have imagined smart machines in fictional stories.  Computer systems now communicate in speech and text, learn, negotiate, and work in teams (with people and other systems).  These intelligent-systems capabilities raise questions about the impact of such systems on people and societies. This course introduces the basic techniques of AI in the context of (science) fiction imaginings and ethical challenges.  It examines the roles of design and of policy in reducing potential negative consequences. The course presumes a basic programming ability, but is accessible to concentrators in the humanities and social sciences as well as science and engineering.

Data Science 1: Introduction to Data Science

COMPSCI 109A
2016 Fall
Pavlos Protopapas,
Kevin A. Rader
Monday, Wednesday
1:00 pm to 2:29 pm

Data Science 1 is the first half of a one-year introduction to data science. The course will focus on the analysis of messy, real life data to perform predictions using statistical and machine learning methods. Material covered will integrate the five key facets of an investigation using data: (1) data collection - data wrangling, cleaning, and sampling to get a suitable data set;  (2) data management - accessing data quickly and reliably; (3) exploratory data analysis – generating hypotheses and building intuition; (4) prediction or statistical learning; and (5) communication – summarizing results through visualization, stories, and interpretable summaries.

Data Science 2: Advanced Topics in Data Science

COMPSCI 109B
2017 Spring
Hanspeter Pfister,
Mark Glickman,
Verena Kaynig-Fittkau
Monday, Wednesday
1:00 pm to 2:29 pm

Data Science 2 is the second half of a one-year introduction to data science. Building upon the material in Data Science 1, the course introduces advanced methods for data wrangling, data visualization, and statistical modeling and prediction. Topics include big data and database management, interactive visualizations, nonlinear statistical models, and deep learning.

Introduction to the Theory of Computation

COMPSCI 121
2016 Fall
Harry Lewis
Tuesday, Thursday
10:00 am to 11:29 am

General introduction to the theory of computation, teaching how to reason precisely about computation and prove mathematical theorems about its capabilities and limitations. Finite automata, Turing machines, formal languages, computability, uncomputability, computational complexity, and the P vs. NP question.

Data Structures and Algorithms

COMPSCI 124
2017 Spring
Michael Mitzenmacher
Tuesday, Thursday
11:30 am to 12:59 pm

Design and analysis of efficient algorithms and data structures. Algorithm design methods, graph algorithms, approximation algorithms, and randomized algorithms are covered.

Algorithms and Complexity

COMPSCI 125
2016 Fall
Jelani Nelson
Tuesday, Thursday
10:00 am to 11:29 am

An accelerated introduction to theoretical computer science for students with strong mathematical preparation, to be taken in place of both Computer Science 121 and 124. Algorithm design methods, including graph algorithms, approximation algorithms, and randomized algorithms. Models of computation, computability theory, and computational complexity, including the P vs. NP question.

Networks

COMPSCI 134
2017 Spring
Yaron Singer
Monday, Wednesday
2:30 pm to 3:59 pm

Networks—of social relationships, economic interdependencies, and digital interactions—are critical in shaping our lives. This course introduces models and algorithms that help us understand networks. Fundamental concepts from applied mathematics, microeconomics, and computer science will be presented through the lens of network science, in order to equip students to usefully analyze the “big data” generated by online networks. Applications discussed include the viral spread of ideas, maximizing influence, and the contagion of economic downturns.  Concepts and tools covered include game theory, graph theory, data mining, and machine learning.

Computing Hardware

COMPSCI 141
2016 Fall
David Brooks
Monday, Wednesday
1:00 pm to 2:29 pm

Introduction to the design, structure, and operation of digital computers; logic circuits and digital electronics; computer arithmetic; computer architecture; and machine language programming. Consideration of the design interactions between hardware and software systems.

Computer Networks

COMPSCI 143
2016 Fall
H. Kung
Monday, Wednesday
2:30 pm to 3:59 pm

Networking has enabled the emergence of mobile and cloud computing, creating one of the most important technological paradigm shifts in computing of the past decade. The next major paradigm shift in computer networking will be the emergence of 5G wireless mobile networks, which will begin to replace the current 4G networks as early as 2019/2020. These further advancements in wireless networking are expected to transform the technological landscape over the next decade by enabling an endless possibility of new applications, including the Internet of Things and wireless virtual reality, through the emergence of wireless networks with gigabit speeds. In order to play a role in this era of new network-powered advancements, students must have a thorough understanding of emerging networking topics, especially in the wireless domain. Rather than teaching the basic networking protocols, which have become very mature and can be treated as a black box, in CS 143, we will teach the new issues and topics of interest, which will power important emerging applications. This focus on upcoming wireless advancements and mobile applications is the motivation for CS 143 this semester. The class will be organized into the following nine modules: A View of the Future: 5G—A World with Gigabit Wireless Networking; Basic Networking Concepts; Fundamental Radio Propagation Physics; Basic Wireless Networking Concepts: Wi-Fi, MAC protocols; New Fundamentals of Mobile Networking: 5G Millimeter Wave, Ultra Dense Networks (UDNs); Advanced Topics in 5G: Beam Forming, MIMO; 5G System Infrastructure: Network Function Virtualization and Software Defined Networking; 5G Applications: The Internet of Things and Massive Machine Type Communications; and Machine Learning Assisted Networking. Students in the course will read and discuss the latest wireless networking literature, gain hands-on experience through a programming assignment, and have the opportunity to present the concepts learned in the course through writing a final position paper on emerging wireless networking technologies.

Computer Architecture

COMPSCI 146
2017 Spring
David Brooks
Tuesday, Thursday
1:00 pm to 2:29 pm

Review of the fundamental structures in modern processor design. Topics include computer organization, memory system design, pipelining, and other techniques to exploit parallelism. Emphasis on a quantitative evaluation of design alternatives and an understanding of timing issues.

Programming Languages

COMPSCI 152
2017 Spring
Riccardo Pucella
Tuesday, Thursday
9:00 am to 10:29 am

Comprehensive introduction to the principal features and overall design of both traditional and modern programming languages, including syntax, formal semantics, abstraction mechanisms, modularity, type systems, naming, polymorphism, closures, continuations, and concurrency. Provides the intellectual tools needed to design, evaluate, choose, and use programming languages.

Operating Systems

COMPSCI 161
2017 Spring
James Mickens
Tuesday, Thursday
1:00 pm to 2:29 pm

This course focuses on the design and implementation of modern operating systems. The course discusses threads, processes, virtual memory, schedulers, and the other fundamental primitives that an OS uses to represent active computations. An exploration of the system call interface explains how applications interact with hardware and other programs which are concurrently executing. Case studies of popular file systems reveal how an OS makes IO efficient and robust in the midst of crashes and unexpected reboots. Students also learn how virtualization allows a physical machine to partition its resources across multiple virtual machines. Class topics are reinforced through a series of intensive programming assignments which use a real operating system.

Software Engineering

COMPSCI 164
2017 Spring
David J. Malan
Thursday

An introduction to principles of software engineering and best practices. Students work in teams on the design, implementation, and deployment of a term-long project that solves a problem on campus. Structured as supervised independent study with weekly milestones and weekly meetings for design discussions and code reviews with an advisor.

Data Systems

COMPSCI 165
2016 Fall
Stratos Idreos
Monday, Wednesday
4:00 pm to 5:29 pm

We are in the big data era and data systems sit in the critical path of everything we do. We are going through major transformations in businesses, sciences, as well as everyday life - collecting and analyzing data changes everything and data systems provide the means to store and analyze a massive amount of data. This course is a comprehensive introduction to modern data systems. The primary focus of the course is on the modern trends that are shaping the data management industry right now: column-store and hybrid systems, shared nothing architectures, cache conscious algorithms, hardware/software co-design, main-memory systems, adaptive indexing, stream processing, scientific data management, and key-value stores. We also study the history of data systems, traditional and seminal concepts and ideas such as the relational model, row-store database systems, optimization, indexing, concurrency control, recovery and SQL. In this way, we discuss both how and why data systems evolved over the years, as well as how these concepts apply today and how data systems might evolve in the future. We focus on understanding concepts and trends rather than specific techniques that will soon be outdated - as such the class relies largely on recent research material and on a semi-flipped class model with a lot of hands-on interaction in each class.

Visualization

COMPSCI 171
2016 Fall
Hanspeter Pfister
Tuesday, Thursday
2:30 pm to 3:59 pm

An introduction to key design principles and techniques for visualizing data. Covers design practices, data and image models, visual perception, interaction principles, visualization tools, and applications. Introduces programming of web-based interactive visualizations.

Computer Graphics

COMPSCI 175
2016 Fall
Steven Gortler
Monday, Wednesday
2:30 pm to 3:59 pm

This course covers the fundamentals of 3D computer graphics using a modern shader-based version of OpenGL. Main topics include: geometric coordinate systems and transformations, keyframe animation and interpolation, camera simulation, triangle rasterization, material simulation, texture mapping, image sampling and color theory. The course also touches on ray tracing, geometric modeling and simulation-based animation.

Design of Useful and Usable Interactive Systems

COMPSCI 179
2017 Spring
Ofra Amir
Tuesday, Thursday
2:30 pm to 3:59 pm

The course covers skills and techniques necessary to design innovative interactive products that are useful, usable and that address important needs of people other than yourself. You will learn how to uncover needs that your customers cannot even articulate. You will also learn a range of design principles, effective creativity-related practices, and techniques for rapidly creating and evaluating product prototypes. You will also have several opportunities to formally communicate your design ideas to a variety of audiences. You will complete two large team-based design projects.

Machine Learning

COMPSCI 181
2017 Spring
Alexander Rush,
David Parkes
Tuesday, Thursday
10:00 am to 11:29 am

Introduction to machine learning, providing a probabilistic view on artificial intelligence and reasoning under uncertainty. Topics include: supervised learning, ensemble methods and boosting, neural networks, support vector machines, kernel methods, clustering and unsupervised learning, maximum likelihood, graphical models, hidden Markov models, inference methods, and computational learning theory. Students should feel comfortable with multivariate calculus, linear algebra, probability theory, and complexity theory. Students will be required to produce non-trivial programs in Python.

Artificial Intelligence

COMPSCI 182
2016 Fall
Scott Kuindersma
Tuesday, Thursday
1:00 pm to 2:29 pm

Introduction to AI focused on problems in reasoning about action and rational decision making, covering search, knowledge representation and planning. Search: heuristics, informed search and optimization; constraint satisfaction; game playing. Knowledge representation: logics, efficient logical inference, reasoning about categories. Planning: action representations and planning algorithms, hierarchical task networks, sequential decision making. Applications to multi-agent systems, robotics and natural-language processing. Discussion of relevant work in philosophy, economics, and decision theory.

Computing Foundations for Computational Science

COMPSCI 205
2017 Spring
Manjunathaiah Muniyappa
Tuesday, Thursday
2:30 pm to 3:59 pm

An applications course highlighting the use of computers in solving scientific problems. Students will be exposed to fundamental computer science concepts such as computer architectures, data structures, algorithms, and parallel computing. Fundamentals of scientific computing including abstract thinking, algorithmic development, and assessment of computational approaches. Students will learn to use open source tools and libraries and apply them to data analysis, modeling, and visualization of real scientific problems. Emphasizes parallel programming and "parallel thinking."

Systems Development for Computational Science

COMPSCI 207
2016 Fall
Rahul Dave
Monday, Wednesday
2:30 pm to 3:59 pm

This is a project-based course emphasizing designing, building, testing, maintaining and modifying software for scientific computing. Students will work in groups on a number of projects, ranging from small data-transformation utilities to large-scale systems. Students will learn to use a variety of tools and languages, as well as various techniques for organizing teams. Most important, students will learn to fit tools and approaches to the problem being solved.

Algorithms at the Ends of the Wire

COMPSCI 222
2016 Fall
Michael Mitzenmacher
Tuesday, Thursday
11:30 am to 12:59 pm

Covers topics related to algorithms for big data, especially related to networks. Themes include compression, cryptography, coding, and information retrieval related to the World Wide Web. Requires a major final project.

Advanced Algorithms

COMPSCI 224
2017 Spring
Jelani Nelson
Tuesday, Thursday
2:30 pm to 3:59 pm

Advanced algorithm design, including but not limited to amortization, randomization, online algorithms, graph algorithms, approximation algorithms, linear programming, and data structures.

Pseudorandomness

COMPSCI 225
2016 Fall
Salil Vadhan
Tuesday, Thursday
1:00 pm to 2:29 pm

Efficiently generating objects that ``look random'' despite being constructed using little or no randomness. Connections and applications to computational complexity, cryptography, and combinatorics. Pseudorandom generators, randomness extractors, expander graphs, error-correcting codes, hash functions.

Topics in Cryptography and Privacy

COMPSCI 227R
2017 Spring
Cynthia Dwork
Tuesday, Thursday
10:00 am to 11:29 am

Topics in cryptography and data privacy drawn from the theoretical computer science research literature. Focus for 2016-2017: Differential Privacy -- a mathematical framework for privacy-preserving analysis of datasets, which enables aggregate computations while preventing the leakage of individual-level information -- and statistical validity in adaptive (exploratory) data analysis.

Proofs, Beliefs and Algorithms through the lens of Sum of Squares

COMPSCI 229R
2016 Fall
Boaz Barak
Friday
10:00 am to 12:59 pm

In this graduate seminar we will cover recent research on the use of mathematical programming for problems arising from optimization, machine learning, computational complexity and more, with a particular focus on the Parrilo-Lasserre "Sum of Squares" semidefinite programming hierarchy. We will discuss both lower and upper bounds, as well as how such mathematical programs give rise to a general theory of computational difficulty, computation vs. sample size tradeoffs, and computational analogs of Bayesian probabilities.

More concretely, we will touch some of the following topics:

* Upper and lower bounds for various average case problems, including random constraint satisfaction, planted clique, and problems arising from machine learning.
* Speeding up Sum of Squares algorithms.
* Relation to Khot's Unique Games  Conjecture (UGC) and the SOS approach to refuting the UGC.
* Can SoS be optimal algorithm in some settings? What are the  candidate algorithms who could do better? In what settings might *linear* programming already be optimal? What kind of implication could such optimality entail?
* Semidefinite extension complexity, relations to communication complexity.
* Relation to statistical physics, and algorithms such as belief propagation and survey propagation.
* Relation to quantum information theory, quantum entanglement, and the log rank conjecture.
* Reducing asymptotic SoS questions to finite size via symmetry and relation to Razborov's flag algebras and Turan problems.

However, this is a fast moving research area and our plans may change as new results, as well as new understandings of old results, come to light. The course will not require much mathematical background beyond so called "mathematical maturity". However, some familiarity with notions such as convexity, linear programming duality, separation oracles, eigenvalues/eigenvectors and positive semidefiniteness, could be helpful.

Topics in Theoretical Computer Science: Coding Theory

COMPSCI 229R
2017 Spring
Madhu Sudan
Tuesday, Thursday
11:30 am to 12:59 pm

Introduces essential elements the theory of error-correcting codes. Focuses on the basic results in the area, taught from first principles. Special focus will be given on results of asymptotic or algorithmic significance. Principal topics include

    - Construction and existence results for error-correcting codes;
    - Limitations on the combinatorial performance of error-correcting codes;
    - Decoding algorithms
    - Applications to other areas of mathematics and computer science.

Lecture notes for this course from previous offerings give further details on the material covered. These may be found at http://people.csail.mit.edu/madhu/ST13/

Advanced Computer Architecture

COMPSCI 246
2017 Spring
David Brooks
Tuesday, Thursday
1:00 pm to 2:29 pm

The contents and course requirements are similar to those of Computer Science 146, with the exception that students enrolled in Computer Science 246 are expected to undertake a substantial course project.

Advanced Topics in Programming Languages

COMPSCI 252R
2016 Fall
Christos Dimoulas
Monday, Wednesday
11:30 am to 12:59 pm

Seminar course exploring recent research in programming languages. Topics vary from year to year. Students read and present research papers, undertake a research project.

Projects and Close Readings in Software Systems

COMPSCI 260R
2017 Spring
Eddie Kohler
Monday, Wednesday
1:00 pm to 2:29 pm

Modern software systems construction and analysis. Distributed systems; operating systems; networks; data centers; big data; emerging systems deployments. Close, careful reading of research papers and code, coupled with programming projects. Readability and programmability. Topic focus will change each offering. May be repeated for credit with instructor permission.

Research Topics in Operating Systems

COMPSCI 261
2016 Fall
Margo Seltzer
Tuesday, Thursday
10:00 am to 11:29 am

An introduction to operating systems research. Paper-based seminar course that introduces students to the state of the art in systems research through historical and quantitative lenses. Students will read and discuss research papers and complete a final research project.

Systems Security

COMPSCI 263
2016 Fall
James Mickens
Tuesday, Thursday
1:00 pm to 2:29 pm

This course explores practical attacks on modern computer systems, explaining how those attacks can be mitigated using careful system design and the judicious application of cryptography. The course discusses topics like buffer overflows, web security, information flow control, and anonymous communication mechanisms such as Tor. The course includes several small projects which give students hands-on experience with various offensive and defensive techniques; the final, larger project is open-ended and driven by student interests.

Big Data Systems

COMPSCI 265
2017 Spring
Stratos Idreos
Wednesday, Friday
4:00 pm to 5:29 pm

Big data is everywhere. A fundamental goal across numerous modern businesses and sciences is to be able to exploit as many machines as possible, to consume as much information as possible and as fast as possible. The big challenge is "how to turn data into useful knowledge". This is far from a simple task and a moving target as both the underlying hardware and our ability to collect data evolve. In this class, we will discuss how to design data systems and algorithms that can "scale up" and "scale out". Scale up refers to the ability to use a single machine to all its potential, i.e., to exploit properly the memory hierarchy and the multiple CPU and GPU cores. Scale out refers to the ability to use more than 1 machines (typically 100s or 1000s) effectively. This is a research oriented class. Every week we will read two modern research papers; one from the scale up area and one from the scale out area. We will use examples from several areas, including relational systems and distributed databases, graph processing systems (i.e., for social networks), key value stores, noSQL and newSQL systems as well as mobile computing. Each student will work on a semester long data systems research project (in groups of 2-4 students) which can be in any of the above areas and will be based on an open research problem.

Advanced Topics in Artificial Intelligence

COMPSCI 280R
2017 Spring
Barbara Grosz
Tuesday, Thursday
1:00 pm to 2:29 pm

Seminar course exploring research directions in artificial intelligence (AI), typically combining two or more of such areas as multi-agent systems, natural-language processing, machine learning, reasoning under uncertainty, representation systems. Topic for Spring 2017: Multi-agent systems: collaboration, coordination and loosely-coupled teamwork.

Topics in Machine Learning

COMPSCI 282R
2017 Spring
Finale Doshi-Velez,
Pierre Jacob
Monday, Wednesday
9:30 am to 10:59 am

The Ultimate Inference Bake-off... with Bayesian Nonparametrics!

This course is fundamentally about gaining a deep understanding of state-of-the-art inference techniques for probabilistic models, with the goal of also thinking of ways to address their shortcomings.  Since probabilistic models are obviously a very large area, we'll focus on Bayesian Nonparametric models.  After a brief overview of Bayesian Nonparametric models we'll begin our ultimate inference bake-off: starting with the tried-and-true techniques and going to the current state-of-the-art.  Along the way, we'll learn what works when, and where the gaps are.  Students will complete several programming assignments, lead discussion on papers, and complete a substantial final project.

Computer Science Research Seminar

COMPSCI 290HFA
2016 Fall
David Brooks
Monday
4:00 pm to 4:59 pm
Thursday
4:00 pm to 5:29 pm

This course introduces first year Computer Science PhD students to the CS colloquium series. Required for G1 PhDs in CS.

Computer Science Research Seminar

COMPSCI 290HFB
2017 Spring
David Brooks
Thursday
4:00 pm to 5:29 pm
Monday
4:00 pm to 4:59 pm

This course introduces first year Computer Science PhD students to the CS colloquium series. Required for G1 PhDs in CS.

Special Topics in Computer Science

COMPSCI 299R
2016 Fall
David Parkes

Supervision of experimental or theoretical research on acceptable computer science problems and supervision of reading on topics not covered by regular courses of instruction.

Special Topics in Computer Science

COMPSCI 299R
2017 Spring
David Parkes

Supervision of experimental or theoretical research on acceptable computer science problems and supervision of reading on topics not covered by regular courses of instruction.

SEAS Teaching Practicum

COMPSCI 365
2016 Fall
John Girash
Thursday
2:00 pm to 3:59 pm

Gain effective skills for teaching applied sciences. Topics: presentation and communication, grading and giving feedback on assignments, cognition and learning, classroom practice and student interactions. Seminar style with an emphasis on observation, practice, feedback, discussion, and reflection.