Courses

Evaluate Your Course

We depend on your feedback. Log in now to evaluate your fall course.

Related Courses

  • COMM E-180 Technical Writing
  • LSTU E-120 Internet and Society: Technologies and Politics of Control
  • MATH E-104 Discrete Mathematics with Computer Science Applications
  • PHYS E-123a Laboratory Electronics: Analog Circuit Design

Computer Science

Also see the Graduate Program in Information Technology.

Courselist

CSCI E-1 Understanding Computers and the Internet (23237)

Spring term

David J. Malan, PhD, Lecturer on Computer Science, Harvard University.
Daniel Armendariz, SB, Senior Network Engineer, Mindset Media.

Class times: Mondays beginning Jan. 25, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $1,850.

Online option available.

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-2 Bits (22883)

Spring term

Harry R. Lewis, PhD, Gordon McKay Professor of Computer Science, Harvard University.

Course tuition: noncredit, undergraduate, and graduate credit $1,850.

Online only, beginning Jan. 26. Optional sections to be arranged.

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. (4 credits)

CSCI E-7 Exposing Digital Photography (13395)

Fall term

Daniel Armendariz, SB, Senior Network Engineer, Mindset Media.

Class times: Mondays beginning Aug. 31, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,800.

Photography has exploded in recent years as digital cameras have become 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—from one-time users to professionals—become better photographers through an understanding of the technical aspects and terms of a digital camera. 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)

Spring term

Bakhtiar Mikhak, PhD, President and Founder, Media Modifications, Ltd.
Erik Blankinship, PhD, Co-founder, Media Modifications, Ltd.

Class times: Thursdays beginning Jan. 28, 5:30-7:30 pm. Optional sections Thursdays, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,800.

Limited enrollment.

This course offers an introduction to the fundamentals of computing and programming through prototyping, exhibiting, and critiquing interactive visualizations and physical creations that participants design, build, and refine. Through weekly projects students gain extensive experience with the Processing program language and its various extensions for incorporating rich data sets available on the web, and the PicoBoard and LogoChip development kits for an introduction to prototyping interactive physical systems. The Processing section of the course serves as conceptual and practical preparation for learning programming languages such as Java and ActionScript. The PicoBoard and LogoChip section of the course introduces electronics and programming microcontrollers for prototyping interactive physical systems incorporating rich sensors and actuators. This section begins with a simple activity that introduces the participants to a graphical programming language called Scratch. Prerequisite: general experience with Macintosh or Windows systems. (4 credits)

CSCI E-12 Fundamentals of Website Development (21144)

Spring term

David P. Heitmeyer, AM, Senior Software Product Architect/Engineer, iCommons, Office of the University CIO, Harvard University.

Class times: Wednesdays beginning Jan. 27, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,975.

Online option available.

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

Spring term, section 1 (23303)

Rob Graham, BS, Vice President of Creative and Technical Training, The Laredo Group.

Class times: Tuesdays beginning Jan. 26, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,975.

Online option available.

Limited enrollment.

Spring term, section 2 (23340)

Rob Graham, BS, Vice President of Creative and Technical Training, The Laredo Group.

Course tuition: noncredit and graduate credit $1,975.

Online only, beginning Jan. 27.

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 CS4 Professional, students learn how to design, plan, 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 (versions 2.0 and 3.0), 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)

Fall term

Allyson Sherlock, MA, Digital Software Specialist, Emerson College.

Class times: Saturdays beginning Sept. 12, 11 am-3 pm.

Course tuition: noncredit and graduate credit $1,975.

Limited enrollment.

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

CSCI E-21 Introduction to 3-D Modeling and Animation with Maya (12982)

Fall term

Tereza Flaxman, MFA, 3-D Animator and Author.

Class times: Tuesdays beginning Sept. 1, 5:30-7:30 pm. Required sections Tuesdays, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,975.

Limited enrollment.

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 Adobe Photoshop. (4 credits)

CSCI E-24 Video Editing and Digital Design (22659)

Spring term

Allyson Sherlock, MA, Digital Software Specialist, Emerson College.

Class times: Saturdays beginning Feb. 6, 11 am-3 pm.

Course tuition: noncredit and graduate credit $1,975.

Limited enrollment.

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

CSCI E-30 Introduction to Web Content Management Systems Site Development

Spring term, section 1 (23304)

Rob Graham, BS, Vice President of Creative and Technical Training, The Laredo Group.

Class times: Tuesdays beginning Jan. 26, 5:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,850.

Online option available.

Limited enrollment.

Spring term, section 2 (23341)

Rob Graham, BS, Vice President of Creative and Technical Training, The Laredo Group.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Jan. 27.

