Computer Science
Also see Master of Liberal Arts in Information Technology and Certificate in Applied Sciences.
Courselist
- CSCI E-1 Understanding Computers and the Internet (Fall)
- CSCI E-5 Introduction to Applied Computer Science (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, Spring)
- CSCI E-19 Video Field Production (Spring)
- CSCI E-21 Introduction to 3-D Design, Animation, and SFX (Fall)
- CSCI E-21b Advanced Topics in Visual Effects (Spring)
- CSCI E-40 Geographic Information Science and Web Mapping (Fall)
- CSCI E-50a Introduction to Computer Science Using Java I (Fall)
- CSCI E-50b Introduction to Computer Science Using Java II (Spring)
- CSCI E-68 Applied Innovation in Mobile Computing (Spring)
- CSCI E-70 Java for Graphical User Applications (Spring)
- CSCI E-113 Introduction to C, Unix, and CGI Programming (Fall)
- CSCI E-119 Data Structures (Spring)
- 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-135 Computer Networks and Network Programming (Fall)
- CSCI E-143 Programming in C# Using .NET Framework (Fall)
- 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-207 Introduction to Formal Systems and Computation (Fall)
- CSCI E-215 Unix 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-236 Topics in Advanced Computer Graphics (Spring)
- CSCI E-237 Programming Microsoft .NET (Fall)
- CSCI E-239 Web Development Using ASP.NET (Spring)
- CSCI E-247 Software Design: Principles, Models, and Patterns (Fall)
- CSCI E-251 Principles of Operating Systems (Spring)
- CSCI E-253 Developing Web-based Database Applications (Spring)
- 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-260 Database Applications Development (Fall)
- CSCI E-268 Database and Information Management Systems (Fall)
- CSCI E-273 Latest Trends in Information Technology Management (Spring)
- CSCI E-275 Software Architecture and Engineering (Spring)
- CSCI E-280 Machine Learning Algorithms for Data Mining (Fall, Spring)
- CSCI E-295 Compiler Design and Implementation (Fall)
- CSCI E-300 Randomized Analysis (Fall)
- Related Courses
CSCI E-1
Understanding Computers and the Internet (11322)
(Website) (Print View)
David J. Malan, SM.
4 units. Noncredit and undergraduate credit $1,550.
Wednesday, 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.
This course is all about understanding: understanding what's going on inside your computer when you flip on the switch; understanding why tech support has you constantly rebooting your computer; understanding how everything you do on the Internet can be watched by others; understanding how your computer can become infected with a worm just by turning it on. This course is a thorough survey of the very latest in information technology (IT). 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, the Internet, wireless, software, multimedia, website development, privacy and security, programming, enterprise applications, and dotcoms. Through optional hands-on sections and workshops, students have opportunities to use computers and various applications, dissect as well as upgrade a computer with additional hardware, build a wireless network, and more. The 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-5
Introduction to Applied Computer Science (21216)
(Website) (Print View)
Kathleen Ryall, PhD, Principal Member, Technical Staff, Mitsubishi Electric Research Laboratories. Christopher R. Wren, PhD, Research Scientist, Mitsubishi Electric Research Laboratories.
4 units. Noncredit, undergraduate, and graduate credit $1,550. Limited enrollment.
Monday, Jan. 31, 7:35-9:35 pm, Science Center, Room B-09. Optional sections to be arranged.
Spring
term
This course is a case-based survey of ideas and examples of applied computer science. Cases are taken from the fields of computer graphics, computer animation, image processing, computer vision, information retrieval, and artificial intelligence. Each case study consists of two lectures: the first is an exposition of computer science concepts relevant to the case, followed by a hands-on introduction to a working system that embodies these concepts. Assignments require the use of these systems to perform given tasks. Programming is not required and will not be taught. Prerequisite: basic familiarity with computer use.
Top of page
CSCI E-11
Digital Multimedia Art (22124)
(Syllabus) (Print View)
Rob Graham, BS, Director, LearningCraft.
4 units. Noncredit and graduate credit $1,550. Limited enrollment.
Thursday, Feb. 3, 5:30-7:30 pm, 53 Church Street, Room 104. Optional sections Thursday, 7:35-8:35 pm.
Spring
term
This course investigates the theory and practice of using digital multimedia as an expressive medium for artists. Digital interactive multimedia is now widely established as a medium for information delivery, product marketing, and education. Most of the current design and development conventions for digital multimedia were derived from the goals of making these types of multimedia applications widely accessible and user friendly. We explore transgressing some of these conventions to exploit their expressive potential. The software tools used are Macromedia Director and Flash, along with various sound and graphics editing programs. Prerequisite: experience with the Macintosh and 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.
Wednesday, Feb. 2, 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.
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. Familiarity with Unix or experience with a command-line interface is helpful. Exposure to any programming language is also helpful.
Top of page
CSCI E-13
Practical Perl (11973)
(Website) (Print View)
Justin L. Deri, BA, World Wide Web Instructional Software Developer, Faculty of Arts and Sciences Computer Services, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Monday, Sept. 20, 5:30-7:30 pm, Emerson Hall, Room 101. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website.
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.
Section 1 is offered online and on campus. Section 2 is offered online only.
Fall term, section 1 (11200) (Syllabus) (Print View): Scott Traylor, BA, President, 360KID. Wednesday, Sept. 22, 5:30-7:30 pm, 53 Church Street, Room L01. Optional sections Wednesday, 7:35-9:35 pm. Online and on-campus options. See the Distance Education website. Limited enrollment.
Fall term, section 2 (12444) (Website) (Print View): Scott Traylor, BA, President, 360KID. Optional sections to be arranged. Online only. Students must view sample online lectures before they register. See the Distance Education website.
Spring term (22272) (Website) (Print View): Scott Traylor, BA, President, 360KID. Optional sections Tuesday, 5:30-7:30 pm. Online only. Students must view sample online lectures before they register. See the Distance Education website.
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 (22208)
(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.
Monday, Jan. 31, 5:30-7:30 pm, 53 Church Street, Room 104. Required sections Monday, 7:35-8:35 pm.
Spring
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-21
Introduction to 3-D Design, Animation, and SFX (12094)
(Syllabus) (Print View)
Adrian Mendoza, MArchII, Principal Designer, Synthesis3 Design Studios.
4 units. Noncredit and graduate credit $1,975. Limited enrollment.
Wednesday, Sept. 22, 7:35-9:35 pm, 53 Church Street, Room 104. Required sections every other Saturday, 12 noon-2 pm.
Fall
term
Featuring Form-Z, Maya, and Final Cut Pro, this course integrates the use of 3-D design, animation, and special effects with digital video. Topics such as storyboarding and narration, modeling of 3-D space and objects in virtual environments, and project management are covered in the first few weeks. Students then use the advanced 3-D application Maya as a tool for 3-D modeling, animation, rendering, lighting, and texture mapping. At the end of the course, students learn how to produce digital video composites with work generated in Maya. The topics covered in this course have direct relevance to architectural modeling, digital animation, product development, and interactive multimedia. Homework assignments are designed for students to develop portfolio pieces, and students are required to produce a final project of professional quality. Prerequisite: an introductory multimedia course.
Top of page
CSCI E-21b
Advanced Topics in Visual Effects (22096)
(Syllabus) (Print View)
Adrian Mendoza, MArchII, Principal Designer, Synthesis3 Design Studios.
4 units. Noncredit and graduate credit $1,975. Limited enrollment.
Wednesday, Feb. 2, 7:35-9:35 pm, 53 Church Street, Room 104. Required sections every other Saturday, 12 noon-2 pm.
Spring
term
The goal of this course is to generate convincing, photorealistic digital 3-D models, environments, and special effects of production-level quality. The 3-D application Maya is the primary tool for project development. Topics not covered in CSCI E-21, such as advanced rendering and dynamics, are covered here. Lectures are based on case studies to illustrate these topics; labs focus on implementation techniques. Collaboration and peer-to-peer learning are an integral part of this course. Prerequisite: CSCI E-21 or permission of instructor.
Top of page
CSCI E-40
Geographic Information Science and Web Mapping (12139)
(Website) (Print View)
Lucia Lovison-Golob, MS, Associate in Anthropology, Harvard University.
4 units. Noncredit and graduate credit $1,550. Limited enrollment.
Tuesday, Sept. 21, 5:30-7:30 pm, 53 Church Street, Room 106. Required sections Tuesday, 7:35-9:35 pm.
Fall
term
This course introduces the basic concepts of geographic information science (GIS) and discusses the leading GIS tools and applications. Students develop spatial thinking skills and knowledge by collecting, maintaining, analyzing, and visualizing spatial data. Key concepts include measurement reference systems, scale, resolution, modeling, spatial analysis, 3-D, the statistical representation of space, interoperability, and metadata. We explore how to acquire spatial data through GPS-enabled devices (such as PDAs) and how to integrate data within different frameworks and publish them over the Web. We develop custom applications to deliver specific GIS functionalities to users. We cover basic internet map server architecture as well as mapping services from main software vendors and open source specifications (OpenGIS). Prerequisite: previous experience programming in a higher-level language (CSCI E-50a 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,550.
Monday, Sept. 20, 5:30-7:30 pm, Science Center, Hall D. Required sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website.
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,550.
Monday, Jan. 31, 5:30-7:30 pm, Science Center, Hall A. Required sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website.
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-68
Applied Innovation in Mobile Computing (21909)
(Website) (Print View)
4 units. Noncredit and graduate credit $1,975.
Optional sections Tuesday, 7:35-9:35 pm.
Spring
term
*** CSCI E-68 has been CANCELLED.***
Mobile computing has the potential to transform the way we do business, learn, create art, vote, and buy groceries. This course includes a survey of the emergence of nomadic computing, as well as studio practice in creating a proposal and prototype for nomadic computing applications. We explore personal digital assistant devices, wireless networked environments, and development tools. The target devices for class projects are personal digital assistants and other wireless devices. Topics covered include XML, handheld operating systems, embedded devices, wireless local area networks (WLAN), content management, interface and security issues, location aware technologies, and market news. Emphasis is placed on creative uses for this new medium and how to present developing ideas through storyboards, visual language, and mock-ups. Prerequisites: CSCI E-50a or experience in web publishing and digital imaging authoring tools: Photoshop, Dreamweaver, Fireworks, Flash. Programming experience is helpful.
Top of page
CSCI E-70
Java for Graphical User Applications (21928)
(Website) (Print View)
Daniel E. Bromberg, ME, Consultant, Mitsubishi Electric Research Laboratories.
4 units. Noncredit and graduate credit $1,550.
Wednesday, Feb. 2, 5:30-7:30 pm, Science Center, Room 101B. Required sections Wednesday, 7:45-8:45 pm.
Spring
term
Designed as a follow-up to data structures for motivated Java students who want to build polished visual client-side applications. Rigorous treatment of the architecture of the Abstract Window Toolkit (AWT), Swing, and multithreading provide the basis for integrating visual components with realistic back-end computation. The course progresses to custom widgets, look-and-feel customization, and high-level design issues if time allows. Prerequisites: CSCI E-119 or a good working knowledge of Java or C++.
Top of page
CSCI E-113
Introduction to C, Unix, and CGI Programming (10033)
(Website) (Print View)
Bruce Molay, AB, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Wednesday, Sept. 22, 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 programming environment and on the Web. 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 (22220)
(Website) (Print View)
David G. Sullivan, PhD, Consultant.
4 units. Noncredit, undergraduate, and graduate credit $1,550.
Wednesday, Feb. 2, 5:30-7:30 pm, Harvard Hall, Room 104. Required sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website.
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 (including both array-based and linked representations) and examines classic algorithms that use these structures for tasks such as sorting, searching, and text compression. Techniques for analyzing the efficiency of algorithms are also covered. The Java programming language is used to demonstrate the algorithms discussed, but assignments are accepted in either Java or C++. Key notions of object-oriented programming, including encapsulation and abstract data types, are emphasized. Prerequisites: a good working knowledge of Java or C++ and 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, John L. Loeb Associate Professor of the Natural Sciences, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Spring
term
Online only. See the Distance Education website. Optional sections to be arranged.
A rigorous course on the design and analysis of efficient algorithms and their associated data structures. Sorting, searching, graph algorithms, and general algorithm design techniques 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,550.
Fall term (11353) (Website) (Print View): Leonard Evenchik, SM, Lecturer in Extension, Harvard University. Monday, Sept. 20, 7:35-9:35 pm, Science Center, Hall D. Optional sections to be arranged. Online and on-campus options. See the Distance Education website.
Spring term (21387) (Website) (Print View): Leonard Evenchik, SM, Lecturer in Extension, Harvard University. Optional sections to be arranged. Online only. See the Distance Education website. 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.
Top of page
CSCI E-132
Advanced Topics in Data Networking Protocols and Network Architectures (21257)
(Website) (Print View)
Scott Bradner, Senior Technical Consultant, University Information Systems, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Friday, Feb. 4, 5:30-7:30 pm, Science Center, Hall A.
Spring
term
Online and on-campus options. See the Distance Education website.
This course provides in-depth exploration of a number of topics important in the design and operation of modern data networks. It is intended for people who are involved in the details of data network planning, design, or support. Topics include TCP/IP, IPv6 (the next generation of IP), SNMP, network architectures, quality of service, network security, routing theory and practice, and the architecture and operation of routers, frame switches, and ATM switches. Prerequisite: a good understanding of data networks or CSCI E-131b.
Top of page
CSCI E-135
Computer Networks and Network Programming (12440)
(Website) (Print View)
H. T. Kung, PhD, William H. Gates Professor of Computer Science and Electrical Engineering, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Fall
term
Online only. See the Distance Education website. Optional sections to be arranged.
This is an advanced course that examines the design, implementation, and performance of computer networks. Challenging network programming assignments are a core aspect of the class; students implement applications based on the TCP/IP protocol suite. Students must have X-terminal software to do these assignments. Topics include LANs, routing protocols, the details of the TCP/IP stack with particular attention to the congestion control of TCP, quality of service, performance analysis, multicast protocols, and other current research topics. Students who complete the course are able to understand technical papers, have a solid knowledge of network programming using BSD sockets, and, more importantly, they think like network engineers. The recorded lectures are from the Harvard Division of Engineering and Applied Sciences course Computer Science 143. Prerequisites: CSCI E-131b and CSCI E-215 and solid programming experience in C, or permission of the instructor (contact Conrad Nobili, conrad@harvard.edu). Students must view sample online lectures before they register.
Top of page
CSCI E-143
Programming in C# Using .NET Framework (12116)
(Website) (Print View)
Paul R. Holley, MS, Consultant.
4 units. Noncredit and graduate credit $1,550.
Thursday, Sept. 23, 7:35-9:35 pm, 53 Church Street, Room L01. Optional sections to be arranged.
Fall
term
The course introduces the new C# language and .NET Framework. C# use in practical applications for GUI programming, services, and web offerings is covered. The C# language specification is completely presented, including object-oriented programming concepts, events and delegates, attributes (aspect-based development), threads and processes, generics, and iterators. .NET Framework concepts appropriate to GUI development (such as Windows forms), web-based applications (such as ASP.NET), and database applications (such as ADO.NET), are introduced. Prerequisites: CSCI E-160 or equivalent experience in a high-level programming language such as C, C++, Visual Basic, or Java. Students should be familiar with advanced programming topics (function pointers, threading). For students who choose to develop in Visual Studio .NET, a personal version of the latest Windows Professional is required, or else the student should plan to use the lab facilities at 53 Church Street. Alternately, assignments can be accomplished on Linux or Unix, but students are responsible for choosing appropriate C# and .NET Framework implementations and development environments.
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,550.
Monday, Sept. 20, 5:30-7:30 pm, Science Center, Hall A. Optional sections to be arranged.
Fall
term
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. Prerequisites: CSCI E-12 or equivalent and experience with a programming language.
Top of page
CSCI E-160
Java for Distributed Computing
4 units. Noncredit and graduate credit $1,550.
Fall term (11838) (Website) (Print View): Charles M. Sawyer, Jr., MS, Senior Support Engineer, Archivas, Inc. Optional sections to be arranged. Online only. Students must view sample online lectures before they register. See the Distance Education website.
Spring term (22075) (Website) (Print View): Charles M. Sawyer, Jr., MS, Senior Support Engineer, Archivas, Inc. Tuesday, Feb. 1, 7:35-9:35 pm, Harvard Hall, Room 104. Optional sections to be arranged. Online and on-campus options. See the Distance Education website.
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, Chief Technical Architect, Central Administration Information Technology, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Wednesday, Feb. 2, 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.
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 along the way 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. Exposure to web technologies (HTML, CGI) and to 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,550.
Friday, Feb. 4, 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, discrete business processes that expose and describe their functionality in WSDL. Web services can be located by other services in UDDI registries and communicate through the standard XML-based protocol, SOAP. Web services are software components that transform the most versatile and disparate applications into cooperative distributed systems. We also 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 (12334)
(Website) (Print View)
Simson L. Garfinkel, MS, Founder, Sandstorm Enterprises, Inc.
4 units. Noncredit and graduate credit $1,550.
Tuesday, Sept. 21, 5:30-7:30 pm, Sever Hall, Room 214.
Fall
term
Online and on-campus options. See the Distance Education website.
Computer security presented in a way that encourages user-centered design. Topics include forensics, backups, logging, economic factors, trust management, and related public policy. Case studies include PGP, S/MIME, SSH, and SSL. Cryptographic primitives are introduced as needed. Prerequisites: knowledge of programming at the level of CSCI E-119 and familiarity with operating systems.
Top of page
CSCI E-207
Introduction to Formal Systems and Computation (12161)
(Website) (Print View)
Salil P. Vadhan, PhD, Associate Professor of Computer Science on the Gordon McKay Endowment, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Fall
term
Online only. See the Distance Education website. Required sections to be arranged.
General 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 Systems Programming (20034)
(Website) (Print View)
Bruce Molay, AB, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Monday, Jan. 31, 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.
An introduction to the fundamental structure and services of the Unix operating system. 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,550.
Thursday, Sept. 23, 5:30-7:30 pm, Science Center, Room B-10. Required sections Thursday, 7:35-8:35 pm.
Fall
term
Artificial intelligence (AI) concerns the development of computer systems that appear to behave with some degree of human intelligence. This survey course covers the major topics in AI: search techniques, natural language understanding, knowledge representation, theorem proving, and computer vision. Planning, learning, and expert systems are included if time permits. The LISP programming language is introduced and used for the programming assignments. No prior experience with LISP is assumed. 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,550.
Thursday, Sept. 23, 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,550.
Wednesday, Sept. 22, 7:35-9:35 pm, 53 Church Street, Room L01. Optional sections to be arranged.
Fall
term
Online and on-campus options. See the Distance Education website.
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 graphics design applications such as Photoshop and AutoCAD; it is a programming class. Prerequisite: CSCI E-119 or equivalent.
Top of page
CSCI E-236
Topics in Advanced Computer Graphics (22030)
(Website) (Print View)
Hanspeter Pfister, PhD, Associate Director and Senior Research Scientist, Mitsubishi Electric Research Laboratories.
4 units. Noncredit and graduate credit $1,550.
Wednesday, Feb. 9, 7:35-9:35 pm, 53 Church Street, Room 106. Optional sections to be arranged.
Spring
term
Please note, this course starts one week later than other classes.
This course provides an in-depth study of an active research topic in computer graphics. Topics may include image-based rendering and modeling, scientific visualization, graphics architectures, virtual reality, modeling in computer graphics, non-photorealistic rendering, computer animation, computational geometry, computer games, or digital photography. Prerequisites: CSCI E-234 or equivalent. Knowledge of OpenGL and two years of experience writing computer programs in C or C++.
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,550.
Monday, Sept. 20, 7:35-9:35 pm, Maxwell Dworkin, Room G115. Optional sections to be arranged.
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 Windows forms, and controls. Prerequisite: one year of professional Windows programming experience.
Top of page
CSCI E-239
Web Development Using ASP.NET (22168)
(Print View)
4 units. Noncredit and graduate credit $1,550.
Optional sections Thursday, 6:30-7:30 pm and Saturday, 2-3 pm.
Spring
term
*** CSCI E-239 has been CANCELLED.***
This course teaches the essentials of web application design and development using Microsoft ASP.NET and Microsoft C#. Coverage includes form creation and validation, dynamic data-driven sites using ADO.NET, detailed coverage of server controls and web controls, state management, tracing and debugging, configuration and deployment, authentication, authorization and site security. Several of the Microsoft application blocks for ASP.NET development are also covered. Prerequisites: two years of object-oriented programming experience and six months of C# programming experience highly recommended.
Top of page
CSCI E-247
Software Design: Principles, Models, and Patterns (12070)
(Syllabus) (Print View)
William B. Robinson, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Monday, Sept. 20, 7:35-9:35 pm, Sever Hall, Room 113. Optional sections Monday, 6:30-7:30 pm.
Fall
term
Online and on-campus options. See the Distance Education website.
This course approaches object-oriented software design from three perspectives: the software engineering principles that enable development of quality software, 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-251
Principles of Operating Systems (22185)
(Website) (Print View)
James L. Frankel, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Tuesday, Feb. 1, 7:35-9:35 pm, Science Center, Room 109. Required sections to be arranged.
Spring
term
This course examines the role of operating systems: process synchronization and scheduling; memory management including virtual memory, swapping, paging, and segmentation; file management; protection and security; input/output techniques, buffering, and resource allocation; deadlock detection and avoidance; system modeling; performance measurement and evaluation; and operating system case studies. An extensive lab project is required of all students. Prerequisite: CSCI E-119 or equivalent.
Top of page
CSCI E-253
Developing Web-based Database Applications (22265)
(Website) (Print View)
Maria R. Garcia, ALM, Assistant Professor of Graduate Studies, Franklin Pierce College.
4 units. Noncredit and graduate credit $1,550.
Thursday, Feb. 3, 7:35-9:35 pm, 53 Church Street, Room 202. Optional sections to be arranged.
Spring
term
Web-based applications offer the advantages of workstation productivity and ease of use together 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 an enterprise. Through hands-on projects, students will 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 will 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. 24, 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 (such as CSCI E-260), 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, Senior Database Administrator, University Information Systems, Harvard University.
4 units. Noncredit and graduate credit $1,975. Limited enrollment.
Wednesday, Feb. 2, 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.
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, 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,550.
Tuesday, Feb. 1, 5:30-7:30 pm, Maxwell Dworkin, Room G125. Optional sections to be arranged.
Spring
term
Online and on-campus options. See the Distance Education website.
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 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-260
Database Applications Development (12216)
(Print View)
4 units. Noncredit and graduate credit $1,550.
Tuesday, Sept. 21, 7:35-9:35 pm. Optional sections to be arranged.
Fall
term
*** CSCI E-260 has been CANCELLED.***
This course introduces the concepts and skills needed to develop desktop- and web-based database applications. Using .NET technology (VB.NET, ASP.NET, and ADO.NET), students create client/server applications for Access and SQL Server through in-class and individual projects of their choosing or ones provided for them if needed. Oracle is also discussed. Prerequisites: some object-oriented programming experience, familiarity with databases, and the ability to create a simple webpage using HTML.
Top of page
CSCI E-268
Database and Information Management Systems (12427)
(Website) (Print View)
Margo Seltzer, PhD, Herchel Smith Professor of Computer Science, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Fall
term
Online only. See the Distance Education website. Required sections to be arranged.
This course covers the fundamental concepts of database and information management. We cover data models: relational, object-oriented, and others; implementation techniques of database management systems, such as indexing structures, concurrency control, recovery, and query processing; management of unstructured data; terabyte-scale databases. The recorded lectures are from the Harvard Division of Engineering and Applied Sciences course Computer Science 165. Prerequisites: CSCI E-215 and experience developing large software systems. Students must view sample online lectures before they register.
Top of page
CSCI E-273
Latest Trends in Information Technology Management (22231)
(Syllabus) (Print View)
Zoya Kinstler, PhD, Senior Architect, Information Technology, Verizon Communications.
4 units. Noncredit and graduate credit $1,550. Limited enrollment.
Tuesday, Feb. 1, 7:35-9:35 pm, Sever Hall, Room 209. Optional sections to be arranged.
Spring
term
What is the next big thing in information technology (IT)? In addition to all the latest technological advances such as broadband wireless, mobile devices, real-time dashboards, converged networks, and web services, it is the new alignment between technology and business that is becoming the hottest IT trend. While the technology creates exciting new business opportunities, it pushes the enterprise to expedite its business processes, modify existing rules, adapt to new delivery models, and respond more quickly to competitive challenges and cost pressures. This is why such topics as business process fusion, business activity monitoring, and IT metrics are highlighted in this course. It covers enterprise IT architecture and application development, IT operations management, and IT business management. Prerequisites: at least nine ALM in IT courses in the information management systems concentration, or permission of instructor.
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,550.
Monday, Jan. 31, 7:35-9:35 pm, Sever Hall, Room 103. Optional sections Monday, 6:30-7:30 pm.
Spring
term
Online and on-campus options. See the Distance Education website.
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 ALM in IT courses in the software engineering concentration, including CSCI E-247, and proficiency in Java, or permission of instructor.
Top of page
CSCI E-280
Machine Learning Algorithms for Data Mining
4 units. Noncredit and graduate credit $1,550.
Fall term (12284) (Syllabus) (Print View): Sergei Makar-Limanov, PhD, Technical Consultant, Haikya Corporation. Bhiksha Raj, PhD, Research Scientist, Mitsubishi Electric Research Laboratories. Thursday, Sept. 23, 5:30-7:30 pm.
*** CSCI E-280 (Fall term) has been CANCELLED.***
Spring term (22263) (Syllabus) (Print View): Sergei Makar-Limanov, PhD, Technical Consultant, Haikya Corporation. Bhiksha Raj, PhD, Research Scientist, Mitsubishi Electric Research Laboratories. Wednesday, Feb. 2, 5:30-7:30 pm, Sever Hall, Room 104.
This course presents aspects of machine learning algorithms that can be applied to real-world data mining applications, to either analyze and classify the data, or to make predictions based on it. We cover some well-known algorithms such as decision trees, boosting, bagging, and expectation maximization (EM). If time permits, we will cover some of the latest techniques, such as support vector machines. Prerequisites: linear algebra (MATH E-21b) and knowledge of Java (CSCI E-119 or CSCI E-160).
Top of page
CSCI E-295
Compiler Design and Implementation (12375)
(Website) (Print View)
James L. Frankel, PhD, Lecturer in Extension, Harvard University.
4 units. Noncredit and graduate credit $1,550.
Tuesday, Sept. 21, 7:35-9:35 pm, Science Center, Room 109. Required sections to be arranged.
Fall
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
CSCI E-300
Randomized Analysis (12326)
(Website) (Print View)
Michael Mitzenmacher, PhD, John L. Loeb Associate Professor of the Natural Sciences, Harvard University.
4 units. Noncredit and graduate credit $1,975.
Fall
term
Online only. See the Distance Education website. Optional sections to be arranged.
An advanced course on randomized algorithms and probabilistic analysis of algorithms. Topics include Chernoff Bounds, Markov Chains, the probabilistic method, and hashing. The recorded lectures are from the Harvard Division of Engineering and Applied Sciences course Computer Science 223. Prerequisites: MATH E-104, CSCI E-124 or E-119, basic probability. Students must view sample online lectures before they register.
Top of page
- CSS E-105e Internet Marketing Strategies
- CSS E-112a Project Management of Information Technology
- CSS E-118 Information Systems Management
- CSS E-400 Internet and Integrated Productivity Software for Managers
- CSS E-403 Desktop Applications for Managers
- CSS E-408 Spreadsheet Models for Managers
- CSS E-408a Enterprise Spreadsheet Management
- CSS E-410 e-Commerce Strategies for Managers and Entrepreneurs
- CSS E-412 Using Databases for Information Management
- CREA E-130 Desktop Publishing
- EXPO E-510 Editing Technical Prose
- LSTU E-120 Internet and Society: Technologies and Politics of Control
- LSTU E-125 Law and Technology
- 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
See courses listed under Education and Engineering Sciences.
Top of page