Harvard Summer School 2012

Summer Courses at Harvard


Register now

Related course

  • ISMT S-170 Human Factors in Information Systems Design

Computer Science Courses

CSCI S-1 Great Ideas in Computer Science with Java (31441)

Henry H. Leitner.

Class times: Mondays, Wednesdays, 3:15-6:15 pm. Required sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $2,700.

Online option available. 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. Students can earn Harvard Extension School degree credit for CSCI E-50a or CSCI S-1, but not both. (4 credits)

CSCI S-19 Video Field Production (32783)

Allyson Sherlock.

Class times: Tuesdays, Thursdays, 6:30-9:30 pm.

Course tuition: noncredit, undergraduate, and graduate credit $2,700.

Harvard College students see additional information.

Limited enrollment.

Through lectures and hands-on projects, students learn the equipment and techniques used in single-camera video production. Students write and produce a variety of projects that they see through from preproduction to postproduction. Final Cut Pro is used to edit student projects and DVD Studio Pro is used to create basic DVD menus. Prerequisite: experience with Macintosh computers. (4 credits)

CSCI S-75 Building Dynamic Websites (32288)

David J. Malan.

Class times: Mondays, Wednesdays, 3:15-6:15 pm. Optional sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $2,700.

Online option available. Harvard College students see additional information.

Limited enrollment.

Websites are increasingly dynamic. No longer static HTML files, pages 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 HTML 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 and also discusses enterprise-level deployments of websites, including third-party hosting, virtualization, colocation in data centers, firewalling, and load-balancing. Prerequisite: multiple years of programming experience in any language; comfort with HTML and CSS. (4 credits)

CSCI S-111 Intensive Introduction to Computer Science Using Java (32344)

Henry H. Leitner and David G. Sullivan.

Class times: Mondays-Fridays, 8:30-11:30 am. Required sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $5,400.

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 Java programming language, students learn problem-solving strategies through the development of algorithms that emphasize modern, object-oriented designs (including encapsulation and abstract data types). Related topics cover recursion and recursive backtracking, file I/O, exception handling, and graphical-user interfaces. This course also 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. 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. This course provides complete coverage of the syllabus for the advanced placement examination in computer science. Prerequisite: familiarity with precalculus. Students who have completed CSCI E-50a, E-50b, or E-119 cannot earn Extension School degree credit for S-111. (8 credits)

CSCI S-131b Communication Protocols and Internet Architectures (32287)

Leonard Evenchik.

Course tuition: noncredit, undergraduate, and graduate credit $2,700.

Online only. Required sections to be arranged. 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. The recorded lectures are from the Harvard Extension School course CSCI E-131b. Prerequisite: some programming and Internet experience. (4 credits)