In a rapidly changing world, the need for online publishers to keep up with the needs and expectations of their site visitors is paramount. Today, many cutting edge web publishers use content management systems (CMS) to allow them to instantly and dynamically update web pages and properties as new content becomes available so that every visit to a site is engaging, informative, and meaningful. This course explores the use of open source web-based content management systems such as Joomla and Drupal to create dynamic and flexible web sites and landing pages. Participants explore the fundamentals of planning dynamic websites, CMS database management, developing CSS-controlled site templates, and creating database driven websites through the planning and creation of their own topic-based sites. Prerequisite: CSCI-E-12, or the equivalent experience. (4 credits)

CSCI E-50a Introduction to Computer Science Using Java I (10701)

Fall term

Henry H. Leitner, PhD, Senior Lecturer on Computer Science, Harvard University.

Class times: Mondays beginning Aug. 31, 5:30-7:30 pm. Required sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $1,850.

Online option available. 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)

Spring term

Henry H. Leitner, PhD, Senior Lecturer on Computer Science, Harvard University.

Class times: Mondays beginning Jan. 25, 5:30-7:30 pm. Required sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $1,850.

Online option available.

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)

Fall term

David J. Malan, PhD, Lecturer on Computer Science, Harvard University.

Course tuition: noncredit, undergraduate, and graduate credit $1,850.

Online only, beginning Sept. 3. Optional sections to be arranged. Lecture 1 video.

This course is an introduction to the intellectual enterprises of computer science and the art of programming. It teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, encapsulation, data structures, databases, memory management, software development, virtualization, and websites. Languages include C, PHP, and JavaScript plus SQL, CSS, and XHTML. Problem sets are inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 50. Prerequisite: prior programming experience in any language recommended. (4 credits)

CSCI E-64 Visualization (22872)

Spring term

Hanspeter Pfister, PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Jan. 26. Optional sections to be arranged.

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. (4 credits)

CSCI E-69 Smartphone Application Development (23263)

Spring term

Giuseppe Taibi, PhD, Founder and President, SmartWorlds.
Daniel Armendariz, SB, Senior Network Engineer, Mindset Media.

Class times: Tuesdays beginning Jan. 26, 5:30-7:30 pm. Required sections Tuesdays, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,800.

Limited enrollment.

This course focuses on developing applications for modern smartphone operating systems. Most of the course is dedicated to Apple's iPhone OS and Google's Android. Rapid application development techniques are covered, as well as setup of the development environment, real-world testing, and deployment to both the iTunes App Store and Android Marketplace. Prerequisite: CSCI E-12, or the equivalent. (4 credits)

CSCI E-75 Building Dynamic Websites (13394)

Fall term

David J. Malan, PhD, Lecturer on Computer Science, Harvard University.

Class times: Mondays beginning Aug. 31, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available. 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)

Fall term

Bruce Molay, AB, Lecturer in Extension, Harvard University.

Class times: Wednesdays beginning Sept. 2, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,800.

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 (13298)

Fall term

David G. Sullivan, PhD, Lecturer on Computer Science, Boston University.

Class times: Tuesdays beginning Sept. 1, 7:35-9:35 pm. Required sections to be arranged.

Course tuition: noncredit, undergraduate, and graduate credit $1,850.

Online option available. Lecture 1 video.

This course is a survey of fundamental data structures for information processing, including lists, stacks, queues, trees, and graphs. It 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)

Spring term

Michael Mitzenmacher, PhD, Gordon McKay Professor of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,975.

Online only, beginning Jan. 27. Optional sections to be arranged.

This is 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). (4 credits)

CSCI E-128 Fundamentals of System Administration (13204)

Fall term

Rei Diaz, Technical Support Analyst, Harvard University Library.

Class times: Wednesdays beginning Sept. 2, 5:30-7:30 pm. Optional sections Wednesdays, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,800.

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, Windows, and Mac OS. 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 IT toolbox. By the end of the semester, students showcase their skills in a final project in which they set up a server and protect it from attempts to compromise its security. Prerequisite: CSCI E-1, or equivalent experience. (4 credits)

CSCI E-131b Communication Protocols and Internet Architectures

Fall term (11353)

Leonard Evenchik, SM, Lecturer in Extension, Harvard University.

Class times: Mondays beginning Aug. 31, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available. Lecture 1 video.

Spring term (21387)

Leonard Evenchik, SM, Lecturer in Extension, Harvard University.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Jan. 25. Optional sections to be arranged.

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)

Fall term

Scott Bradner, University Technology Security Officer, Office of the Chief Information Officer, Harvard University.

Class times: Fridays beginning Sept. 4, 5:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,850.

Online option available. 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-153 Web Development Using XML (12151)

Fall term

David P. Heitmeyer, AM, Senior Software Product Architect/Engineer, iCommons, Office of the University CIO, Harvard University.

