Computer Science
Also see the Master of Liberal Arts in Information Technology and the Certificate in Applied Sciences.
Courselist
- CSCI E-1 Understanding Computers and the Internet (Fall)
- CSCI E-2 Bits (Spring)
- CSCI E-11 Digital Multimedia Art (Spring)
- CSCI E-12 Fundamentals of Website Development (Spring)
- CSCI E-13 Practical Perl (Fall)
- CSCI E-14 Understanding and Developing Multimedia (Fall)
- CSCI E-19 Video Field Production (Fall)
- CSCI E-24 Advanced Video Field Production and Editing (Spring)
- CSCI E-50a Introduction to Computer Science Using Java I (Fall)
- CSCI E-50b Introduction to Computer Science Using Java II (Spring)
- CSCI E-113 Introduction to C, Unix/Linux, and CGI Programming (Fall)
- CSCI E-119 Data Structures (Fall)
- CSCI E-124 Algorithms and Data Structures (Spring)
- CSCI E-131b Communication Protocols and Internet Architectures (Fall, Spring)
- CSCI E-132 Advanced Topics in Data Networking Protocols and Network Architectures (Spring)
- CSCI E-138 Internet Technologies (Fall)
- CSCI E-149 Computational Techniques for Computer Games (Spring)
- CSCI E-153 Web Development Using XML (Fall)
- CSCI E-160 Java for Distributed Computing (Fall, Spring)
- CSCI E-162 Distributed and Enterprise Computing (Spring)
- CSCI E-166 Web Services and Service-Oriented Architecture (Spring)
- CSCI E-170 Security, Privacy, and Usability (Fall)
- CSCI E-180 Building Programs with Graphical Interfaces (Spring)
- CSCI E-200 Topics in Computational Biology (Fall)
- CSCI E-207 Introduction to Formal Systems and Computation (Fall)
- CSCI E-215 Unix/Linux Systems Programming (Spring)
- CSCI E-220 Artificial Intelligence (Fall)
- CSCI E-225 Object-Oriented Programming in C++ (Fall)
- CSCI E-234 Introduction to Computer Graphics (Fall)
- CSCI E-237 Programming Microsoft .NET (Fall)
- CSCI E-247 Software Design: Principles, Models, and Patterns (Fall)
- CSCI E-253 Developing Web-based Database Applications (Fall)
- CSCI E-254 Oracle 10g: Programming with PL/SQL (Fall)
- CSCI E-256 Oracle Database Administration (Spring)
- CSCI E-259 XML with J2EE (Spring)
- CSCI E-268 Database and Information Management Systems (Spring)
- CSCI E-275 Software Architecture and Engineering (Spring)
- CSCI E-282 Statistical Techniques for Audio and Video Processing (Fall)
- CSCI E-287 Computer Architecture (Fall)
- CSCI E-295 Compiler Design and Implementation (Spring)
CSCI E-1
Understanding Computers and the Internet (11322)
(Website) (Print View)
David J. Malan, SM.
4 units. Noncredit and undergraduate credit $1,600.
Thursday, Sept. 22, 5:30-7:30 pm, Harvard Hall, Room 104. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. Lecture 2 video.
This course is all about understanding: understanding what's going on inside your computer when you flip on the switch, why tech support has you constantly rebooting your computer, how everything you do on the Internet can be watched by others, and how your computer can become infected with a worm just by turning it on. In this course we demystify computers and the Internet, along with their jargon, so that students understand not only what they can do with each but also how it all works and why. Students leave this course armed with a new vocabulary and equipped for further exploration of computers and the Internet. Topics include hardware, software, the Internet, multimedia, security, website development, programming, and dot-coms. Through optional hands-on sections and workshops, local students have opportunities to dissect as well as upgrade a computer with additional hardware, search the Internet more effectively, build a wireless network, create digital images, eradicate spyware, and design webpages. Problem sets offer online students similar opportunities. This course is designed both for those with little, if any, computer experience and for those who use a computer every day.
Top of page
CSCI E-2
Bits (22388)
(Website) (Print View)
Harry R. Lewis, PhD, Harvard College Professor and Gordon McKay Professor of Computer Science, Harvard University. Hal Abelson, PhD, Class of 1922 Professor of Computer Science and Engineering, Massachusetts Institute of Technology.
4 units. Noncredit, undergraduate, and graduate credit $1,600.
Spring
term
Online only, beginning Feb. 2. See the Distance Education website. Required sections to be arranged. Lecture 1 video. See course website for all other lectures.
Information as quantity, resource, and property. Application of quantitative methods to understanding how information technologies inform issues of public policy, regulation, and law. How are music, images, and telephone conversations represented digitally, and how are they moved reliably from place to place through wires, glass fibers, and the air? Who owns information, who owns software, what forms of regulation and law restrict the communication and use of information, and does it matter? How can personal privacy be protected at the same time that society benefits from communicated or shared information? Mathematical methods are developed in the context of course material. No mathematical background beyond high school algebra is required. The recorded lectures are from the Harvard Faculty of Arts and Sciences course Quantitative Reasoning 48. Prerequisite: students must view sample online lectures before they register.
Top of page
CSCI E-11
Digital Multimedia Art (22124)
(Website) (Print View)
Roy Pardi, MFA, Multimedia Developer.
4 units. Noncredit and graduate credit $1,600. Limited enrollment.
Thursday, Feb. 2, 5:30-7:30 pm, 53 Church Street, Room 104. Optional sections Thursday, 7:35-8:35 pm.
Spring
term
This course examines the history, theory, and practice of digital multimedia as an art form. We investigate the current state of multimedia art practice through the work of numerous artists and theorists. The emphasis is on understanding the medium and finding intelligent and effective solutions to art-making problems. In the process, students receive a thorough exposure to timeline-based authoring and Actionscript programming in Macromedia Flash. Collaboration is encouraged, and students are expected to share knowledge and expertise. Evaluation is based on participation in discussion and critiques, presentations, and quality of artwork produced. The software tools used are Macromedia Flash, Adobe Photoshop, along with various sound and graphics editing programs. Prerequisite: experience with the Macintosh or Windows operating systems.
Top of page
CSCI E-12
Fundamentals of Website Development (21144)
(Website) (Print View)
David P. Heitmeyer, AM, Manager of Web and Applications Development, Faculty of Arts and Sciences Computer Services, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Tuesday, Jan. 31, 5:30-7:30 pm, Sever Hall, Room 113. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video.
This course provides a foundation in several facets of establishing and maintaining a website. The first part of the course is devoted to creating, designing, and publishing content on the Web (XHTML, HTML, CSS, JavaScript, GIF, JPEG, PNG, PDF). The second part of the course covers configuring and maintaining a web server, including HTTP, access control, and security. Dynamically generated websites and database-driven websites are discussed (CGI, PHP, JSP). In addition, tools and techniques for maintaining a website, such as log analysis, version control, document validation, and page and site analysis, are covered. Prerequisites: CSCI E-1 or equivalent experience.
Top of page
CSCI E-13
Practical Perl (11973)
(Website) (Print View)
Justin L. Deri, BA, Senior Software Engineer, iCommons, Central Administration Information Technology, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Monday, Sept. 19, 5:30-7:30 pm, Sever Hall, Room 102. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1 video. Lecture 2 video.
Perl is described as the Swiss army knife of programming languages. This course emphasizes practical applications of Perl: data manipulation and analysis, report generation, web programming, and integration of databases for use in these applications. Emphasis is on writing idiomatic, correct, and maintainable Perl in a Unix environment. Other topics may include the Apache web server and its mod_perl extension, XML, HTML::Mason, and performance analysis. Prerequisites: confidence in programming (CSCI E-50b or equivalent experience in any high-level language such as C++, Pascal, or Java), working understanding of HTML (CSCI E-12 or permission of instructor), and experience with command-line-based operating systems.
Top of page
CSCI E-14
Understanding and Developing Multimedia
4 units. Noncredit and graduate credit $1,975.
Fall term, section 1 (11200) (Website) (Print View): Scott Traylor, BA, President, 360KID. Tuesday, Sept. 20, 5:30-7:30 pm, 53 Church Street, Room L01. Optional sections Tuesday, 7:35-9:35 pm. Online and on-campus options. See the Distance Education website. Lecture 1 video. Lecture 2 video. Limited enrollment.
Fall term, section 2 (12616) (Website) (Print View): Scott Traylor, BA, President, 360KID. Online only. See the Distance Education website. Optional sections to be arranged. Students must view sample online lectures before they register. Lecture 1 video. Lecture 2 video.
Creating dynamic media that communicates effectively through the use of sound, images, motion, text, and interactivity is a process that involves skill, planning, and practice. In this course, students examine the concepts and tools necessary for producing their own interactive projects. A number of professional authoring tools are used to create student projects, including Macromedia Flash, Sound Forge, Adobe Photoshop, and Illustrator. Many development and user-related issues surrounding the interactive industry are discussed, including the definition of target audience and playback conditions, defining the user experience before building, narrowband versus broadband delivery, and successful interface development and compression formats. Prerequisites: a solid understanding of the Macintosh and Windows operating systems; basic understanding of any paint or draw program. A basic understanding of programming is encouraged but not required.
Top of page
CSCI E-19
Video Field Production (12560)
(Syllabus) (Print View)
Christine Dehne, MFA, Adjunct Lecturer in Visual and Media Arts, Emerson College.
4 units. Noncredit and graduate credit $1,975. Limited enrollment.
Wednesday, Sept. 21, 5:30-7:30 pm, 53 Church Street, Room 104. Required sections Wednesday, 7:35-8:35 pm.
Fall
term
Through lectures and 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, which are edited in digital nonlinear mode and then downloaded for review in class. Prerequisite: experience with Macintosh computers.
Top of page
CSCI E-24
Advanced Video Field Production and Editing (22374)
(Syllabus) (Print View)
Christine Dehne, MFA, Adjunct Lecturer in Visual and Media Arts, Emerson College.
4 units. Noncredit and graduate credit $1,975. Limited enrollment.
Wednesday, Feb. 1, 5:30-7:30 pm, 53 Church Street, Room 104. Required sections Wednesday, 7:35-8:35 pm.
Spring
term
Using advanced techniques in lighting and camera manipulation, students create a variety of video projects. Students get experience writing and storyboarding to develop their concepts in preproduction. During the production process students learn valuable techniques for successful production, direction, and camera operation. To achieve polished videos students explore the advanced features of Final Cut Pro in postproduction. Students also learn to author DVDs using DVD StudioPro. Prerequisite: CSCI E-19 or equivalent.
Top of page
CSCI E-50a
Introduction to Computer Science Using Java I (10701)
(Website) (Print View)
Henry H. Leitner, PhD, Senior Lecturer on Computer Science, Harvard University.
4 units. Noncredit, undergraduate, and graduate credit $1,600.
Monday, Sept. 19, 5:30-7:30 pm, Science Center, Hall D. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. Lecture 2 video.
Intended for students with no previous programming background, this course introduces problem-solving methods and algorithm development using the high-level programming language Java. Students learn how to design, code, debug, and document programs using modern engineering techniques in the Unix environment. Related topics include programming using iterative constructs, the basic aspects of arrays and recursion, string manipulation, parameter passing, information hiding and encapsulation using classes, and the functional decomposition of methods to enable object-oriented design. Some applications are chosen for their relevance to more advanced coursework in computer science while others involve nonscientific and business-related areas.
Top of page
CSCI E-50b
Introduction to Computer Science Using Java II (20659)
(Website) (Print View)
Henry H. Leitner, PhD, Senior Lecturer on Computer Science, Harvard University.
4 units. Noncredit, undergraduate, and graduate credit $1,600.
Monday, Jan. 30, 5:30-7:30 pm, Science Center, Hall A. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video.
A second course in object-oriented programming methods using Java that begins with the implementation of abstract data types using classes, objects, and overloaded methods. Other topics include strings, multidimensional arrays, vectors, and linked lists; streams and file I/O; recursion; exception handling; threads and event-driven programming; and graphical user interface design using the Swing classes. The course also introduces the RISC machine architecture and aspects of compilers and operating systems. Programming exercises are conducted in both Unix and PC-based environments. Prerequisite: CSCI E-50a or equivalent experience in a high-level programming language such as C, C++, or Java.
Top of page
CSCI E-113
Introduction to C, Unix/Linux, and CGI Programming (10033)
(Website) (Print View)
Bruce Molay, AB, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Wednesday, Sept. 21, 7:35-9:35 pm, Science Center, Hall A. Optional sections to be arranged.
Fall
term
Designed for students with some programming experience, this course provides a rigorous introduction to writing and using software tools in the Unix and GNU/Linux programming environments to build command-line and web-based programs. The curriculum covers the C programming language, Unix shell scripts, HTML, and CGI programming. Topics include text processing, memory management, files and pipes, and processes and protocols. Students write programs to analyze data and generate reports, use shell scripts to combine tools into applications and interactive webpages, and use CGI to provide web access to databases. Prerequisites: a working knowledge of a structured programming language such as C++, Java, or Pascal; a data structures course such as CSCI E-119.
Top of page
CSCI E-119
Data Structures (12508)
(Website) (Print View)
David G. Sullivan, PhD, Consultant.
4 units. Noncredit, undergraduate, and graduate credit $1,600.
Wednesday, Sept. 21, 7:35-9:35 pm, Sever Hall, Room 213. Required sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. Lecture 2 video.
A survey of fundamental data structures for information processing, including lists, stacks, queues, trees, and graphs. The course explores the implementation of these data structures (both array-based and linked representations) and examines classic algorithms that use these structures for tasks such as sorting, searching, and text compression. The Java programming language is used to demonstrate the topics discussed; and key notions of object-oriented programming, including encapsulation and abstract data types, are emphasized. Prerequisites: a good working knowledge of Java (CSCI E-50b or equivalent), familiarity with precalculus (MATH E-10 or equivalent).
Top of page
CSCI E-124
Algorithms and Data Structures (21462)
(Website) (Print View)
Michael Mitzenmacher, PhD, Gordon McKay Professor of Computer Science, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Spring
term
Online only, beginning Feb. 3. See the Distance Education website. Optional sections to be arranged. Lecture 1 video. See course website for all other lectures.
A rigorous course on the design and analysis of efficient algorithms and their associated data structures. Algorithm design methods, graph algorithms, approximation algorithms, and randomized algorithms are covered. The recorded lectures are from the Harvard Division of Engineering and Applied Sciences course Computer Science 124. Prerequisites: CSCI E-119 or equivalent and sound knowledge of discrete mathematics (MATH E-104 or equivalent). Students must view sample online lectures before they register.
Top of page
CSCI E-131b
Communication Protocols and Internet Architectures
4 units. Noncredit and graduate credit $1,600.
Fall term (11353) (Website) (Print View): Leonard Evenchik, SM, Lecturer in Extension, Harvard University. Monday, Sept. 19, 7:35-9:35 pm, Harvard Hall, Room 104. Optional sections to be arranged. Online and on-campus options. See the Distance Education website. Lecture 1 video. Lecture 2 video.
Spring term (21387) (Website) (Print View): Leonard Evenchik, SM, Lecturer in Extension, Harvard University. Online only, beginning Jan. 30. See the Distance Education website. Optional sections to be arranged. Students must view sample online lectures before they register.
Networks are now too large, complex, and diverse to be built on an ad hoc basis. This course provides a structured approach to the design, analysis, and implementation of networks and protocols. We study various protocols, including TCP/IP; WWW/HTTP; ATM; multimedia protocols for voice, data, and video; and the IEEE 802 LAN protocol suite. In each case, the protocol's functions and the underlying reference model are discussed. LAN architecture and design, internetworking using switches and routers, and the design and analysis of both private networks and the Internet are presented. The course discusses new areas of work, including network quality of service, voice and video on the Internet, policy-based networks, and broadband/gigabit networks. Prerequisites: programming or computer architecture experience and a basic understanding of the principles of communication. Lecture 1 video.
Top of page
CSCI E-132
Advanced Topics in Data Networking Protocols and Network Architectures (21257)
(Website) (Print View)
Scott Bradner, University Technology Security Officer, Office of the Provost, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Friday, Feb. 3, 5:30-7:30 pm, Science Center, Room 109.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. See course website for all other lectures.
This course provides an in-depth exploration of a number of topics important in the design and operation of modern IP data networks--both corporate and Internet service provider. It is intended for people who are involved in the details of data network planning, design, or support. Topics include the architecture of the Internet, IPv4/IPv6, TCP, network management, Internet telephony, quality of service, network security, routing theory and practice, wireless networking, and MPLS. Prerequisite: a basic understanding of data networks or CSCI E-131b.
Top of page
CSCI E-138
Internet Technologies (12610)
(Website) (Print View)
Mema Roussopoulos, PhD, Assistant Professor of Computer Science on the Gordon McKay Endowment, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Fall
term
Online only, beginning Sept. 20. See the Distance Education website. Required sections to be arranged. Lecture 1 video. Lecture 2 video.
This course is a survey of current authoring, distributing, and browsing technologies used in the Internet. Topics include HTTP, DNS, and TCP/IP overview; HTML techniques for text, links, forms, and images; client/server paradigm; server-side programming; CGI scripts; dynamic content with Java; web browsers and web servers; web caching and replication. The recorded lectures are from the Harvard Division of Engineering and Applied Sciences course Computer Science 164. Prerequisites: CSCI E-119 and fluency in the C programming language. Students must view sample online lectures before they register.
Top of page
CSCI E-149
Computational Techniques for Computer Games (22425)
(Syllabus) (Print View)
Bruce Blumberg, PhD, Senior Scientist, Blue Fang Games.
4 units. Noncredit and graduate credit $1,600.
Monday, Jan. 30, 7:35-9:35 pm, Harvard Hall, Room 103.
Spring
term
How do nonplayer characters navigate from point A to point B in complex simulated environments? How do squads of nonplayer characters coordinate their movements so as to surround a hapless player? How do characters decide what to do? How does the computer game learn about the playing style of the player and adapt the game play accordingly? These are the kinds of questions that motivate our exploration of the key computational techniques that underlie today's advanced computer games. Topics include data structures, graph-based search, finite-state machines, simple machine learning, scripting, and user modeling. The course is taught using a 3-D simulation system called breve. Prerequisite: CSCI E-119 or equivalent.
Top of page
CSCI E-153
Web Development Using XML (12151)
(Website) (Print View)
David P. Heitmeyer, AM, Manager of Web and Applications Development, Faculty of Arts and Sciences Computer Services, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Monday, Sept. 19, 5:30-7:30 pm, Harvard Hall, Room 104. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. Lecture 2 video.
This course focuses on using XML technologies in website development. The first part of the course covers fundamental XML technologies (XML, XPath, XSL, XSLT, XSLFO, XML Schemas, DTDs, and DOM) and open-source, web-based XML publishing frameworks such as Cocoon. The second part of the course covers specific markup languages (applications of XML) relevant to website development (XHTML, SVG, RDF, RSS, DocBook, and WML), with an emphasis on developing dynamic, data-driven sites that deliver content in a variety of media types (HTML, text, PDF, graphics) to a variety of devices (desktop and handheld computers, WAP-enabled cellular phones) and audiences. In addition, XML-based web services are surveyed. Prerequisite: CSCI E-12 or equivalent experience.
Top of page
CSCI E-160
Java for Distributed Computing
4 units. Noncredit and graduate credit $1,600.
Fall term (11838) (Website) (Print View): Charles M. Sawyer, Jr., MS, Consulting Software Engineer and Project Consultant, B. B. King Museum. Online only, beginning Sept. 20. See the Distance Education website. Required sections to be arranged. Students must view sample online lectures before they register. Lecture 1 video. Lecture 2 video.
Spring term (22075) (Website) (Print View): Charles M. Sawyer, Jr., MS, Consulting Software Engineer and Project Consultant, B. B. King Museum. Tuesday, Jan. 31, 7:35-9:35 pm, Science Center, Hall A. Required sections to be arranged. Online and on-campus options. See the Distance Education website. Lecture 1 video.
This course comprises a rigorous study of the core Java programming language followed by an inquiry into its most promising area of application, building distributed systems. The first part covers classes and inheritance, abstract classes, interfaces, exceptions, threads, packages, events, reflection, and Javadoc. The second part explores the use of Java to implement three-tier architectured systems. By providing support for security, networking, and threads as part of the language specification, and by offering complete portability through its virtual machine, Java is the ideal language for building applications whose objects are distributed on a network. Both major distributed object protocols--Common Object Request Broker Architecture (CORBA) and Java's Remote Method Invocation (RMI)--are surveyed. Prerequisite: substantial experience with another programming language, preferably an object-oriented language.
Top of page
CSCI E-162
Distributed and Enterprise Computing (21510)
(Website) (Print View)
James Farley, MS, Technology Solutions Architect, Harvard Business School.
4 units. Noncredit and graduate credit $1,600.
Wednesday, Feb. 1, 5:30-7:30 pm, Harvard Hall, Room 201. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. See course website for all other lectures.
This course offers an in-depth study of the practice of building enterprise systems within the Java programming environment and Java 2 Enterprise Edition (J2EE) framework. The course progresses through a series of units (basic tools of the trade, distributed objects, data and directory services, distributed components), covering many of the key application programming interfaces (APIs) and tools used to develop enterprise applications. The APIs covered include servlets, JavaServer Pages, Remote Method Invocation, Enterprise JavaBeans, XML, JDBC, and Java naming and directory interface. Programming assignments allow students to gain hands-on experience with these tools of the trade, and the final project provides a chance to engage in a more involved system design using these tools. Prerequisites: CSCI E-160 or equivalent; strong Java programming experience. Experience with web technologies (HTML, CGI) and relational database technologies (SQL, DDL) is beneficial.
Top of page
CSCI E-166
Web Services and Service-Oriented Architecture (22104)
(Syllabus) (Print View)
Zoran B. Djordjevic, PhD, Principal Software Architect, NisHava, Inc.
4 units. Noncredit and graduate credit $1,600.
Friday, Feb. 3, 5:30-7:30 pm, Science Center, Hall E. Optional sections Friday, 7:35-9:35 pm.
Spring
term
This course covers the architecture and design of web services, software components that transform the most versatile and disparate applications into cooperative distributed systems. Web services can be located by other services in UDDI registries and communicate through the standard XML-based protocol, SOAP. We discuss the role web services play in service-oriented architecture (SOA). SOA is an architectural style based on loosely coupled software agents utilizing each other's capabilities. Web services are natural construction units for SOA systems. Relevant XML and Java APIs and integration technologies (application servers, database and messaging systems) are introduced. Prerequisites: familiarity with Java and XML.
Top of page
CSCI E-170
Security, Privacy, and Usability
4 units. Noncredit and graduate credit $1,600.
Fall term, section 1 (12334) (Website) (Print View): Simson L. Garfinkel, PhD, Postdoctoral Fellow, Center for Research on Computation and Society, Harvard University. Monday, Sept. 19, 5:30-7:30 pm, 53 Church Street, Room L01. Online and on-campus options. See the Distance Education website. Lecture 1 video. Lecture 2 video. Limited enrollment.
Fall term, section 2 (12633) (Website) (Print View): Simson L. Garfinkel, PhD, Postdoctoral Fellow, Center for Research on Computation and Society, Harvard University. Online only. See the Distance Education website. Students must view sample online lectures before they register. Lecture 1 video. Lecture 2 video.
This course introduces computer security as it affects desktop computing, networks, and handheld devices. Special attention is paid to the policy implications of security technologies, including privacy policies, surveillance, and digital rights management. Topics include cryptography, forensics, human factors, watermarking, spyware, and privacy-protecting technology. Students are expected to read a substantial number of research papers, participate in classroom and online discussions, and complete a publishable research project. Prerequisites: knowledge of operating systems and basic programming.
Top of page
CSCI E-180
Building Programs with Graphical Interfaces (22362)
(Website) (Print View)
Simson L. Garfinkel, PhD, Postdoctoral Fellow, Center for Research on Computation and Society, Harvard University.
4 units. Noncredit and graduate credit $1,600. Limited enrollment.
Thursday, Feb. 2, 5:30-7:30 pm, 51 Brattle Street, Room 321.
Spring
term
In this course we learn how to build programs that have graphical user interfaces with a variety of different GUI toolkits. We learn the strengths of different kits and languages, explore strategies for building cross-platform applications, incorporate remote procedure call systems based on XML/RPC, and look at techniques for making programs smarter with lightweight artificial intelligence. Required work includes several problem sets and a substantial term project. Prerequisite: fluency in C, C++, Python, or Java.
Top of page
CSCI E-200
Topics in Computational Biology (12617)
(Syllabus) (Print View)
Geoff Cohen, PhD, Consultant.
4 units. Noncredit and graduate credit $1,600.
Wednesday, Sept. 21, 7:35-9:35 pm, Science Center, Room 109.
Fall
term
Computers have transformed the practice of biology. New tools for discovery include genomics, cellular network models, simulations, phylogenic algorithms, and linguistic methods for gene discovery. This course surveys these and other technologies, as well as the cultural and philosophical challenges that they raise for biology. This course is designed both for biologists, as a way to broaden their understanding and appreciation of available research techniques, and for computer scientists, as an introduction to a rich source of research problems. Prerequisites: BIOL E-1a and CSCI E-119 or equivalents.
Top of page
CSCI E-207
Introduction to Formal Systems and Computation (12161)
(Website) (Print View)
Salil P. Vadhan, PhD, Thomas D. Cabot Associate Professor of Computer Science, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Fall
term
Online only, beginning Sept. 21. See the Distance Education website. Required sections to be arranged. Lecture 1 video. Lecture 2 video.
A rigorous introduction to formal systems and the theory of computation. Elementary treatment of automata, formal languages, computability, uncomputability, computational complexity, NP-completeness, and mathematical logic. The recorded lectures are from the Harvard Division of Engineering and Applied Sciences course Computer Science 121. Prerequisites: CSCI E-119 and MATH E-104 with final grades of B+ or higher, or equivalents. Students must view sample online lectures before they register.
Top of page
CSCI E-215
Unix/Linux Systems Programming (20034)
(Website) (Print View)
Bruce Molay, AB, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Monday, Jan. 30, 7:35-9:35 pm, Science Center, Hall A. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video.
An introduction to the fundamental structure and services of the Unix and Linux operating systems. The course combines theory with programming at the system call level. Topics include files and directories, device control, terminal handling, processes and threads, signals, pipes, and sockets. Examples and exercises include directory management utilities, a shell, and a web server. Prerequisites: solid knowledge of C or C++ and a data structures course such as CSCI E-119; some experience using Unix helpful.
Top of page
CSCI E-220
Artificial Intelligence (11420)
(Website) (Print View)
David Albert, MS, Technology Specialist, Cambridge Public Schools.
4 units. Noncredit and graduate credit $1,600.
Thursday, Sept. 22, 5:30-7:30 pm, Science Center, Room B-10. Required sections Thursday, 7:35-8:35 pm.
Fall
term
Artificial intelligence (AI) is the study of computer systems that appear to behave with some degree of human intelligence. This survey course covers major background and state-of-the-art topics in AI: game playing, natural language understanding, theorem proving, computer vision, genetic algorithms, and neural networks. Other topics in machine learning, planning, and expert systems are covered if time permits. The LISP programming language is introduced and used for some programming assignments; others may be completed in Java or C. Prerequisite: CSCI E-50b or equivalent programming experience.
Top of page
CSCI E-225
Object-Oriented Programming in C++ (11988)
(Website) (Print View)
Kenneth J. Basye, PhD, Lecturer in Extension, Harvard University and Senior Research Engineer, Scansoft, Inc.
4 units. Noncredit and graduate credit $1,600.
Thursday, Sept. 22, 7:35-9:35 pm, Science Center, Room 109. Optional sections to be arranged.
Fall
term
This course is designed to enable C programmers to become proficient in C++. Topics include class definitions, overloading functions and operators, access control, single and multiple inheritance, virtual functions and abstract classes, templates, exceptions, and the standard template library. Useful applications such as smart pointers and reference counting are also discussed. Prerequisites: a working knowledge of C, including structures and pointers, is assumed; substantial experience in C is preferred.
Top of page
CSCI E-234
Introduction to Computer Graphics (11692)
(Website) (Print View)
Hanspeter Pfister, PhD, Associate Director and Senior Research Scientist, Mitsubishi Electric Research Laboratories.
4 units. Noncredit and graduate credit $1,600. Limited enrollment.
Wednesday, Sept. 21, 7:35-9:35 pm, 53 Church Street, Room L01.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. Lecture 2 video.
This course introduces important data structures and algorithms that are useful for creating images on a computer, providing students with sufficient background to write substantial computer graphics applications. It begins by reviewing the mathematical tools and concepts used in computer graphics. We then use OpenGL, the industry standard API for computer graphics, to write full-fledged applications and to introduce 3-D transformations and projections, shading, modeling hierarchies, and animation. We also use ray tracing, a popular image-rendering technique, to introduce important computer graphics concepts such as geometric modeling, illumination, texture mapping, and antialiasing. This course does not cover the use of graphic design applications such as Photoshop and AutoCAD; it is a programming class. Prerequisite: CSCI E-119 or equivalent.
Top of page
CSCI E-237
Programming Microsoft .NET (12121)
(Website) (Print View)
David S. Platt, ME, President, Rolling Thunder Computing, Inc.
4 units. Noncredit and graduate credit $1,600.
Monday, Sept. 19, 7:35-9:35 pm, Maxwell Dworkin, Room G115. Optional sections Monday, 6-7 pm.
Fall
term
This survey course covers the complete range of capabilities in Microsoft's .NET operating system. Topics include common language runtime and object model, ASP.NET, XML web services, data access, threading, remoting, and reflection. Prerequisite: one year of professional Windows programming experience.
Top of page
CSCI E-247
Software Design: Principles, Models, and Patterns (12070)
(Website) (Print View)
William B. Robinson, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Monday, Sept. 19, 7:35-9:35 pm, Science Center, Room 110. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. Lecture 2 video.
This course approaches object-oriented software design from three perspectives: the software engineering principles that enable development of quality software, the modeling of software components using the Unified Modeling Language (UML), and the application of design patterns as a means of reusing design models that are accepted best practices. There is at least one significant modeling exercise and a set of programming assignments that require the application of design principles and good programming technique. Students are expected to write a detailed description of the design for each of their programs, incorporating UML models as appropriate. Students implement their programs in the Java programming language. Prerequisites: CSCI E-119 or equivalent and proficiency in Java.
Top of page
CSCI E-253
Developing Web-based Database Applications (12465)
(Website) (Print View)
Maria R. Garcia, ALM, Assistant Professor of Graduate Studies, Franklin Pierce College.
4 units. Noncredit and graduate credit $1,600.
Tuesday, Sept. 20, 7:35-9:35 pm, Sever Hall, Room 213. Optional sections to be arranged.
Fall
term
Web-based applications offer the advantages of workstation productivity and ease of use with the power and sophistication of relational database servers. This course provides the concepts and skills necessary to design and develop web-based database applications. Students build a working database application using Oracle and a client application using ColdFusion to serve the information needs of some enterprise. Students build, populate, query, and write transactions for a relational database using SQL and then develop a client application to access their database. As a final project, students build a prototype client/server application. 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.
Top of page
CSCI E-254
Oracle 10g: Programming with PL/SQL (11357)
(Syllabus) (Print View)
Zoran B. Djordjevic, PhD, Principal Software Architect, NisHava, Inc.
4 units. Noncredit and graduate credit $1,975.
Friday, Sept. 23, 5:30-7:30 pm, Science Center, Hall E. Optional sections Friday, 7:35-9:35 pm.
Fall
term
Oracle 10g is a sophisticated database and development environment, providing a rich set of tools that enable software developers to build complex financial and media-aware applications. This course explores the power of Oracle 10g using PL/SQL, an advanced programming language that combines easy access to databases using object-oriented facilities and libraries that specialize in such diverse areas as time-series, natural language processing, multimedia, XML, and web publishing. Students learn to combine the power of PL/SQL with the power of XML and Java. Prerequisites: a previous course in database management, plus previous programming experience in a high-level language (such as CSCI E-160 or CSCI E-225).
Top of page
CSCI E-256
Oracle Database Administration (21245)
(Website) (Print View)
Patrick McGowan, BSEE, Manager, Database Administration, University Information Systems, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Wednesday, Feb. 1, 5:30-7:30 pm, Maxwell Dworkin, Room G125. Required sections Wednesday, 7:35-9:35 pm.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. See course website for all other lectures.
Students in this course are exposed to the internal structure and organization of an Oracle database. The course presents a structured approach to planning, building, tuning, and monitoring an Oracle 10g database. Students create Oracle databases, tablespaces, user accounts, views, indices, and other objects necessary to support an application. Prerequisites: an understanding of the principles of a relational database model, a working knowledge of SQL, and CSCI E-254 or equivalent.
Top of page
CSCI E-259
XML with J2EE (21701)
(Website) (Print View)
David J. Malan, SM.
4 units. Noncredit and graduate credit $1,600.
Thursday, Feb. 2, 5:30-7:30 pm, Emerson Hall, Room 101. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. See course website for all other lectures.
This course introduces XML as a key enabling technology in Java-based enterprise applications. Students learn the fundamentals of XML and its derivatives, including DTD, SVG, XForms, XInclude, XLink, XPointer, XML Base, XML Encryption, XML Key Management, XML Namespaces, XML Schema, XML Signature, XPath, XPointer, XQuery, XSL-FO, and XSLT. Additionally, students gain experience with programmatic interfaces to XML like SAX and DOM as well as with standard APIs like JAXP and TrAX. The course introduces JavaServer Pages and Java Servlet, and explores HTTP, SOAP, web services, UDDI, and WSDL. The course's projects focus on the implementation and deployment of these technologies. Prerequisites: comfort with Java and HTML or XHTML is assumed.
Top of page
CSCI E-268
Database and Information Management Systems (22308)
(Website) (Print View)
David G. Sullivan, PhD, Consultant.
4 units. Noncredit and graduate credit $1,600.
Wednesday, Feb. 1, 7:35-9:35 pm, Maxwell Dworkin, Room G125. Required sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video. See course website for all other lectures.
This course covers the fundamental concepts of information management. Topics include data models (relational, object-oriented, and others); implementation techniques of database management systems (indexing structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections. Prerequisites: CSCI E-119 or equivalent and proficiency in Java or C.
Top of page
CSCI E-275
Software Architecture and Engineering (21908)
(Website) (Print View)
William B. Robinson, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,600. Limited enrollment.
Monday, Jan. 30, 7:35-9:35 pm, 53 Church Street, Room L01. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website. Lecture 1
video.
Software architecture deals with the structure and composition of systems. This course covers the still-evolving discipline of software architecture from the points of view of architectural principles, patterns, and styles. This course also examines how software engineering methods approach structuring and managing software projects, from requirements gathering to production release. Formal methods in software engineering have a longer history than those in software architecture, from the older waterfall method to the current extreme programming method. Students collaborate in small teams to implement a system that illustrates the architectural models discussed in class while practicing techniques in software engineering. Programming assignments are done in Java. Prerequisites: at least six Master of Liberal Arts in Information Technology courses in the software engineering concentration, including CSCI E-247, and proficiency in Java, or permission of instructor.
Top of page
CSCI E-282
Statistical Techniques for Audio and Video Processing (12559)
(Website) (Print View)
Bhiksha Raj, PhD, Research Scientist, Mitsubishi Electric Research Laboratories. Paris Smaragdis, PhD, Research Scientist, Mitsubishi Electric Research Laboratories. Christopher R. Wren, PhD, Research Scientist, Mitsubishi Electric Research Laboratories.
4 units. Noncredit and graduate credit $1,600.
Tuesday, Sept. 20, 5:30-7:30 pm, 51 Brattle Street, Room 123/5. Optional sections to be arranged.
Fall
term
In this course we cover a wide variety of statistical techniques for processing audio and video data. The topics include audio and video object recognition, speech recognition, restoration of corrupted video and audio data, and object discovery in audio and video streams. Prerequisites: basic statistics and linear algebra.
Top of page
CSCI E-287
Computer Architecture (12574)
(Website) (Print View)
James L. Frankel, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Tuesday, Sept. 20, 7:35-9:35 pm, Science Center, Room 109. Required sections Tuesday, 6-7 pm.
Fall
term
A study of the fundamental concepts in the design and organization of modern computer systems. Topics include computer organization, instruction-set design, processor design, memory system design, timing issues, interrupts, microcoding, and various performance-enhancing parallel techniques such as prefetching, pipelining, branch prediction, superscalar execution, and massive-parallel processing. We also study existing architectures using CISC, RISC, vector, data parallel, and VLIW designs. An extensive lab project is required of all students. Prerequisites: CSCI E-119 and ENSC E-123 or equivalents.
Top of page
CSCI E-295
Compiler Design and Implementation (22380)
(Website) (Print View)
James L. Frankel, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,600.
Tuesday, Jan. 31, 7:35-9:35 pm, Science Center, Room 109. Optional sections Tuesday, 6-7 pm.
Spring
term
A study of the theory and practice required for the design and implementation of interpreters and compilers for programming languages. Coursework ranges from the abstract, such as categorization of grammars and languages, to the concrete, such as specific algorithms used in compilers and practical performance issues. Topics include lexical analysis, parsing, symbol table generation, type checking, error detection, code generation, optimization, and run-time support. Techniques for top-down and bottom-up parsing both with and without the use of automated tools are studied. Local and global optimization are covered. Prerequisites: CSCI E-119 and CSCI E-124 or equivalents.
Top of page
- COMM E-180 Technical Writing
- EXPO E-510 Editing Technical Prose
- LSTU E-120 Internet and Society: Technologies and Politics of Control
- MATH E-104 Discrete Mathematics with Computer Science Applications
- MATH E-105 Groups, Graphs, and Algebraic Structures for Computing
- PHYS E-123a Laboratory Electronics: Analog Circuit Design