Related Courses
- COMM E-180 Technical Writing
- EXPO E-171 Writing and Editing for the Web
- 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-140 Scientific Computing with Matlab
- PHYS E-123a Laboratory Electronics: Analog Circuit Design
Related Subjects
This page contains content from the 2008–09 academic year. For current information, visit the Harvard Extension School website at www.extension.harvard.edu.
Computer Science
Also see the Master of Liberal Arts and Certificate in Information Technology.
Courselist
- CSCI E-1 Understanding Computers and the Internet (Fall)
- CSCI E-2a Life, Liberty, and Happiness after the Digital Explosion (Fall)
- CSCI E-2 Bits (Spring)
- CSCI E-7 Exposing Digital Photography (Spring)
- CSCI E-9 Creative Explorations in Screen-Based and Physical Computing (Spring)
- CSCI E-11 Digital Multimedia Art (Spring)
- CSCI E-12 Fundamentals of Website Development (Spring)
- CSCI E-14 Understanding and Developing Multimedia (Fall)
- CSCI E-19 Video Field Production (Fall)
- CSCI E-21 Introduction to 3-D Modeling and Animation with Maya (Fall)
- CSCI E-21b 3-D Modeling for Animation (Spring)
- CSCI E-24 Video Editing and Digital Design (Spring)
- CSCI E-28 Games and Gamers (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-52 Intensive Introduction to Computer Science Using C, PHP, and JavaScript (Fall)
- CSCI E-64 Visualization (Spring)
- CSCI E-75 Building Dynamic, Scalable Websites (Spring)
- CSCI E-113 Introduction to C, Unix/Linux, and CGI Programming (Fall)
- CSCI E-119 Data Structures (Spring)
- CSCI E-124 Algorithms and Data Structures (Spring)
- CSCI E-128 Fundamentals of System Administration (Fall)
- CSCI E-131b Communication Protocols and Internet Architectures (Fall, Spring)
- CSCI E-132 Advanced Topics in Data Networking Protocols and Network Architectures (Fall)
- CSCI E-146 Algorithms for Computer Games (Fall)
- CSCI E-153 Web Development Using XML (Fall)
- CSCI E-156 Google Search and Information Retrieval (Fall)
- CSCI E-160 Java for Distributed Computing (Fall, Spring)
- CSCI E-162 Distributed and Enterprise Computing (Spring)
- CSCI E-168 Building Web-Based Software with Ruby and Ruby on Rails (Fall)
- CSCI E-170 Security, Privacy, and Usability (Spring)
- CSCI E-181 Intelligent Machines: Perception, Learning, and Uncertainty (Spring)
- CSCI E-190 Bioinformatics Algorithms (Spring)
- 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++ (Spring)
- CSCI E-236 Advanced Topics in Visual Computing (Fall)
- CSCI E-237 Programming Microsoft .NET (Fall)
- CSCI E-241 Web Development Using ASP.NET, Silverlight, and Ajax (Spring)
- CSCI E-247/W Software Design: Principles, Models, and Patterns (Fall)
- CSCI E-253 Developing Web-based Database Applications (Fall)
- CSCI E-254 Oracle 11g as a Development Platform (Spring)
- CSCI E-256 Oracle Database Administration (Spring)
- CSCI E-271 Advanced Topics in Oracle Database Management (Fall)
- CSCI E-275 Software Engineering (Spring)
- CSCI E-287 Computer Architecture (Fall)
- CSCI E-295 Compiler Design and Implementation (Spring)
CSCI E-1
Understanding Computers and the Internet (11322)
(Website) (Printable version)
David J. Malan, PhD, Lecturer on Computer Science, Harvard University. Daniel Armendariz, SB, Senior Computer Assistant, Massachusetts Institute of Technology.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Fall
term:
Mondays beginning Sept. 15, 7:35-9:35 pm, Northwest Science Building, Room B101. Optional sections to be arranged.
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 being turned on. Designed for students who use computers and the Internet every day but don't fully understand how it all works, this course fills in the gaps. Through lectures on hardware, software, the Internet, multimedia, security, privacy, website development, programming, and more, this course "takes the hood off" of computers and the Internet so that students understand how it all works and why. Through discussions of current events, students are exposed also to the latest technologies. (4 credits)
CSCI E-2a
Life, Liberty, and Happiness after the Digital Explosion (13064)
(Website) (Printable version)
Harry R. Lewis, PhD, Gordon McKay Professor of Computer Science, Harvard University.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Fall
term:
Mondays beginning Sept. 15, 5:30-7:30 pm, 1 Story Street, Room 306. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course explores the social, legal, and cultural fallout from the exponential explosion in data production, storage, and communication. We emphasize the opposing potentials of information technologies to make knowledge widely available and to distort and restrict our perceptions. Specific topics include data leakage; the view through the window of search engines; eavesdropping and secret communications; privacy; Internet censorship; the social contract of copyright; and broadcast and telecommunications regulation in a world of rapid technological change. Prerequisite: general familiarity with use of personal computers and the World Wide Web. (4 credits)
CSCI E-2
Bits (22883)
(Website) (Printable version)
Harry R. Lewis, PhD, Gordon McKay Professor of Computer Science, Harvard University.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Spring
term
Online only, beginning Jan. 29. See Distance Education. Required sections to be arranged.
Lecture 1 video.
This course focuses on information as quantity, resource, and property. We study the 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. The recorded lectures are from the Harvard Faculty of Arts and Sciences course Quantitative Reasoning 48. Prerequisite: high school algebra. Students must view sample online lectures before they register. (4 credits)
CSCI E-7
Exposing Digital Photography (22866)
(Website) (Printable version)
Daniel Armendariz, SB, Senior Computer Assistant, Massachusetts Institute of Technology.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Mondays beginning Jan. 26, 7:35-9:35 pm, Sever Hall, Room 202.
Photography is a popular hobby that has exploded in recent years as digital cameras have become more affordable and easier to use. There are many courses that teach students the artistic aspect of "how to become a better photographer" or "how to improve your eye," but this is not one of them. Instead, students become better photographers through an understanding of the technical aspects and terms of a digital camera, from the one-time-user to the professional. Learn why photos look blurry at night, why color management is important, what the difference between sports mode and portrait mode on the camera's dial is, and how to manipulate the camera without the need of these modes in the first place. Topics include exposure and metering, flash, dynamic range, CMOS and CCD sensors, color filter arrays, RAW versus JPEG formats, color spaces and profiles, editing photos with Photoshop, and optical and computational artifacts. Through lectures and hands-on assignments, students understand the jargon and compromises of digital photography that ultimately expose the workings of digital cameras. You are not required to own a digital camera, but if you do, one with a manual mode and an option for RAW is recommended. (4 credits)
CSCI E-9
Creative Explorations in Screen-Based and Physical Computing (22834)
(Website) (Printable version)
Bakhtiar Mikhak, PhD, President and Founder, Media Modifications, Ltd. Erik Blankinship, PhD, Co-founder, Media Modifications, Ltd.
Course tuition: noncredit and graduate credit $1,725. Limited enrollment.
Spring
term:
Mondays beginning Jan. 26, 7:35-9:35 pm, 51 Brattle Street, Room 123/5. Required sections Thursdays, 7:35-9:35 pm.
This course is a practical introduction to the fundamentals of programming in the context of prototyping, exhibiting, and critiquing interactive visualizations, tangible interfaces, and immersive installations. Through weekly projects students gain extensive experience with the Processing programming language, the Parallax Propeller development kits, and the Linden Scripting Language and building tools for Second Life. (4 credits)
CSCI E-11
Digital Multimedia Art (22124)
(Website) (Printable version)
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Optional sections Thursdays, 7:35-9:35 pm.
*** CSCI E-11 has been CANCELED.***
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 their 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 and Adobe Photoshop, along with various sound and graphics editing programs. Prerequisite: experience with Macintosh or Windows operating systems. (4 credits)
CSCI E-12
Fundamentals of Website Development (21144)
(Website) (Printable version)
David P. Heitmeyer, AM, Senior Software Product Architect/Engineer, iCommons, Central Administration Information Technology, Harvard University.
Course tuition: noncredit and graduate credit $1,975.
Spring
term:
Wednesdays beginning Jan. 28, 5:30-7:30 pm, Science Center, Hall A. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course provides a comprehensive overview of website development. Students explore the prevailing vocabulary, tools, and standards used in the field and learn how the various facets—including XHTML, CSS, JavaScript, Ajax, multimedia, scripting languages, HTTP, clients, servers, and databases—function together in today's web environment. The course provides a solid web development foundation, focusing on content and client-side (browser) components (XHTML, CSS, JavaScript, multimedia), with an overview of the server-side technologies. In addition, software and services that are easily incorporated into a website (for example, maps, checkout, blogs, content management) are surveyed and discussed. Students produce an interactive website on the topic of their choice for the final project and leave the course prepared for more advanced and focused web development studies. Prerequisites: CSCI E-1, or the equivalent experience. (4 credits)
CSCI E-14
Understanding and Developing Multimedia
Course tuition: noncredit and graduate credit $1,975.
Fall term, section 1 (12712) (Website) (Printable version): Rob Graham, BS, Vice President of Creative and Technical Training, The Laredo
Group.
Thursdays beginning Sept. 18, 7:35-9:35 pm, 53 Church Street, Room L01.
Online and on-campus options. See Distance Education.
Lecture 1 video.
Limited enrollment.
Fall term, section 2 (13220) (Website) (Printable version): Rob Graham, BS, Vice President of Creative and Technical Training, The Laredo Group. Online only. See Distance Education. Students must view sample online lectures before they register.
This course provides students with a hands-on exploration of the world of dynamic media production through the creation of interactive software programs that combine media elements like graphics, audio, video, and interactivity; and focuses on designing and planning projects with the needs and expectations of end users in mind. Through an exploration of Adobe Flash CS3 Professional, students learn how to plan out and create interactive programs designed to entertain, educate, and inform others. This course also includes exploration of graphic interface design and development, audio and video editing tools, and an overview of ActionScript, the Flash scripting language. Prerequisites: proficiency with either Macintosh or Windows operating systems and the ability to understand and use basic drawing and media development applications. (4 credits)
CSCI E-19
Video Field Production (12816)
(Website) (Printable version)
Allyson Sherlock, MA, Digital Software Specialist, Emerson College.
Course tuition: noncredit and graduate credit $1,975. Limited enrollment.
Fall
term:
Saturdays beginning Sept. 20, 11 am-2 pm, 53 Church Street, Room 104.
Through lectures and hands-on projects, students learn the equipment and techniques used in single-camera field production. Students write and produce a variety of projects which they see through from preproduction to postproduction. Final Cut Pro is used to edit student projects and DVD Studio Pro is used to create basic DVD menus. Prerequisite: experience with Macintosh computers. (4 credits)
CSCI E-21
Introduction to 3-D Modeling and Animation with Maya (12982)
(Website) (Printable version)
Tereza Flaxman, MFA, 3-D Animator and Author.
Course tuition: noncredit and graduate credit $1,975. Limited enrollment.
Fall
term:
Tuesdays beginning Sept. 16, 5:30-7:30 pm, 53 Church Street, Room 104. Required sections Tuesdays, 7:35-9:35 pm.
This course is an introduction to three-dimensional computer modeling and animation. The industry standard Maya package is used throughout, although the techniques taught in this course should work in most other 3-D animation packages. Topics include modeling using polygons and NURBS surfaces. Basic texture mapping, lighting, and rendering are also discussed. Students learn how to rig 3-D models and how to animate them using forward and inverse kinematics and path animation. Prerequisite: familiarity with either Windows or Macintosh operating systems. (4 credits)
CSCI E-21b
3-D Modeling for Animation (22900)
(Website) (Printable version)
Tereza Flaxman, MFA, 3-D Animator and Author.
Course tuition: noncredit and graduate credit $1,975. Limited enrollment.
Spring
term:
Tuesdays beginning Jan. 27, 5:30-7:30 pm, 53 Church Street, Room 104. Required sections Tuesdays, 7:35-9:35 pm.
The focus of the course is on 3-D character design and modeling for animation. Students are introduced to character design and modeling methods such as modeling with NURBS, polygons, and subdivision surfaces. Texture mapping, lighting, and rendering are also discussed. Production pipeline issues such as geometry deformation and level of detail are emphasized. Prerequisite: familiarity with either Windows or Macintosh operating systems. (4 credits)
CSCI E-24
Video Editing and Digital Design (22659)
(Website) (Printable version)
Allyson Sherlock, MA, Digital Software Specialist, Emerson College.
Course tuition: noncredit and graduate credit $1,975. Limited enrollment.
Spring
term:
Saturdays beginning Jan. 31, 11 am-2 pm, 53 Church Street, Room 104.
This course serves as an introduction to the art of video postproduction. Students learn advanced editing techniques with an in-depth examination of Final Cut Pro. To further enhance their projects, students learn Apple's Soundtrack, Motion, and DVD Studio Pro. Prerequisite: CSCI E-19, or the equivalent. (4 credits)
CSCI E-28
Games and Gamers (13170)
(Website) (Printable version)
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Optional sections to be arranged.
*** CSCI E-28 has been CANCELED.***
This course investigates the history, culture, and practical development of 2-D computer games as a foundation for developing new game experiences for entertainment and education. Students design and code their own games using Flash and Actionscript 3. We explore a variety of game types—arcade, sidescroller, turn-based multiuser—from both the cultural/aesthetic and technical perspectives. Students have the opportunity to develop their own versions of classic games as well as develop their own game ideas. Prerequisites: a basic understanding of programming concepts and methods is required. This course is intended for students who have an interest in programming and a solid foundation in some programming language. (4 credits)
CSCI E-50a
Introduction to Computer Science Using Java I (10701)
(Website) (Printable version)
Henry H. Leitner, PhD, Senior Lecturer on Computer Science, Harvard University.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Fall
term:
Mondays beginning Sept. 15, 5:30-7:30 pm, Science Center, Hall A. Required sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 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. (4 credits)
CSCI E-50b
Introduction to Computer Science Using Java II (20659)
(Website) (Printable version)
Henry H. Leitner, PhD, Senior Lecturer on Computer Science, Harvard University.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Spring
term:
Mondays beginning Jan. 26, 5:30-7:30 pm, Science Center, Hall A. Required sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This is the second course in object-oriented programming methods using Java. It 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 the equivalent experience in a high-level programming language such as C, C++, or Java. (4 credits)
CSCI E-52
Intensive Introduction to Computer Science Using C, PHP, and JavaScript (13026)
(Website) (Printable version)
David J. Malan, PhD, Lecturer on Computer Science, Harvard University.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Fall
term
Online only, beginning Sept. 16. See Distance Education. Optional sections to be arranged.
Lecture 1 video.
This course is an introduction to the intellectual enterprises of computer science. Topics include algorithms (their design, implementation, and analysis); software development (abstraction, encapsulation, data structures, debugging, and testing); architecture of computers (low-level data representation and instruction processing); computer systems (programming languages, compilers, operating systems, and databases); and computers in the real world (networks, websites, security, forensics, and cryptography). The course teaches students how to think more carefully and how to solve problems more effectively. Problem sets involve extensive programming in C as well as PHP and JavaScript. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 50. Prerequisite: prior programming experience in any language. Students must view sample online lectures before they register. (4 credits)
CSCI E-64
Visualization (22872)
(Website) (Printable version)
Hanspeter Pfister, PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term
Online only, beginning Jan. 29. See Distance Education. Optional sections to be arranged.
Lecture 1 video.
The amount and complexity of information produced in science, engineering, business, and everyday human activity is increasing at staggering rates. We must increasingly rely on computational approaches to generate abstractions that help us to gain insights into large collections of data. The field of visualization seeks to answer questions about science and humanity by developing methods that transform data into meaningful, perceptually intuitive representations. Good visualizations not only present a visual interpretation of data, but improve comprehension, communication, and decision making. The aim of this course is to expose students to visualization methods and techniques that increase the understanding of complex data. The course covers how the human visual system processes and perceives images, good design practices for visualization, and tools for visualization of data from a variety of fields. The course is targeted both towards students interested in using visualization in their own work, and students interested in building better visualization tools and systems. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 171. Prerequisites: CSCI E-119, or the equivalent. Students must view sample online lectures before they register. (4 credits)
CSCI E-75
Building Dynamic, Scalable Websites (22884)
(Website) (Printable version)
David J. Malan, PhD, Lecturer on Computer Science, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Mondays beginning Jan. 26, 5:30-7:30 pm, Harvard Hall, Room 104. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
Today's websites are increasingly dynamic. Pages are no longer static HTML files but instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course explores issues of security, scalability, and cross-browser support and also discusses enterprise-level deployments of websites, including third-party hosting, virtualization, colocation in data centers, firewalling, and load-balancing. Prerequisite: prior programming experience (in any language) and familiarity with HTML is assumed. (4 credits)
CSCI E-113
Introduction to C, Unix/Linux, and CGI Programming (10033)
(Website) (Printable version)
Bruce Molay, AB, Lecturer in Extension, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Wednesdays beginning Sept. 17, 7:35-9:35 pm, Science Center, Room 110. Optional sections to be arranged.
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. (4 credits)
CSCI E-119
Data Structures (22568)
(Website) (Printable version)
David G. Sullivan, PhD, Lecturer on Computer Science, Boston University.
Course tuition: noncredit, undergraduate, and graduate credit $1,725.
Spring
term:
Tuesdays beginning Jan. 27, 7:35-9:35 pm, 1 Story Street, Room 306. Required sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 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 the equivalent). (4 credits)
CSCI E-124
Algorithms and Data Structures (21462)
(Website) (Printable version)
Michael Mitzenmacher, PhD, Gordon McKay Professor of Computer Science, Harvard University.
Course tuition: noncredit and graduate credit $1,975.
Spring
term
Online only, beginning Jan. 30. See Distance Education. Optional sections to be arranged.
Lecture 1 video.
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 School of Engineering and Applied Sciences course Computer Science 124. Prerequisites: CSCI E-119, or the equivalent and sound knowledge of discrete mathematics (MATH E-104, or the equivalent). Students must view sample online lectures before they register. (4 credits)
CSCI E-128
Fundamentals of System Administration (13204)
(Website) (Printable version)
Rei Diaz, Technical Support Analyst, Harvard University Library.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Thursdays beginning Sept. 18, 7:35-9:35 pm, Harvard Hall, Room 102. Optional sections to be arranged.
This course offers a practical grounding in the principles behind systems administration and demystifies why IT departments do the things they do, such as imposing limitations on users. To demonstrate universal principles that apply to all platforms, we utilize the major operating system families: Linux through Ubuntu, Unix through Solaris 10, Windows XP, Vista, Server, and Mac OS X. The course starts with a review of computer basics before addressing such issues as user account management, interoperability, data warehousing, capacity planning, load balancing, security, and disaster preparedness. Through hands-on assignments, students deal with challenges designed to help them create, customize, and grow their own IT toolbox. By the end of the semester, students showcase their skills in a final project in which they defend their work from hacking attempts. (4 credits)
CSCI E-131b
Communication Protocols and Internet Architectures
Course tuition: noncredit and graduate credit $1,725.
Fall term (11353) (Website)
(Printable version): Leonard Evenchik, SM, Lecturer in Extension, Harvard University.
Mondays beginning Sept. 15, 7:35-9:35 pm, 1 Story Street, Room 304. Optional
sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
Spring term (21387) (Website) (Printable version): Leonard Evenchik, SM, Lecturer in Extension, Harvard University. Online only, beginning Jan. 26. See Distance Education. Optional sections to be arranged. Students must view sample online lectures before they register. Lecture 1 video.
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; e-mail/SMTP; multimedia protocols for voice 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; a basic understanding of the principles of communication protocols. (4 credits)
CSCI E-132
Advanced Topics in Data Networking Protocols and Network Architectures (13033)
(Website) (Printable version)
Scott Bradner, University Technology Security Officer, Office of the Provost, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Fridays beginning Sept. 19, 5:30-7:30 pm, Science Center, Hall A.
Online and on-campus options. See Distance Education.
Lecture 1 video.
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, IPv3/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. (4 credits)
CSCI E-146
Algorithms for Computer Games (13172)
(Syllabus) (Printable version)
Kevin Dill, MS, Senior Artificial Intelligence Programmer, Mad Doc Software.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Thursdays beginning Sept. 18, 7:35-9:35 pm, Science Center, Room 113.
This course examines the basic algorithms used to create modern computer games. Over the course of the semester, students build their own games. Topics include, but are not limited to, Windows programming, game architecture, graphics, user input, physics, animation, camera control, and artificial intelligence. Prerequisite: CSCI E-119, or the equivalent. (4 credits)
CSCI E-153
Web Development Using XML (12151)
(Website) (Printable version)
David P. Heitmeyer, AM, Senior Software Product Architect/Engineer, iCommons, Central Administration Information Technology, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Tuesdays beginning Sept. 16, 5:30-7:30 pm, Harvard Hall, Room 104. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
Students learn key XML technologies (XML, XPath, XSL, XSL-FO, XML Schema, RNG, DTD, XQuery, DOM) as well as specific markup languages relevant to website development (XHTML, XHTMI Mobile Profile, RSS, RDF, XSL-FO, SVG, DocBook, OOXML, OpenDocument, XForms). In addition, the course covers topics such as XML and databases (native XML databases and RDBMS), XML programming APIs (DOM and SAX), Apache Cocoon (an open-source XML publishing framework), and the role of XML in Web 2.0 to deliver data and functionality through Ajax and web services (SOAP and REST). Using these technologies, students develop dynamic, data-driven websites that are capable of delivering content in a variety of media formats (screen, text, print, graphics) to a variety of devices (desktop, handheld, mobile) for a variety of audiences. Prerequisite: CSCI E-12, or the equivalent experience. (4 credits)
CSCI E-156
Google Search and Information Retrieval (12913)
(Syllabus) (Printable version)
Zoran B. Djordjevic, PhD, Software Architect, NTi, Inc.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Fridays beginning Sept. 19, 5:30-7:30 pm, 53 Church Street, Room 203. Optional sections to be arranged.
Google has become a verb, as well as a cultural and business phenomenon. In this course we try to understand some of the strategies that have led to Google's success by analyzing various efficient indexing, retrieval, and ranking algorithms for text collections, and by studying in fine detail some automatic document classification methods. We review the architecture of some commercial search engines that, by rule, rely on custom systems with large numbers of inexpensive PCs to achieve sub-second query response times. Additional time is devoted to text indexing engines used in relational database systems. Essential data structures and their algorithms, as well as concepts in linear algebra, are reviewed and used. The emphasis is on the phenomenological level and practical use of search engines. Prerequisites: CSCI E-119, plus knowledge of XML and relational database technology. (4 credits)
CSCI E-160
Java for Distributed Computing
Course tuition: noncredit and graduate credit $1,725.
Fall term (11838) (Website)
(Printable version): Charles M. Sawyer, Jr., MS, Systems Integration Engineer, ITA Software and Project Consultant, B. B. King Museum.
Tuesdays beginning Sept. 16,
7:35-9:35 pm, 1 Story Street, Room 306. Required sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
Spring term (22075) (Website) (Printable version): Charles M. Sawyer, Jr., MS, Systems Integration Engineer, ITA Software and Project Consultant, B. B. King Museum. Online only, beginning Jan. 27. See Distance Education. Required sections to be arranged. Students must view sample online lectures before they register. 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. Major features of Java5 are included. These common tools for Java development are discussed: JUnit, log4j, and Ant. 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. (4 credits)
CSCI E-162
Distributed and Enterprise Computing (21510)
(Website) (Printable version)
James Farley, MS, Director of Innovation Services, Cambridge Technology Enterprises.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Thursdays beginning Jan. 29, 5:30-7:30 pm, 53 Church Street, Room L01. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course offers an in-depth, immersive study of the practice of building enterprise systems within the Java programming environment and Java Enterprise Edition (Java EE) framework. The course progresses through a series of units (basic tools of the trade, messaging, data and directory services), covering along the way many of the key application programming interfaces (APIs) and tools used to develop enterprise applications. The tools and APIs covered include XML, JavaServer Faces, Java Persistence API, and Enterprise JavaBeans. Programming assignments give students 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: introduction to programming in Java; CSCI E-160, or the equivalent. Students are expected to be knowledgeable about the Java programming environment prior to taking this course. (4 credits)
CSCI E-168
Building Web-Based Software with Ruby and Ruby on Rails (12923)
(Website) (Printable version)
John G. Norman, PhD, Chief Software Architect, H3.com.
Course tuition: noncredit and graduate credit $1,725. Limited enrollment.
Fall
term:
Wednesdays beginning Sept. 17, 7:35-9:35 pm, 1 Story Street, Room 304. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course is a thorough introduction to Ruby and Ruby on Rails, focusing especially on the major strength of Rails: rapid prototyping and iterative development. The course culminates in the design and implementation of a web-based software product. Prerequisites: experience with an object-oriented programming language (Java, C++, C#, sophisticated Perl); experience in any framework for building web-based software (PHP, ASP, J2EE); some experience with relational databases and SQL. (4 credits)
CSCI E-170
Security, Privacy, and Usability (22815)
(Website) (Printable version)
Scott Bradner, University Technology Security Officer, Office of the Provost, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Fridays beginning Jan. 30, 5:30-7:30 pm, Science Center, Hall A.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course introduces computer and network security as it relates to enterprise and personal computing as well as to data networking. Special attention is paid to the implications of security technologies on enterprise and governmental policies including privacy policies, surveillance, and digital rights management. Topics include cryptography, forensics, human factors, watermarking, spyware, and privacy- and content-protecting technology. Students are expected to read a substantial amount of online material for each lecture. Prerequisites: basic knowledge of computer networks and systems. (4 credits)
CSCI E-181
Intelligent Machines: Perception, Learning, and Uncertainty (23101)
(Website) (Printable version)
Sarah J. Finney, PhD, Lecturer on Computer Science, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Thursdays beginning Jan. 29, 5:30-7:30 pm, Boylston Hall, Room 104.
This course is an introduction to artificial intelligence, focusing on problems of perception, machine learning, and reasoning under uncertainty; supervised learning algorithms; neural networks and applications to character recognition; statistical pattern recognition; Bayesian networks; representation, inference, and learning; hidden Markov models and applications to speech recognition; and Markov decision processes and reinforcement learning. Prerequisites: CSCI E-119 and STAT E-50, or the equivalent. (4 credits)
CSCI E-190
Bioinformatics Algorithms (23052)
(Website) (Printable version)
Jeff Parker, PhD, Lecturer in Extension, Harvard University and Assistant Professor of Computer Science, Merrimack College.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Tuesdays beginning Jan. 27, 7:35-9:35 pm, Sever Hall, Room 209. Required sections to be arranged.
Living things encode their genetic code in DNA, and use this information to regulate life processes. Bioinformatics is the study of living organisms viewed as information processors. We study algorithms for restriction mapping, sequence alignment, construction of phylogenetic trees, and structure prediction. While students can find implementations of many of these algorithms, a study of the algorithms leads to a better understanding of the assumptions and limitations of existing algorithms, and gives students the background to evaluate new ones. We explore some important biological problems, discuss mathematical models, and look at computer algorithms to solve these problems. Most of the interesting problems are intractable, so we look at heuristics. Prerequisite: CSCI E-119, or the equivalent. (4 credits)
CSCI E-207
Introduction to Formal Systems and Computation (12161)
(Website) (Printable version)
Salil P. Vadhan, PhD, Gordon McKay Professor of Computer Science and Applied Mathematics, Harvard University.
Course tuition: noncredit and graduate credit $1,975.
Fall
term
Online only, beginning Sept. 17. See Distance Education. Optional sections to be arranged.
Lecture 1 video.
This course is a general introduction to formal systems and the theory of computation, teaching how to reason precisely about computation and prove mathematical theorems about its capabilities and limitations. Topics include finite automata, Turing machines, formal languages, computability, uncomputability, computational complexity, and the P vs. NP question. The recorded lectures are from the Harvard School 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 the equivalent. Students must view sample online lectures before they register. (4 credits)
CSCI E-215
Unix/Linux Systems Programming (20034)
(Website) (Printable version)
Bruce Molay, AB, Lecturer in Extension, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Mondays beginning Jan. 26, 7:35-9:35 pm, 53 Church Street, Room L01. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
As an introduction to the fundamental structure and services of the Unix and Linux operating systems, this 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. (4 credits)
CSCI E-220
Artificial Intelligence (11420)
(Website) (Printable version)
David Albert, MS, Instructional Technology Specialist.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Thursdays beginning Sept. 18, 5:30-7:30 pm, Science Center, Room B-10. Required sections Thursdays, 7:35-8:35 pm.
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 the equivalent programming experience. (4 credits)
CSCI E-225
Object-Oriented Programming in C++ (22833)
(Website) (Printable version)
Kenneth J. Basye, PhD, Lecturer in Extension, Harvard University and Senior Staff Scientist, Human Language Technology Center of Excellence, Johns Hopkins University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Thursdays beginning Jan. 29, 7:35-9:35 pm, Science Center, Room 109. Optional sections to be arranged.
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. (4 credits)
CSCI E-236
Advanced Topics in Visual Computing (13187)
(Printable version)
Hanspeter Pfister, PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term
*** CSCI E-236 has been CANCELED.***
Online only. See Distance Education.
This course provides an in-depth study of an active research topic in visual computing, that is, the intersection of computer graphics, computer vision, and visualization. Topics may include general-purpose computing on graphics processors (GPGPU), computational photography, computer games, or computer animation. The atmosphere and feel of the course is a mixture of lectures and reading groups with student presentations, open discussions, and active student participation. The recorded lectures are from a Harvard School of Engineering and Applied Sciences course. Prerequisites: at least two years of programming experience writing computer programs in C/C++ or Java; MATH E-21b, or the equivalent. Students must view sample online lectures before they register. (4 credits)
CSCI E-237
Programming Microsoft .NET (13188)
(Website) (Printable version)
David S. Platt, ME, President, Rolling Thunder Computing, Inc.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Mondays beginning Sept. 15, 7:35-9:35 pm, Maxwell Dworkin, Room G135.
Online and on-campus options. See Distance Education.
Lecture 1 video.
The first half of this course covers the .NET framework in some detail. Covered topics include the type system, exceptions, garbage collection, threading, and reflection. The second half surveys the additional frameworks that are built on top of the .NET framework. Topics include ASP.NET, web services, WCF, WPF, and others to be selected based on class interest and availability of guest speakers. Extensive programming homework required. Prerequisites: familiarity with either the C# or VB.NET languages; at least one year of industrial experience in object-oriented programming. (4 credits)
CSCI E-241
Web Development Using ASP.NET, Silverlight, and Ajax (23020)
(Website) (Printable version)
Joseph Ficara, ASEE, Software Development Manager, Iron Mountain Digital.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Wednesdays beginning Jan. 28, 7:35-9:35 pm, 1 Story Street, Room 302. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course teaches the essentials of Web application design and development using Microsoft ASP.NET, Silverlight, and Ajax using Microsoft C#. Topics include form creation and validation, and dynamic data-driven sites using LINQ, ADO.NET, and SQL server. This course provides detailed coverage of Silverlight and Ajax. The following topics are also covered: server controls, web controls, CSS; state management; tracing and debugging; personalization; configuration and deployment; authentication; and authorization and site security. Prerequisite: CSCI E-237, or one year of .NET development using C#. (4 credits)
CSCI E-247/W
Software Design: Principles, Models, and Patterns (12070)
(Website) (Printable version)
William B. Robinson, PhD, Lecturer in Extension, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Tuesdays beginning Sept. 16, 7:35-9:35 pm, 1 Story Street, Room 304. Optional sections Tuesdays, 6:30-7:30 pm.
Online and on-campus options. See Distance Education.
Lecture 1 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. In addition, there is at least one significant assignment that requires designing and documenting a software subsystem without prior implementation. Prerequisites: CSCI E-119, or the equivalent and proficiency in Java. (4 credits)
CSCI E-253
Developing Web-based Database Applications (12465)
(Website) (Printable version)
Maria R. Garcia, EdD, Associate Professor of Graduate Studies, Franklin Pierce University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Wednesdays beginning Sept. 17, 7:35-9:35 pm, 1 Story Street, Room 306. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
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 build, populate, query, and write transactions for a relational database using SQL, and develop a client application to access their database using ColdFusion. 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. (4 credits)
CSCI E-254
Oracle 11g as a Development Platform (22898)
(Syllabus) (Printable version)
Zoran B. Djordjevic, PhD, Software Architect, NTi, Inc.
Course tuition: noncredit and graduate credit $1,975.
Spring
term:
Mondays beginning Jan. 26, 5:30-7:30 pm, Science Center, Room B-10. Optional sections to be arranged.
This course introduces students to Oracle11g, a relational database and an object-oriented development environment. Students engage in hands-on development in SQL and PL/SQL, as well as Java and XML. JDeveloper 11g, Oracle's flagship development tool, is introduced and used for most of our work. Students learn to write stored procedures, functions and triggers, and create packages (PL/SQL libraries). Also, students learn to store and manipulate XML and HTML contents, write and call Java programs and publish web services and HTML pages from within the database. Special attention is devoted to using Oracle text search technology. This course is intended for application developers and system integrators with knowledge of some basic relational concepts, Java, and XML. 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. (4 credits)
CSCI E-256
Oracle Database Administration (22750)
(Website) (Printable version)
Patrick McGowan, BSEE, Manager, Database Administration, University Information Systems, Harvard University.
Course tuition: noncredit and graduate credit $1,975.
Spring
term:
Wednesdays beginning Jan. 28, 5:30-7:30 pm, 53 Church Street, Room L01. Optional sections Wednesdays, 7:35-9:35 pm.
Online and on-campus options. See Distance Education.
Lecture 1 video.
Students study the internal structure and organization of an Oracle database. The course presents a structured approach to planning, building, tuning, and monitoring an Oracle 11g 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 familiarity with PL/SQL. (4 credits)
CSCI E-271
Advanced Topics in Oracle Database Management (13171)
(Website) (Printable version)
Patrick McGowan, BSEE, Manager, Database Administration, University Information Systems, Harvard University.
Course tuition: noncredit and graduate credit $1,975.
Fall
term:
Thursdays beginning Sept. 18, 5:30-7:30 pm, Maxwell Dworkin, Room G135. Optional sections to be arranged.
Students study the internal structure and organization of an Oracle database. The course presents a strategic and structured approach to high availability, performance tuning, and data and database security issues. Each student is required to build his or her own Oracle 11g database and use it to examine various topics. Prerequisites: an understanding of the principles of a relational database model and experience with Oracle database management; students must have the ability to create their own Oracle database. (4 credits)
CSCI E-275
Software Engineering (21908)
(Website) (Printable version)
William B. Robinson, PhD, Lecturer in Extension, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Tuesdays beginning Jan. 27, 5:30-7:30 pm, 1 Story Street, Room 302. Optional sections to be arranged.
Online and on-campus options. See Distance Education.
Lecture 1 video.
This course examines how current software engineering methods approach structuring and managing software projects, from requirements gathering to production release. Formal methods in software engineering have a long history, from the older waterfall method to the current agile methods. Students collaborate in small teams to define an architectural model and a project plan, and then implement a system while practicing techniques in software engineering. They prepare a presentation for the ALM in IT faculty committee based on the course project. Programming assignments are done in Java. Prerequisites: at least nine Master of Liberal Arts in Information Technology courses in the software engineering concentration, including CSCI E-247/W, and proficiency in Java, or permission of the instructor. (4 credits)
CSCI E-287
Computer Architecture (13090)
(Website) (Printable version)
James L. Frankel, PhD, Lecturer in Extension, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Fall
term:
Tuesdays beginning Sept. 16, 7:35-9:35 pm, Science Center, Room 109. Optional sections to be arranged.
This course is 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 encompassing the design and implementation of a new instruction set and CPU using an FPGA is required of all students. Prerequisites: knowledge of data structures and programming experience (CSCI E-119, or the equivalent) with some background in boolean/digital logic preferred, but not required (ENSC E-123, or the equivalent). (4 credits)
CSCI E-295
Compiler Design and Implementation (22947)
(Website) (Printable version)
James L. Frankel, PhD, Lecturer in Extension, Harvard University.
Course tuition: noncredit and graduate credit $1,725.
Spring
term:
Tuesdays beginning Jan. 27, 7:35-9:35 pm, Science Center, Room 109. Optional sections to be arranged.
This course is 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. An extensive programming project is required of all students. Prerequisites: knowledge of data structures and programming experience (CSCI E-119, or the equivalent) with an advanced algorithms course preferred, but not required (CSCI E-124, or the equivalent). (4 credits)