Class times: Tuesdays beginning Sept. 1, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available. 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-160 Java for Distributed Computing (11838)

Fall term

Charles M. Sawyer, Jr., MS, Systems Integration Engineer, ITA Software and Consultant, B. B. King Museum and Delta Interpretive Center.

Class times: Tuesdays beginning Sept. 1, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available. 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 and Java6 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. Prerequisite: substantial experience with another programming language, preferably an object-oriented language. (4 credits)

CSCI E-162 Distributed and Enterprise Computing (21510)

Spring term

James Farley, MS, Consultant, Pearson Higher Education.

Class times: Thursdays beginning Jan. 28, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available.

This course offers an in-depth study of the principles of building enterprise systems, using the Java Enterprise Edition (Java EE) framework as the hands-on environment for putting these principles to practice. The course progresses through a simulated product development exercise that incrementally uses the tools introduced in class. The tools include web application components, web services, messaging, database persistence, and business process management (BPM). Prerequisites: introduction to programming in Java; CSCI E-160, or the equivalent. Prior experience writing basic Java applications, plus some exposure to web and database technologies, is strongly recommended. (4 credits)

CSCI E-168 Building Web-Based Software with Ruby and Ruby on Rails (12923)

Fall term

John G. Norman, PhD, Vice President of Engineering, Digital Advisor.

Class times: Thursdays beginning Sept. 3, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available. Lecture 1 video.

Limited enrollment.

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)

Spring term

Scott Bradner, University Technology Security Officer, Office of the Chief Information Officer, Harvard University.

Class times: Fridays beginning Jan. 29, 5:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,850.

Online option available.

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-175 Cloud Computing and Software as a Service (23350)

Spring term

Zoran B. Djordjevic, PhD, Software Architect, NisHava, Inc.

Class times: Mondays beginning Jan. 25, 7:35-9:35 pm. Optional sections Mondays, 6:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,800.

Cloud computing is a recent practical development opening the possibility for infinite or at least highly elastic scalability in the delivery of enterprise applications and software as service (SaaS). Amazon Elastic Cloud, Salesforce.com, Google App Engine, and few other offerings give both mature software vendors and new start-ups the option to deploy the applications to a system of infinite computational power with practically no capital down and modest operating costs proportional to the actual use. The course examines basic APIs used in the Cloud, including the techniques for building, deploying, and maintaining applications. We learn how to weave existing SaaS offerings into new services and how to use Hadoop, the open source implementation of MapReduce framework and RestFul Web services, to build very powerful and efficient applications. We also learn how to deal with not trivial issues in the Cloud: load balancing, caching, distributed transactions, and identity and authorization management. Prerequisites: familiarity with Java and XML. (4 credits)

CSCI E-181 Intelligent Machines: Perception, Learning, and Uncertainty (23101)

Spring term

David C. Parkes, PhD, Gordon McKay Professor of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Jan. 26. Optional sections to be arranged.

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. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 181. Prerequisites: CSCI E-119 and STAT E-50, or the equivalent, with a grade of B+ or higher. (4 credits)

CSCI E-190 Bioinformatics Algorithms (23052)

Spring term

Jeff Parker, PhD, Lecturer in Extension, Harvard University.

Class times: Wednesdays beginning Jan. 27, 7:35-9:35 pm. Required sections Wednesdays, 5:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,800.

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-50b, or the equivalent. (4 credits)

CSCI E-207 Introduction to Formal Systems and Computation (12161)

Fall term

Harry R. Lewis, PhD, Gordon McKay Professor of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,975.

Online only, beginning Sept. 4. 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. (4 credits)

CSCI E-215 Unix/Linux Systems Programming (20034)

Spring term

Bruce Molay, AB, Lecturer in Extension, Harvard University.

Class times: Mondays beginning Jan. 25, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available.

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)

Fall term

David Albert, MS, Instructional Technology Specialist.

Class times: Thursdays beginning Sept. 3, 5:30-7:30 pm. Required sections Thursdays, 7:35-8:35 pm.

Course tuition: noncredit and graduate credit $1,800.

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)

Spring term

Kenneth J. Basye, PhD, Lecturer in Extension, Harvard University and Senior Staff Scientist, Human Language Technology Center of Excellence, Johns Hopkins University.

Class times: Thursdays beginning Jan. 28, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,800.

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-234 Introduction to Computer Graphics (13334)

Fall term

Jeff Parker, PhD, Lecturer in Extension, Harvard University.

