Computer Science
Not all courses are available to SSP students. For example, some courses are offered only for graduate credit. Note especially any listed prerequisites.
Related Courses
- ENSC S-160 Mobile Robot and Embedded Programming
- PHYS S-123 Laboratory Electronics: Analog and Digital Circuit Design
- CSCI S-1 Great Ideas in Computer Science with Java
- CSCI S-111a Intensive Introduction to Computer Science Using Java
- CSCI S-111b Intensive Introduction to Data Structures Using Java
- CSCI S-124 Algorithms and Data Structures
- CSCI S-A Internet and Integrated Productivity Software
- CSCI S-H Fundamentals of Website Development
- CSCI S-I Communication Protocols and Internet Architectures
- CSCI S-L Advanced Website Development Using XML
- CSCI S-Y Video Field Production
CSCI S-1
Great Ideas in Computer Science with Java (31441)
(Website) (Print version)
Henry H. Leitner and David J. Malan
(4 credits: UN, GR, NC) T,Th 6-8:30 pm, 1 Story Street, Room 306. Eight-week session. Two required weekly sections to be arranged. Tuition $2,275.
Online and on-campus options. See Distance Education. Harvard College students see additional information.
This course is an introduction to the most important discoveries and intellectual paradigms in computer science, designed for students with little or no previous background. We explore problem-solving methods and algorithm development using such high-level programming languages as Java and Javascript. Students learn how to design, code, debug, and document programs using techniques of good programming style in a Linux-based environment. This course presents an integrated view of computer systems, from switching circuits and machine language through compilers and GUI design. We examine 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 invasion of privacy.
CSCI S-111a
Intensive Introduction to Computer Science Using Java (31840)
(Website) (Print version)
Henry H. Leitner
(4 credits: UN, GR, NC) M-F 8:30-11 am, Science Center, Hall A. Short session I. Required sections noon-1 pm. Tuition $2,275.
Harvard College students see additional information.
This course is a serious, fast-paced first course in computer science, designed for students who plan to work extensively with computers (for example, engineers, biologists, physicists, and economists), as well as future concentrators who plan to take more advanced courses in the field. Using the Java programming language, students learn problem-solving strategies through the development of algorithms that emphasize modern, object-oriented designs. Topics include iteration, recursion, parameter passing, array processing, file I/O, exception handling, and graphical-user interfaces. Problem sets require a minimum of 20 hours of programming each week in a Unix environment. Graduate-credit students are expected to complete additional work.
CSCI S-111b
Intensive Introduction to Data Structures Using Java (31331)
(Website) (Print version)
David G. Sullivan
(4 credits: UN, GR, NC) M-F 9:30-11:30 am, Maxwell Dworkin, Room G125. Short session II. Required sections to be arranged. Tuition $2,275.
Harvard College students see additional information.
This is a fast-paced second course in computer science using the Java programming language. The course covers fundamental data structures, including lists, stacks, queues, trees, and graphs, and it examines classic algorithms that use these structures for tasks such as sorting, searching, and data compression. Techniques for analyzing the efficiency of algorithms are also studied. Key notions of object-oriented programming, including encapsulation and abstract data types, are emphasized. Problem sets require a minimum of 20 hours of programming each week in a Unix environment. Graduate-credit students are expected to complete additional work. Together with CSCI S-111a, this course provides complete coverage of the syllabus for the Advanced placement examination in computer science. Prerequisites: CSCI S-111a or the equivalent experience with Java or C++, and familiarity with precalculus mathematics.
CSCI S-124
Algorithms and Data Structures (31717)
(Website) (Print version)
Michael Mitzenmacher
(4 credits: UN, GR, NC) T,Th 12:30-3 pm, Maxwell Dworkin, Room G135. Eight-week session. Optional sections to be arranged. Tuition $2,275.
Online and on-campus options. See Distance Education. Harvard College students see additional information.
This course explores the design and analysis of efficient algorithms and data structures. Algorithm design methods, graph algorithms, approximation algorithms, and randomized algorithms are covered. Prerequisites: B+ or higher grades in CSCI S-111b or the equivalent, and familiarity with discrete mathematics (in particular, combinatorics and proofs by induction).
CSCI S-A
Internet and Integrated Productivity Software (30030)
(Website) (Print version)
Stephan Kolitz
(4 credits: UN, GR, NC) M,W 5-7:30 pm, Sever Hall, Room 103. Eight-week session. Required sections M, W 7:30-10 pm. Tuition $2,275.
Harvard College students see additional information.
This course provides a solid foundation in end-user productivity software for word processing, spreadsheet analysis and modeling, charting, database management, presentations, and appropriate applications for interacting with the Internet. Students learn the conceptual basis of each of these tools, how they are used in organizations today, the limitations of current technology, and possible future developments. The emphasis is on using software in an integrated manner to organize, analyze, and communicate information. Students should expect to spend significant time each week, including time in sections, working on assignments in Harvard University computer labs. Prerequisite: Experience using either Windows or the Macintosh operating system and Microsoft Word, or the equivalent.
CSCI S-H
Fundamentals of Website Development (31515)
(Syllabus) (Print version)
Robert Irie
(4 credits: UN, GR, NC) T,Th 6-8:30 pm, Harvard Hall, Room 202. Eight-week session. Optional sections to be arranged. Tuition $2,275.
Harvard College students see additional information.
This course provides a foundation for developing dynamic websites and web applications. The first part covers the front-end aspects of web development: creating, designing, and publishing content using HTML, CSS, and Javascript. The second covers the back-end aspects: using programming languages to generate, manipulate, and manage content (CGI, cookies, server-side scripting) and accessing a database using SQL for common website tasks (forms, user registration). While this course covers web development concepts that are applicable to most popular platforms, it is significantly hands-on using the web application server Zope and the content management system Plone. A major component is a final project involving implementing a dynamic website. Prerequisite: Familiarity with basic programming language concepts.
CSCI S-I
Communication Protocols and Internet Architectures (31516)
(Website) (Print version)
Leonard Evenchik
(4 credits: UN, GR, NC) M,W 6-8:30 pm, 1 Story Street, Room 304. Eight-week session. Optional sections to be arranged. Tuition $2,275.
Harvard College students see additional information.
This course provides a structured technical approach to the design, analysis, and implementation of Internet protocols and network architectures. We study various protocols, including TCP/IP, WWW/HTTP, LAN protocols, and client/server protocols. The course also discusses new areas of work, including voice and video over the Internet, network QoS, and enterprise network management. Prerequisites: Some programming and Internet experience.
CSCI S-L
Advanced Website Development Using XML (31683)
(Print version)
David P. Heitmeyer
(4 credits: UN, GR, NC) T,Th 6-8:30 pm, Sever Hall, Room 102. Eight-week session. Required sections to be arranged. Tuition $2,275.
Harvard College students see additional information.
This course focuses on using XML technologies in website development. Fundamental technologies relating to XML, such as XPath, XSL, XSLT, XSL-FO, XML Schemas, DTDs, SAX, and DOM, are emphasized. In addition, specific markup languages relevant to website development, such as XHTML, SVG, RSS, XHTML Mobile Profile, WML, and DocBook, are covered. These technologies, coupled with the open-source XML publishing framework Cocoon, are used to develop dynamic, database-driven sites that deliver content in a variety of media types (XHTML, text, PDF, graphics) for a variety of devices (desktops, handhelds, cellular phones) and audiences. Prerequisites: CSCI S-H or the equivalent. Experience with a programming language.
CSCI S-Y
Video Field Production (31872)
(Syllabus) (Print version)
Christine Dehne
(4 credits: UN, GR, NC) M,W 6-8:30 pm, 53 Church Street, Room 104. Eight-week session. Required sections W 8:30-9:30 pm. Tuition $2,275. Limited enrollment.
Harvard College students see additional information.
Through hands-on projects, students learn the equipment and techniques used in single-camera field production and postproduction. Students write and produce a variety of projects, edit them in digital nonlinear mode, and then burn them to DVD for review in class. Prerequisite: Experience with Macintosh computers.