Computer Science

Related Courses

  • APMA S-111 Introduction to Scientific Computing
  • ENSC S-160 Mobile Robot and Embedded Programming
  • ISMT S-110 Internet and Integrated Productivity Software for Managers
  • PHYS S-123 Laboratory Electronics: Analog and Digital Circuit Design

CSCI S-1 Great Ideas in Computer Science with Java (31441)
(Website) (Printable 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,350.
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 the high-level programming languages Java and Scratch. 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 hardware architecture and data communication systems through compilers and cryptography. 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-12 Fundamentals of Website Development (32286)
(Syllabus) (Printable 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,350.
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-24 Video Editing and Digital Design (32303)
(Syllabus) (Printable version)
Allyson Sherlock
(4 credits: UN, GR, NC) T,Th 12:30-3 pm, 53 Church Street, Room 104. Eight-week session. Tuition $2,350. Limited enrollment.
Harvard College students see additional information.

This course serves as an introduction to the art of video post-production. We explore the theory and practice of various editing styles. Through demonstrations and hands-on experience, students learn advanced editing techniques with an in-depth examination of Final Cut Pro. To further enhance projects, students create basic 2-D graphics and interactive DVD menus using Motion and DVD Studio Pro. Strong emphasis is placed on post-production techniques that improve the quality of your projects. Footage is provided for class exercises as students learn the various software programs. Prerequisite: Previous Final Cut Pro experience.

CSCI S-26 2-D Animation for Artists (32289)
(Website) (Printable 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,350. Limited enrollment.
Harvard College students see additional information.

This course discusses animation as an art form. The illusion of motion, life, and action is studied through flip books, cell animation, and the latest software. Focusing on artistic excellence, students use the Adobe CS3 suite, Final Cut Pro, and Audacity to experiment with type, character, and image animation. Students also learn basic audio recording and editing techniques. Prerequisite: Experience with Macintosh computers.

CSCI S-75 Building Dynamic Websites (32288)
(Website) (Printable version)
David J. Malan
(4 credits: UN, GR, NC) M,W 6-8:30 pm, Sever Hall, Room 202. Eight-week session. Optional sections to be arranged. Tuition $2,350.
Harvard College students see additional information.

Today's websites are increasingly dynamic. Pages are no longer static HTML files but are instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course discusses issues of security, scalability, and cross-browser support. Prerequisite: Prior programming experience in any language.

CSCI S-111a Intensive Introduction to Computer Science Using Java (31840)
(Syllabus) (Printable 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,350.
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) (Printable version)
David G. Sullivan
(4 credits: UN, GR, NC) M-F 9:30-11:30 am, Science Center, Hall A. Short session II. Required sections to be arranged. Tuition $2,350.
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) (Printable version)
Michael Mitzenmacher
(4 credits: UN, GR, NC) T,Th 12:30-3 pm, Maxwell Dworkin, Room G115. Eight-week session. Optional sections to be arranged. Tuition $2,350.
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-131b Communication Protocols and Internet Architectures (32287)
(Website) (Printable 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,350.
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 high bandwidth wireless networks. Prerequisites: Some programming and Internet experience.

CSCI S-253 Developing Web-based Database Applications (32308)
(Website) (Printable version)
Maria R. Garcia
(4 credits: UN, GR, NC) M,W 6-8:30 pm, Maxwell Dworkin, Room G135. Eight-week session. Tuition $2,350.

This course provides the concepts and skills necessary to design and develop web-based database applications. Through hands-on projects, students design, build, populate, query, and write transactions for a relational database using SQL and PL/SQL in Oracle, and then develop a client application to access their database using ColdFusion. Prerequisites: Programming experience, preferably in an object-oriented programming language such as C++ or Java; familiarity with Unix/Linux; and the ability to create simple HTML pages.