Class times: Tuesdays beginning Sept. 1, 7:35-9:35 pm. Optional sections Tuesdays, 5:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,800.

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. We introduce the mathematical tools and important computer graphics concepts such as geometric modeling, illumination, texture mapping, and anti-aliasing. Students learn OpenGL, the industry standard API for computer graphics. Students learn to write full-fledged interactive graphics applications with 3-D transformations and projections, shading, modeling hierarchies, and animation. We also introduce the principles of ray tracing, a high-end image generation technique. This course does not cover the use of graphic design applications such as Photoshop and AutoCAD; it is a programming class. Prerequisite: CSCI E-119, or the equivalent. (4 credits)

CSCI E-237 Programming Microsoft .NET (13188)

Fall term

David S. Platt, ME, President, Rolling Thunder Computing, Inc.

Class times: Mondays beginning Aug. 31, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,850.

Online option available. 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)

Spring term

Joseph Ficara, ASEE, Architect and Software Development Manager, Iron Mountain Digital.

Class times: Tuesdays beginning Jan. 26, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available.

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; jQuery, state management; tracing and debugging; personalization; configuration; 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)

Fall term

William B. Robinson, PhD, Lecturer in Extension, Harvard University.

Class times: Mondays beginning Aug. 31, 7:35-9:35 pm. Required sections Mondays, 6:30-7:30 pm.

Course tuition: noncredit and graduate credit $1,850.

Online option available. Lecture 1 video.

Writing-intensive course.

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-250 Abstraction and Design in Computation (23371)

Spring term

John Gregory Morrisett, PhD, Allen B. Cutting Professor of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Jan. 27. Required sections to be arranged.

This course covers abstraction and design in computation. Topics include functional and object-oriented styles of programming, software engineering in the small, and models of computation. The goal is to understand how to design large programs to make them readable, maintainable, efficient, and elegant. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 51. Exercises are conducted in Scheme. Prerequisites: CSCI E-52 and MATH E-104, or the equivalents. (4 credits)

CSCI E-251 Principles of Operating Systems (13324)

Fall term

James L. Frankel, PhD, Lecturer in Extension, Harvard University.

Class times: Tuesdays beginning Sept. 1, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,800.

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 the equivalent. (4 credits)

CSCI E-253 Developing Web-Based Database Applications (12465)

Fall term

Maria R. Garcia, EdD, Associate Professor of Graduate Studies, Franklin Pierce University.

Class times: Wednesdays beginning Sept. 2, 5:30-7:30 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,850.

Online option available. 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-256 Oracle Database Administration (22750)

Spring term

Patrick McGowan, BSEE, Manager, Database Administration, University Information Systems, Harvard University.

Class times: Thursdays beginning Jan. 28, 5:30-7:30 pm. Optional sections Thursdays, 7:35-9:35 pm.

Course tuition: noncredit and graduate credit $1,975.

Online option available.

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-268 Information Management (23300)

Spring term

Margo Seltzer, PhD, Harvard College Professor and Herchel Smith Professor of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Jan. 27. Optional sections to be arranged.

This course covers the fundamental concepts of database and information management. Data models include relational, object-oriented, and other; implementation techniques of database management systems, such as indexing structures, concurrency control, recovery, and query processing; management of unstructured data; and terabyte-scale databases. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 165. Prerequisites: CSCI E-119, E-215 , and experience developing complex software systems. (4 credits)

CSCI E-275 Software Engineering (21908)

Spring term

William B. Robinson, PhD, Lecturer in Extension, Harvard University.

Class times: Mondays beginning Jan. 25, 5:30-7:30 pm. Required sections Mondays, 7:35-8:35 pm.

Course tuition: noncredit and graduate credit $1,850.

Online option available.

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: student must be degree candidates in the Graduate Program in Information Technology and have completed nine 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 (23181)

Spring term

James L. Frankel, PhD, Lecturer in Extension, Harvard University.

Class times: Tuesdays beginning Jan. 26, 7:35-9:35 pm. Optional sections to be arranged.

Course tuition: noncredit and graduate credit $1,800.

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-292 Massively Parallel Computing (13450)

Fall term

Hanspeter Pfister, PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University.

Course tuition: noncredit and graduate credit $1,850.

Online only, beginning Sept. 3. Lecture 1 video.

There are big changes afoot. Computation is moving from sequential to parallel, from your PC to the cloud, and from your CPU to high-performance GPUs. In fact, this is the belated arrival of massively parallel computing, where hundreds or thousands of processors (either in the cloud or on your GPU) are running massive numbers of programs in parallel. And the technology is getting better, faster, and cheaper. In this course, students get hands-on experience in developing software for massively parallel computing resources. We cover parallel programming models, hardware architectures, multi-threaded programming, GPU programming, cluster computing, cloud computing, and MapReduce using Hadoop and Amazon's EC2. The recorded lectures are from the Harvard School of Engineering and Applied Sciences course Computer Science 264. Prerequisites: CSCI E-113 or E-215, or the equivalent. (4 credits)



Browse courses by subject