Spring 2025
Computer Science for Business Professionals
David J. Malan PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University
This course is a variant of Harvard College's introduction to computer science, CS50, designed especially for business professionals. Whereas CS50 itself takes a bottom-up approach, emphasizing mastery of low-level concepts and implementation details thereof, this course takes a top-down approach, emphasizing mastery of high-level concepts and design decisions related thereto. Ultimately this course empowers students to make technological decisions even if they are not technologists themselves. Topics include cloud computing, networking, privacy, scalability, security, and more, with an emphasis on web and mobile technologies. Students emerge from this course with first-hand appreciation of how it all works and all the more confident in the factors that should guide their decision making. This course is designed for managers, product managers, founders, and decision makers more generally.
Fall 2024
Computer Science for Business Professionals
David J. Malan PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University
This course is a variant of Harvard College's introduction to computer science, CS50, designed especially for business professionals. Whereas CS50 itself takes a bottom-up approach, emphasizing mastery of low-level concepts and implementation details thereof, this course takes a top-down approach, emphasizing mastery of high-level concepts and design decisions related thereto. Ultimately this course empowers students to make technological decisions even if they are not technologists themselves. Topics include cloud computing, networking, privacy, scalability, security, and more, with an emphasis on web and mobile technologies. Students emerge from this course with first-hand appreciation of how it all works and all the more confident in the factors that should guide their decision making. This course is designed for managers, product managers, founders, and decision makers more generally.
Fall 2024
Introduction to Web Programming Using JavaScript
Larry Bouthillier MS, Executive Director, University of British Columbia Extended Learning
This course provides an introduction to web development by way of the essential language and runtime environment that powers modern web interfaces. Through a series of examples and projects, students learn basic programming concepts while building an understanding of the power and complexities of JavaScript, which can perplex even experienced web developers. The course provides a solid foundation in computer programming in JavaScript: syntax and data structures, conditionals, objects, scope and closures, Ajax, the DOM, and event handling. Students gain an understanding of the popular libraries that power rich web applications such as jQuery, VueJS, and others. Upon completion, students are prepared to use JavaScript libraries in their projects, write their own or extend existing JavaScript libraries, and build rich web applications using these powerful tools. No computer programming experience is required, though exposure to basic HTML and CSS is helpful.
Fall 2024
Introduction to Programming with R
Carter Zenke EdM, Senior Preceptor, Harvard Extension School
This course is an introduction to programming using a language called R, a popular language for statistical computing and graphics in data science and other domains. Students learn to use RStudio, a popular integrated development environment (IDE). They learn to represent real-world data with vectors, matrices, arrays, lists, and data frames, and to filter data with conditions, via which one can analyze subsets of data. We apply functions and loops, via which students can manipulate and summarize data sets, and write functions to modularize code and raise exceptions when something goes wrong. The course also covers how to tidy data with R's tidyverse and create colorful visualizations with R's grammar of graphics. By course's end, students learn to package, test, and share R code for others to use. Assignments are inspired by real-world data sets.
Spring 2025
Introduction to Computer Science with Python
Henry H. Leitner PhD, Senior Lecturer on Computer Science, Harvard University
This course is an introduction to computer science for students without prior programming experience. It explores problem-solving and data analysis using Python, a programming language with a simple syntax and a powerful set of libraries. This course covers basic data types and collections (lists, dictionaries, tuples, and sets), control flow, recursion, information hiding, and encapsulation using classes and objects, and introduces the analysis of program performance. The course teaches several mathematical, statistical, and computational methods that enable students to think critically about data as it is employed in various fields of inquiry. Other topics include the social and ethical dilemmas presented by such issues as software unreliability, algorithmic bias, and invasions of privacy.
Fall 2024
Introduction to Computer Science with Python
Henry H. Leitner PhD, Senior Lecturer on Computer Science, Harvard University
This course is an introduction to computer science for students without prior programming experience. It explores problem-solving and data analysis using Python, a programming language with a simple syntax and a powerful set of libraries. This course covers basic data types and collections (lists, dictionaries, tuples, and sets), control flow, recursion, information hiding, and encapsulation using classes and objects, and introduces the analysis of program performance. The course teaches several mathematical, statistical, and computational methods that enable students to think critically about data as it is employed in various fields of inquiry. Other topics include the social and ethical dilemmas presented by such issues as software unreliability, algorithmic bias, and invasions of privacy.
Spring 2025
Mobile GIS
Pinde Fu PhD, Team Lead of Platform Engineering and Senior Principal Software Developer Engineer, Esri
Mobile first and the post-PC era aren't merely buzzwords; they represent today's reality. Within the geospatial information systems (GIS) industry, mobile internet and mobile GIS have profoundly transformed how we acquire, visualize, analyze, and disseminate geospatial information. With their ubiquitous use and location-aware capability, the mobile platform has emerged as the dominant client of enterprise GIS across various industries, making mobile GIS crucial to the business operations and future success of countless organizations. Consumer mobile GIS applications, such as Google Maps, Google Earth, Waze, and Zillow, have put the basic GIS capabilities in everyone's hands. This course focuses on enterprise mobile GIS, which offers a much wider variety of capabilities. It provides principles and detailed tutorials to teach today's cutting-edge mobile GIS technologies. Using a no-code/low-code approach, this course makes mobile GIS easy and enjoyable to learn. Students can immediately become productive in creating enterprise GIS solutions, ranging from online and offline spatial data visualization, data collection, location sharing, and workforce coordination, to integration with enterprise workflows. It is a comprehensive resource covering Esri's suite of mobile technologies, including native-based applications like ArcGIS Survey123, Field Maps, and QuickCapture, and browser-based applications such as ArcGIS Dashboards and Experience Builder. Moreover, students can also acquire advanced knowledge to extend mobile GIS using Arcade, Webhooks, HTML/CSS/JavaScript, and ArcGIS Mobile SDKs. The course explores popular applications, including location-based services (LBS), volunteered geographic information (VGI), 3D mapping, virtual reality (VR), and augmented reality (AR).
Prerequisites: Students must have a computer (Windows or MacOS) and a smartphone or tablet (iOS or Android).
Fall 2024
Introduction to Computer Science Using Java I
Henry H. Leitner PhD, Senior Lecturer on Computer Science, Harvard University
Intended for students with no previous programming background, this course introduces problem-solving methods and algorithm development using Java, one of the most popular high-level programming languages in the world. Students learn how to design, code, debug, and document programs using modern engineering techniques in a cloud-based Linux 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. Students can count two of the following three courses CSCI E-10a, CSCI E-10b, and CSCI E-50 toward a degree. They may not count all three toward a degree.
Fall 2024
Introduction to Computer Science Using Java II
Henry H. Leitner PhD, Senior Lecturer on Computer Science, Harvard University
This course is a continuation of CSCI E-10a, with an emphasis on object-oriented programming using Java, one of the world's most popular programming languages. We begin with the implementation of abstract data types using classes, focusing on encapsulation of procedures and data, inheritance hierarchies, and polymorphism across different object types. Other topics include string processing, multidimensional arrays, ArrayLists, 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 concludes with an introduction to RISC machine architecture and aspects of compilers and operating systems. Programming exercises are conducted in a cloud-based Linux environment. Students can count two of the following three courses CSCI E-10a, CSCI E-10b, and CSCI E-50 toward a degree. They may not count all three toward a degree.
Prerequisites: CSCI E-10a, or the equivalent experience in a high-level programming language such as C, C++, or Java.
Spring 2025
Introduction to Computer Science Using Java II
Henry H. Leitner PhD, Senior Lecturer on Computer Science, Harvard University
This course is a continuation of CSCI E-10a, with an emphasis on object-oriented programming using Java, one of the world's most popular programming languages. We begin with the implementation of abstract data types using classes, focusing on encapsulation of procedures and data, inheritance hierarchies, and polymorphism across different object types. Other topics include string processing, multidimensional arrays, ArrayLists, 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 concludes with an introduction to RISC machine architecture and aspects of compilers and operating systems. Programming exercises are conducted in a cloud-based Linux environment. Students can count two of the following three courses CSCI E-10a, CSCI E-10b, and CSCI E-50 toward a degree. They may not count all three toward a degree.
Prerequisites: CSCI E-10a, or the equivalent experience in a high-level programming language such as C, C++, or Java.
Spring 2025
Artificial Intelligence, the Internet-of-Things, and Cybersecurity
Simson L. Garfinkel PhD, Visiting Lecturer on Computer Science, John A. Paulson School of Engineering and Applied Sciences, Harvard University - Geoff Cohen PhD, Consultant
In this course, we review use cases and challenges of three interrelated areas in computer science: cybersecurity (cyber), artificial intelligence (AI), and the internet-of-things (IoT). Students gain an overview of the possibilities and challenges of building complex information systems that take advantage of recent advances in these fields. Although the course covers three distinct areas, the emphasis is to have each student develop a personal toolkit of analytic approaches that can be used to analyze and understand problems in these or any other area at the leading edge of applied computer science. Students gain an understanding of what is possible today, what is likely to be delivered from research labs and into production within the next three years, and what is almost certainly science fiction. The course begins with a full-stack introduction to the computer science ecosystem, starting with the fundamentals of digital computers and computation, modern system architectures, the technology supply ecosystem, funding mechanisms, customers, and the impact of governments and mega-corporations. Students learn how to find and understand the research literature of computer science. Next, this course explores how cybersecurity is a constant issue that must be addressed at every level of the stack; to do this, the course uses a combination of first principles and a case-study approach. The second part surveys state-of-the-art topics in designing AI products and services. The focus of this part of the course is to understand AI's rapidly evolving frontier. It covers the history and likely future directions of research, including the 50-year tension between symbolic and connectionist (neural network) approaches to AI, the AI hype cycle, knowledge representation, computer vision, reinforcement learning, and deep learning. Topics in this first section also include existing hurdles for successful AI design such as explainability, visualization, and adversarial attacks. The third part of the course looks at the IoT. While the promise of the IoT brings many new business opportunities, it also presents significant challenges including architectural choices, security concerns, moral challenges, and the potential for social upheaval. This part of the course offers approaches for identifying important choices facing designers for example, the engineering and business tradeoffs between using AI at the edge or in the cloud. By the end of the course students come to appreciate that cyber, AI, and IoT all seem like different things, and indeed are all being researched and practiced by different groups, but that success in both the marketplace and in the competition between the great powers requires mastery of all three, because they are really all aspects of using machine computation for human advantage.
Prerequisites: An introductory computer science course (for example, CSCI E-3, CSCI E-7, or CSCI E-10a) plus familiarity with precalculus mathematics (MATH E-10 or the equivalent).
Fall 2024
Fundamentals of Website Development
David P. Heitmeyer AM, Director of Academic Platforms and Development, Harvard University Information Technology
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 HTML5, 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 (HTML5, 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: Basic familiarity working with computers, including file management.
Spring 2025
Web Programming with PHP
Susan Buck MPS, Web Programmer
The needs of modern web applications vary greatly depending on the business/product the application is serving, but certain functionality is common to most applications. Such functionality includes registration/authentication, form processing and validation, routing, caching, and database interfacing. While this functionality can be built from scratch with any server-capable language, it is more efficient to use a framework that provides this common functionality out of the box, allowing developers to focus on the specific business needs of their application. In this course, students learn about framework-based web application development via the lens of the PHP framework Laravel. Along the way, we explore paradigms common to web frameworks beyond Laravel, such as routing, controllers, models, views, and object-relational mapping. Over the course of the semester, we build stand-alone web applications and also look at how to build web services that can act as the backend to single-page applications built using tools such as Angular, React, or Vue.js.
Prerequisites: DGMD E-2 or equivalent foundation in programming. Students should also be comfortable with HTML/CSS and basic website publishing (CSCI E-12 or equivalent). For more information about the prerequisites, see http://hesweb.dev/e15/prereq.
Fall 2024
Discrete Mathematics for Computer Science
Michael Mitzenmacher PhD, Thomas J. Watson, Sr. Professor of Computer Science, Harvard University - Kitty Ascrizzi ME, Preceptor in Computer Science, Harvard University
This course teaches all the math not taught in the traditional calculus/linear algebra sequence that is needed to take more advanced courses in theory of computation and/or algorithms. That is, it teaches discrete mathematics, logic, and basic probability, but does not teach calculus or linear algebra. It also gives a good introduction to reading mathematical notation and writing formal proofs. A principal objective of the course is to not just teach a set of mathematical topics, but also to prepare students to think mathematically and to read and write mathematics.
Prerequisites: MATH E-10 or the equivalent.
Spring 2025
Discrete Mathematics for Computer Science
Rebecca Nesson PhD, Associate Senior Lecturer on Computer Science, Harvard University - Adam Hesterberg PhD, Lecturer on Computer Science, John A. Paulson School of Engineering and Applied Sciences, Harvard University
This course teaches all the math not taught in the traditional calculus/linear algebra sequence that is needed to take more advanced courses in theory of computation and/or algorithms. That is, it teaches discrete mathematics, logic, and basic probability, but does not teach calculus or linear algebra. It also gives a good introduction to reading mathematical notation and writing formal proofs. A principal objective of the course is to not just teach a set of mathematical topics, but also to prepare students to think mathematically and to read and write mathematics.
Prerequisites: MATH E-10 or the equivalent.
Fall 2024
Data Structures
David G. Sullivan PhD, Master Lecturer on Computer Science, Boston University
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-10b, or the equivalent).
Spring 2025
Data Structures
David G. Sullivan PhD, Master Lecturer on Computer Science, Boston University
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-10b, or the equivalent).
Fall 2024
Introduction to Game Development
Colton T. Ogden Chief Technology Officer, From Zero LLC
This course focuses on the development of 2D and 3D interactive games. Students explore the design of such childhood games as Super Mario Bros., Legend of Zelda, and Portal in a quest to understand how video games themselves are implemented. Via lectures and hands-on projects, the course explores principles of 2D and 3D graphics, animation, sound, and collision detection using frameworks like Unity and L VE 2D, as well as languages like Lua and C#. By course's end, students have programmed several of their own games and gained a thorough understanding of the basics of game design and development.
Prerequisites: CSCI E-7, CSCI E-10a, CSCI E-10b, CSCI E-50, CS50x, or prior programming experience in any language.
Spring 2025
Computer Vision
Stephen Elston PhD, Principal Consultant, Quantia Analytics LLC
Computer vision is an exciting and rapidly changing field. In a little over ten years, deep learning algorithms have revolutionized several aspects of computer vison. Applications that were infeasible or impractical a few years ago are now in routine production. These advances allow intelligent systems to interact with the real-world using vision. Examples of modern computer vision (CV) applications include digital photography, robotic vision, autonomous vehicles, medical imaging, and scientific imaging. This course is a fast-moving survey of both fundamental theory of CV algorithms along with hands-on practical assignments applying these methods using Python. Successfully deploying CV applications often requires a combination of classical methods and state-of-the-art algorithms. Therefore, this course covers the classical image processing and CV techniques often found in practical CV solutions. From this foundation the course moves to the deep learning algorithms that have revolutionized CV. Students apply tools drawn from the extensive universe of Python CV related packages in the hands-on assignments to reinforce key principles. Major topics covered in the course include: algorithms used to prepare images, transform images, and extract features; statistical properties of images and methods of decomposition; machine learning algorithms for CV, including deep learning; classification of objects in images; motion in images and optical flow; object detection and tracking algorithms; models for stereo vision; segmentation of images; and generative models.
Prerequisites: Experience programming using the Python language, equivalent to CSCI E-7 or CSCI E-29. For people with limited Python programming skills, experience programming in any language, such as R, Matlab, or C++ is helpful. Some exposure to basic machine learning and data science methods, equivalent to CSCI E-101, is helpful. Knowledge of linear algebra, including eigenvalue-eigenvector decomposition and some knowledge of differential and integral calculus is essential.
Fall 2024
Introduction to C, Unix/Linux Programming, and Web Interfaces
Bruce Molay AB, Lecturer in Extension, Harvard University
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 course teaches students how to write C programs and Unix shell scripts, and how to create web interfaces to those programs. 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 use HTML and server-side Unix programming to provide web access to those applications and data.
Prerequisites: A working knowledge of a structured programming language such as C++, Java, JavaScript, or Python; a data structures course such as CSCI E-22.
Spring 2025
Unix/Linux Systems Programming
Bruce Molay AB, Lecturer in Extension, Harvard University
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++ at the level of CSCI E-26 and a data structures course such as CSCI E-22; some experience using Unix helpful.
Spring 2025
Web Application Development Using Node.js
Larry Bouthillier MS, Executive Director, University of British Columbia Extended Learning
This course provides an introduction to web application development by way of JavaScript and the node.js environment. Students learn the basics of server-side web development using the MEAN stack (MongoDB, Express.js, Angular, node.js). Using the MEAN stack, the course introduces students to models of software development that can apply to any web development environment, including the application server (node.js), Model View Controller (MVC) frameworks using Express.js, front-end frameworks (Angular), and databases (MongoDB). The course includes setting up a node.js environment, building representational state transfer (REST) application programming interfaces (APIs) and full-stack JavaScript applications using the MEAN stack, and following good application development practices. Experience with server-side application development is not required, though knowledge of client-side web development (HTML/CSS/JavaScript) is important.
Prerequisites: Basic HTML/JavaScript. CSCI E-3 and CSCI E-12 are excellent preparations for this course.
Spring 2025
Web Programming with Python and JavaScript
Brian Paul Yu EdM, Preceptor in Computer Science, Harvard University
This course examines the design and implementation of web applications with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. Topics include database design, scalability, security, and user experience. Through hands-on projects, students learn to write and use application programming interfaces (APIs), create interactive user interfaces (UIs), and leverage cloud services like GitHub and Heroku. By semester's end, students emerge with knowledge and experience in the principles, languages, and tools that empower them to design and deploy applications on the internet.
Prerequisites: CSCI E-50, CS50x, or prior programming experience in any language.
Fall 2024
Web Programming with Python and JavaScript
Brian Paul Yu EdM, Preceptor in Computer Science, Harvard University
This course examines the design and implementation of web applications with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. Topics include database design, scalability, security, and user experience. Through hands-on projects, students learn to write and use application programming interfaces (APIs), create interactive user interfaces (UIs), and leverage cloud services like GitHub and Heroku. By semester's end, students emerge with knowledge and experience in the principles, languages, and tools that empower them to design and deploy applications on the internet.
Prerequisites: CSCI E-50, CS50x, or prior programming experience in any language.
Spring 2025
User Experience Engineering
David S. Platt ME, President, Rolling Thunder Computing, Inc.
Success in today's software marketplace requires excellent user experience (UX). This course presents the foundations of excellent UX in a platform-agnostic manner. This course requires no programming. Instead, we focus on deciding what to program to make our users happier and more productive. Students learn to start with the user, not the toolkit. Who are our users and how do we represent them with personas? What problems are these users trying to solve, what would they consider a good solution, and how do we represent that with stories? How should the user interaction flow and how do we represent it with quick, inexpensive mockups? How can we test different designs on users? How can we learn what users really do, instead of what they can remember or will admit to? Students work on a term project, performing all steps of the UX design process. We use modern design tools such as Figma. We examine in-depth case studies and hear from industry-leading guest speakers. Students finish this course with a starter portfolio to show potential employers.
Fall 2024
Design Principles in React
Nico Tejera Aguirre ALM, Chief Technology Officer, Tolemi - Brandon Cloutier
This course teaches the fundamental principles of ReactJS and TypeScript, equipping students with the skills needed to create complex, scalable, and robust web applications. Additionally, we explore essential design principles such as color theory, user interface/user experience (UI/UX) design patterns, and user-friendly interfaces. Upon completion of this course, students gain a strong foundation in ReactJS, TypeScript, and develop the capability to create intuitive web applications.
Prerequisites: Proficiency in Javascript, HTML, and CSS.
Fall 2024
Communication Protocols and Internet Architectures
Len Evenchik SM, Lecturer in Extension, Harvard University
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, domain name system (DNS), multimedia protocols for voice and video, routing protocols (RIP, OSPF, and BGP), 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, network security and encryption, and the design and analysis of both private networks and the internet are presented. The course discusses new areas of work, including real-time voice and video on the internet, Cloud network architecture, gigabit wireless networks, internet of things (IoT), software-defined networks (SDN), and network functions virtualization (NFV).
Prerequisites: Programming or networking experience; a basic understanding of the principles of communication protocols.
Spring 2025
Communication Protocols and Internet Architectures
Len Evenchik SM, Lecturer in Extension, Harvard University
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, domain name system (DNS), multimedia protocols for voice and video, routing protocols (RIP, OSPF, and BGP), 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, network security and encryption, and the design and analysis of both private networks and the internet are presented. The course discusses new areas of work, including real-time voice and video on the internet, Cloud network architecture, gigabit wireless networks, internet of things (IoT), software-defined networks (SDN), and network functions virtualization (NFV).
Prerequisites: Programming or networking experience; a basic understanding of the principles of communication protocols.
Spring 2025
Cloud Architectures, Security, and Governance
Ramesh Nagappan MS, Principal Security Technologist, Amazon
This course is designed to offer a comprehensive grasp of cloud architectural principles, design patterns, and best practices in security and governance, specifically tailored to address the evolving landscape of multi-cloud hosted services. Commencing with thorough foundational coverage, the course delves deep into essential concepts and techniques crucial for designing, implementing, delivering, and managing secure cloud-based services. It encompasses topics such as containers, serverless computing with microservices, event-driven models, and strategies for deploying generative artificial intelligence (AI) and large-language model (LLM) based applications. Throughout the course, more focus is given to the role of security and governance in developing applications for multi-cloud environments. Emphasis is placed on assessing and managing risks related to cloud adoption, hybrid cloud network topologies, data protection using applied cryptography, end-to-end identity management, access control, monitoring, auditing, intrusion detection, incident response processes, fraud detection, and compliance with industry and regulatory mandates. Upon completion of the course, students are well equipped to apply multi-cloud architectures in real-world scenarios; implement security and governance best practices for deploying cloud infrastructure, data, and applications; and gain profound insights into regulatory compliance and privacy considerations within the cloud environment.
Prerequisites: CSCI E-7, CSCI E-33a, CSCI E-90, or CSCI E-94, or the equivalent.
Fall 2024
Cloud Security
Ramesh Nagappan MS, Principal Security Technologist, Amazon
Cloud computing infrastructure has become a mainstay of the information technology industry, opening the possibility for on-demand, highly elastic, and infinite computer power with scalability and supporting the delivery of mission-critical secure enterprise applications and services. This course provides ground-up coverage on the high level concepts of cloud landscape, architectural principles, development techniques, design patterns, and real-world security best practices as applied to cloud service providers and consumers. It also addresses regulatory compliance requirements critical to design, implement, deliver, and manage secure cloud-based services. The course delves into the secure cloud-based application development processes that build on DevOps and DevSecOps processes, proactively identifying and mitigating risks with threat models, protection, and isolation of physical and logical infrastructures including computer storage (cloud-hosted virtualization, containerization using Docker and Kubernetes) and network topologies; comprehensive data protection with applied cryptography; end-to-end identity management and access control; monitoring, auditing, intrusion detection, and incident response processes; fraud detection (using machine learning and artificial intelligence techniques); and complying with industry and regulatory mandates. The course leverages cloud computing security guidelines set forth by the International Organization for Standardization (ISO), National Institute of Standards and Technology (NIST), European Union Agency for Network and Information Security (ENISA), and Cloud Security Alliance (CSA).
Prerequisites: One of the following courses: CSCI E-7, CSCI E-12, CSCI E-33a, CSCI E-45a, CSCI E-45b, CSCI E-46, CSCI E-90, CSCI E-94, or the equivalent. Additional web application development and/or systems administration knowledge will be very helpful.
Spring 2025
Intensive Introduction to Computer Science
David J. Malan PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University
This course teaches students how to solve problems, both with and without code, with an emphasis on correctness, design, and style. Topics include computational thinking, abstraction, algorithms, data structures, and computer science more generally. Problem sets are inspired by the arts, humanities, social sciences, and sciences. More than teach students how to program in one language, this course teaches how to program fundamentally and ultimately how to teach oneself new programming languages. The course starts with a traditional but omnipresent language called C that underlies today's newer languages, through which students learn not only about functions, variables, conditionals, and loops, but also how computers themselves work underneath the hood, memory and all. The course then transitions to Python, a higher-level language that students understand all the more because of C. Toward term's end, the course introduces SQL, via which students can store data in databases, along with HTML, CSS, and JavaScript, via which students can create web and mobile applications. The course culminates in a final project. Students can count two of the following three courses CSCI E-10a, CSCI E-10b, and CSCI E-50 toward a degree. They may not count all three toward a degree.
Fall 2024
Intensive Introduction to Computer Science
David J. Malan PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University
This course teaches students how to solve problems, both with and without code, with an emphasis on correctness, design, and style. Topics include computational thinking, abstraction, algorithms, data structures, and computer science more generally. Problem sets are inspired by the arts, humanities, social sciences, and sciences. More than teach students how to program in one language, this course teaches how to program fundamentally and ultimately how to teach oneself new programming languages. The course starts with a traditional but omnipresent language called C that underlies today's newer languages, through which students learn not only about functions, variables, conditionals, and loops, but also how computers themselves work underneath the hood, memory and all. The course then transitions to Python, a higher-level language that students understand all the more because of C. Toward term's end, the course introduces SQL, via which students can store data in databases, along with HTML, CSS, and JavaScript, via which students can create web and mobile applications. The course culminates in a final project. Students can count two of the following three courses CSCI E-10a, CSCI E-10b, and CSCI E-50 toward a degree. They may not count all three toward a degree.
Spring 2025
Designing and Developing Relational and NoSQL Databases
Gregory Thomas Misicko ALM, Engineering Manager, NetApp Cloud Solutions
This course focuses on the design and development of databases using a very practical and hands-on approach to learning. Students begin by learning how to set up and configure a database server, followed by a thorough understanding of how to design and develop a real-world database built for stability and performance. Structured query language (SQL) is taught starting from the most basic level and leading up to an advanced level. As many projects today evaluate NoSQL options, students also learn about the more popular NoSQL options available and work with MQL and Cypher.
Fall 2024
Systems Programming and Machine Organization
Eddie Kohler PhD, Microsoft Professor of Computer Science and Harvard College Professor, Harvard University
This course covers the fundamentals of computer systems programming. It provides a solid background in data representation, systems programming, operating systems, and machine organization and design. The course centers on C++ programming, with some assembly language. Topics include data representation, assembly and machine programming, storage hierarchy and caching, kernel programming and virtual memory, process management, and concurrency (including threads and networking).
Prerequisites: CSCI E-26, CSCI E-50, or some experience programming in C++ or C.
Fall 2024
Elements of Data Science and Statistical Learning with R
Andrey Sivachenko PhD, Scientist IV, Head of Bioinformatics, Cystic Fibrosis Foundation Therapeutics Lab - Victor A. Farutin PhD, Senior Director, Computational Biology, Verve Therapeutics
One of the broad goals of data science is examining raw data with the purpose of identifying its structure and trends, and of deriving conclusions and hypotheses from it. In the modern world awash with data, data analytics is more important than ever to fields ranging from biomedical research, space and weather science, finance, business operations and production, to marketing and social media applications. This course introduces various statistical learning methods and their applications. The R programming language, a very popular and powerful platform for scientific and statistical analysis and visualization, is introduced and used throughout the course. We discuss the fundamentals of statistical testing and learning, and cover topics of linear and non-linear regression, clustering and classification, support vector machines, and decision trees. The datasets used in the examples are drawn from diverse domains such as finance, genomics, and customer sales and survey data.
Prerequisites: Good programming skills, preferably in R or solid experience in other languages; good understanding of probability and statistics at the level of CSCI E-106 or STAT E-109. See the syllabus for the recommended pretest.
Spring 2025
Elements of Data Science and Statistical Learning with R
Andrey Sivachenko PhD, Scientist IV, Head of Bioinformatics, Cystic Fibrosis Foundation Therapeutics Lab - Victor A. Farutin PhD, Senior Director, Computational Biology, Verve Therapeutics
One of the broad goals of data science is examining raw data with the purpose of identifying its structure and trends, and of deriving conclusions and hypotheses from it. In the modern world awash with data, data analytics is more important than ever to fields ranging from biomedical research, space and weather science, finance, business operations and production, to marketing and social media applications. This course introduces various statistical learning methods and their applications. The R programming language, a very popular and powerful platform for scientific and statistical analysis and visualization, is introduced and used throughout the course. We discuss the fundamentals of statistical testing and learning, and cover topics of linear and non-linear regression, clustering and classification, support vector machines, and decision trees. The datasets used in the examples are drawn from diverse domains such as finance, genomics, and customer sales and survey data.
Prerequisites: Good programming skills, preferably in R or solid experience in other languages; good understanding of probability and statistics at the level of CSCI E-106 or STAT E-109. See the syllabus for the recommended pretest.
Fall 2024
Database Systems
Cody Doucette PhD, Software Engineer, Cloudflare
This course covers the fundamental concepts of database systems. Topics include data models (entity-relationship and relational); query languages (relational algebra and SQL); implementation techniques of database management systems (index structures, concurrency control, recovery, and query processing); management of semistructured and complex data; and distributed and noSQL databases.
Prerequisites: CSCI E-22 or the equivalent, and strong programming skills in Java.
Fall 2024
Agile Software Development
Richard Kasperowski ALB, Co-Founder and Chief Technology Officer, Alli Connect
This course is an immersive experience in agile software development. We study the technical, cultural, and social aspects of agile, including agility in software product development; business agility, including scrum, agile product inception, user stories, product backlog construction, definition of done and definition of ready, estimating, agile forecasting, project management, sprint planning, and retrospectives; technical agility, including pair programming, mob programming, test-driven development, working with legacy code, refactoring for clean code, behavior-driven development, continuous integration, continuous delivery, and DevOps; and advanced agility, including high-performance teams, core protocols for psychological safety and emotional intelligence, agile at large scale, and introducing and sustaining agile in your organization.
Prerequisites: CSCI E-22 or the equivalent. Students must have a computer suitable for software development.
Fall 2024
Introduction to Artificial Intelligence with Python
Brian Paul Yu EdM, Preceptor in Computer Science, Harvard University
This course explores the concepts and algorithms at the foundation of modern artificial intelligence, diving into the ideas that give rise to technologies like game-playing engines, handwriting recognition, and machine translation. Through hands-on projects, students gain exposure to the theory behind graph search algorithms, classification, optimization, machine learning, large language models, and other topics in artificial intelligence as they incorporate them into their own Python programs. By course's end, students emerge with experience in libraries for machine learning as well as knowledge of artificial intelligence principles that enable them to design intelligent systems of their own.
Prerequisites: CSCI E-50, CS50x, or at least one year of experience with Python.
Spring 2025
Introduction to Artificial Intelligence with Python
Brian Paul Yu EdM, Preceptor in Computer Science, Harvard University
This course explores the concepts and algorithms at the foundation of modern artificial intelligence, diving into the ideas that give rise to technologies like game-playing engines, handwriting recognition, and machine translation. Through hands-on projects, students gain exposure to the theory behind graph search algorithms, classification, optimization, machine learning, large language models, and other topics in artificial intelligence as they incorporate them into their own Python programs. By course's end, students emerge with experience in libraries for machine learning as well as knowledge of artificial intelligence principles that enable them to design intelligent systems of their own.
Prerequisites: CSCI E-50, CS50x, or at least one year of experience with Python.
Fall 2024
Advanced Machine Learning, Data Mining, and Artificial Intelligence
Peter Vaughan Henstock PhD
The course is intended to combine the theory with the hands-on practice of solving modern industry problems with an emphasis on image processing and natural language processing. Topics include outlier detection, advanced clustering techniques, deep learning, dimensionality reduction methods, frequent item set mining, and recommender systems. Topics also considered include reinforcement learning, graph-based models, search optimization, and time series analysis. The course uses Python as the primary language, although later projects can include R and other languages. The course also introduces some industry standard tools to prepare students for artificial intelligence jobs.
Prerequisites: This course builds upon topics covered in CSCI E-63c and CSCI E-109a with either CSCI E-63c or CSCI E-109a as a prerequisite. Students should be proficient in Python including Pandas and readily able to load, parse, and manipulate data. A course such as CSCI E-7 or a course on Python and machine learning would be useful.
Fall 2024
Fundamentals of Data Science
Stephen Elston PhD, Principal Consultant, Quantia Analytics LLC
This course builds on CSCI E-101, giving students a solid foundation for advanced data modeling, machine learning, and artificial intelligence (AI). The course focuses on the modern computational statistical methods underpinning advanced data science. In the twenty-first century, these powerful, computationally intensive models are both practical and widely used. Such models enable us to explore and model the complex datasets commonly encountered in the real world. The course employs a combination of theory and hands-on experience using Python programming tools. The focus is on foundational computational statistical algorithms, statistical inference methods, and effective visualization methods. The hands-on component of the course uses the Python packages, NumPy, Pandas, Seaborn, Statsmodels, and PyMC3, along with selected other open-source packages. The focus of this course is on methods to address the exploration, inference, and modeling changes arising from the analysis of increasingly complex datasets. Three approaches to large scale computational statistical inference are addressed: maximum likelihood, modern resampling methods, and Bayesian models. The properties and behavior of the rich family of linear models and Bayesian models, foundational to many statistical, machine learning and AI algorithms are surveyed. Additionally, time series models are explored.
Prerequisites: Some exposure to basic machine learning and data science methods, equivalent to CSCI E-101. Experience programming using the Python language, equivalent to CSCI E-7 or CSCI E-29. For people with limited Python programming experience, some experience programming, in any language, such as R, Matlab, or C++, is essential. Knowledge of linear algebra, including eigenvalue-eigenvector decomposition and a bit of differential and integral calculus is essential.
Fall 2024
Big Data and Machine Learning in Healthcare Applications
Oleg Pianykh PhD, Assistant Professor of Radiology, Harvard Medical School, and Director of Medical Analytics, Massachusetts General Hospital
While large volumes of digital healthcare data have been captured for decades, we are only starting to mine them for information that can significantly advance healthcare delivery and quality. Built from many practical experiences, this course teaches students how to apply big data analytics and machine learning to the most challenging problems found in modern hospitals. We cover several important areas operational, clinical, and imaging using hands-on examples and real problems. Students not only learn how to build efficient data models, but also how to implement them in different healthcare environments, avoiding the most common pitfalls and achieving meaningful results.
Prerequisites: Basic understanding of statistics and machine learning. Programming in Python or Matlab is required for most homework assignments.
Fall 2024
Programming in Scala for Big Data Systems
Edward S. Sumitra MS, Director, Software Engineering, Curriculum Associates
Scala is a strongly typed, versatile programming language that has emerged as one of the de-facto languages in big data systems. Scala supports multiple programming paradigms, including familiar object-oriented programming (OOP) and functional programming (FP) techniques. This hands-on course covers types and data structures, build tools, functional programming concepts with higher-order functions, pattern matching, concurrency, and parallel processing. Popular libraries in the Scala ecosystem are introduced and applied. Students learn unit testing libraries and reinforce techniques taught in lectures by completing weekly programming assignments. Students apply their knowledge to develop batch and stream processing applications in Apache Spark and Apache Beam in the latter part of the course.
Prerequisites: Familiarity with a programming language like Java, Python, Javascript, C#, or C++.
Fall 2024
Deep Learning
Zoran B. Djordjevi PhD, Senior Enterprise Architect, Nishava, Inc. - Rahul B. Joglekar BSc, ALM, Enterprise Technical Architect, Point32Health
The ability of computerized systems to acquire vast amounts of data and display them in informative ways raises our expectations for fast, accurate identification or recognition of events or objects and for predictions about future events. Machine learning and artificial intelligence (AI) have fulfilled those needs to some degree. Over the last 10 years, a versatile architectural style of artificial neural networks called deep learning has emerged as the most promising answer to those expectations. Today, deep learning is the primary technique for analysis and resolution of many issues in data analyses and natural sciences, linguistics, and engineering. We use deep learning for image classification, manipulation and generation, speech recognition and synthesis, natural language translation, sound and music manipulation and generation, navigation of self-driving cars, and many other activities. In this course, students master several key architectures for implementation of deep learning networks, such as convolutional neural networks (CNNs), recurrent neural networks (RNNs), long short-term memory networks (LSTMs), autoencoders, generative adversarial networks (GANs), transformers with attention, and graph neural networks. We provide references to many practical applications where those architectures are successfully used. The course starts with a review of the theoretical foundations of the neural networks approach to machine learning including auto-differentiation and backpropagation. The emphasis of the course is on practical applications of deep learning using Keras (packages within TensorFlow 2.x framework) and PyTorch.
Prerequisites: Proficiency with Python. We assume no familiarity with Linux and introduce all essential Linux features and commands. Students need access to a computer with a 64-bit operating system and at least 8 GB of RAM. Having a machine with NVIDIA card is a plus but not required. All complex examples given as assignments could be run on Google Collaboratory.
Fall 2024
Introduction to Natural Language Processing
Dmitry V. Kurochkin PhD, Senior Research Analyst, Faculty of Arts and Sciences Office for Faculty Affairs, Harvard University
Students are introduced to modern techniques of natural language processing (NLP) and learn foundations of text classification, named entity recognition, parsing, language modeling including text generation, topic modeling, and machine translation. Methods for representing text as data studied in the course are tokenization, n-grams, bag of words, term frequency-inverse document frequency (TD-IDF) weighting, word embeddings like Word2Vec and GloVe, autoencoders, t-SNE, character embeddings, and topic modeling. The machine learning algorithms for NLP covered in the course are recurrent neural networks (RNNs) including long short-term memory (LSTM), conditional random fields (CRFs), bidirectional LSTM with a CRF (BiLSTM-CRF), generative adversarial networks (GANs), attention models, transformers, bidirectional encoder representations from transformers (BERT), latent Dirichlet allocation (LDA), non-negative matrix factorization (NMF), and structural topic modeling (STM). Students get hands-on experience using both Python and R.
Prerequisites: Students are expected to have taken Python programming course equivalent to CSCI E-7. Most of the problems will be solved in Python. The structural topic modeling will be performed using the 'stm' R package. Prior programming experience in R is helpful, but not required. In addition, basic knowledge of calculus, probability, and statistics is expected. Students need to have access to a computer with a 64-bit operating system and at least 8 GB of RAM. GPU is highly recommended.
Fall 2024
Cloud Services, Infrastructure, and Computing
Gregory Thomas Misicko ALM, Engineering Manager, NetApp Cloud Solutions
Off-premise/cloud services, infrastructure, and computing have replaced in-house data centers across businesses of every size. Businesses rely on cloud services because of their extremely high efficiency, ease of setup, and their ability to scale with demand. It is essential for today's engineers to understand how robust architectures can be implemented on a cloud platform, and to understand in depth which services and tools are available for them to use. This course does not require any prior experience working with cloud services and does not require any programming skills.
Fall 2024
Computer Architecture
James L. Frankel PhD, Lecturer in Extension, Harvard University and President, Frankel and Associates, Incorporated
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 complex instruction set computer (CISC), reduced instruction set computer (RISC), vector, data parallel, and very long instruction word (VLIW) designs. An extensive lab project encompassing the design and implementation of a new instruction set and CPU using a field-programmable gate array (FPGA) is required of all students.
Prerequisites: Knowledge of data structures and programming experience (CSCI E-22, or the equivalent) with a Boolean/digital logic course preferred, but not required.
Spring 2025
Fundamentals of Cloud Computing and OpenAI with Microsoft Azure
Joseph Ficara ASEE, Lead Architect, The Predictive Index
This course offers a comprehensive introduction to cloud and serverless computing, focusing on Microsoft Azure's key services and Azure's artificial intelligence (AI) platform. We contrast the challenges and benefits of cloud computing, serverless cloud computing, and traditional self-managed cloud and on-premises solutions. Students learn the fundamental architecture and design patterns necessary to build geographically distributed, highly available, and scalable solutions using key services in the Microsoft Azure platform. Students learn about the OpenAI offerings in Azure and how to responsibly leverage them in their cloud-native solutions, with hands-on experience in prompt engineering, fine tuning, and embedding. We cover the costs and benefits of each and how to pragmatically apply them. Students engage in hands-on learning architecting secure, scalable, geo-redundant, and cost-effective infrastructure and deploying that infrastructure to Microsoft Azure using infrastructure as code via the Bicep language. Students learn approaches for building solutions that gracefully degrade when non-essential functionality is unavailable. Students learn to implement defense in depth using network segmentation (VNETs) and additional best practices. A wide range of Microsoft Azure Services are covered including Azure Front Door, Azure App Services, Azure App Configuration, KeyVault, Azure SQL, Azure API management; serverless services including Azure Functions, and Azure Logic Applications; Microsoft Entra ID (formerly Azure Active Directory) for enterprise identity management; Azure B2C for low-cost identity management on consumer-centric software-as-a-service offerings; and Azure Storage, Azure Service Bus, Azure Event Grid, Azure Event Hub, Azure Cosmos database, and Azure Cognitive Search. In addition to Azure services and guidance, the course covers implementing processes to streamline development, such as continuous integration, continuous deployment (CICD), and automated testing. Students also learn how to test their applications and infrastructure at scale using Azure Load Testing. Coverage includes always-up architecture and deployment strategies, rollback strategies, A/B testing, testing in production, monitoring, distributed tracing, alerting, performance tuning, snapshot debugging in production, and health analysis using Application Insights and Azure Monitor. Additionally, students learn strategies and architecture for ensuring data sovereignty concerns are addressed in their solutions.
Prerequisites: Basic C#, C++, Python, or Java development skills. CSCI E-10a or the equivalent. This course involves a substantial amount of programming in C# and cross platform.NET (6 or above).
Spring 2025
Compiler Design and Implementation
James L. Frankel PhD, Lecturer in Extension, Harvard University and President, Frankel and Associates, Incorporated
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-22, or the equivalent) with an advanced algorithms course preferred, but not required (CSCI E-124, or the equivalent). Students must have sufficient experience to write large programming projects in the C programming language that utilize a wide variety of data structures. This course does not teach programming.
Fall 2024
Data Mining for Business
Ted Kwartler MBA, Managing Director, Responsible AI, Accenture
This course introduces non-mathematical business professionals to data science principles widely used in today's corporations. Quantitative methods affect many of today's interactions for business leaders, students, and consumers. Emphasis is placed on practical uses and case studies utilizing data to inform business decisions rather than theoretical or complex mathematics. Case study topics include understanding customer demand, marketing, new market forecasting, revenue projections, and data mining to improve decisions. Learning goals include quantitative business application, basic programming, algorithm development, and process workflow. The course highlights methods that business leaders and data scientists have found to be the most useful. It introduces the basic concepts of R for data mining. This course is for students who want an introduction to how data science improves business outcomes.
Prerequisites: Since this course utilizes R throughout the semester students should complete the 4-hour free online course Introduction to R at DataCamp.com found here: https://www.datacamp.com/courses/free-introduction-to-r.
Spring 2025
Data Mining for Business
Ted Kwartler MBA, Managing Director, Responsible AI, Accenture
This course introduces non-mathematical business professionals to data science principles widely used in today's corporations. Quantitative methods affect many of today's interactions for business leaders, students, and consumers. Emphasis is placed on practical uses and case studies utilizing data to inform business decisions rather than theoretical or complex mathematics. Case study topics include understanding customer demand, marketing, new market forecasting, revenue projections, and data mining to improve decisions. Learning goals include quantitative business application, basic programming, algorithm development, and process workflow. The course highlights methods that business leaders and data scientists have found to be the most useful. It introduces the basic concepts of R for data mining. This course is for students who want an introduction to how data science improves business outcomes.
Prerequisites: Since this course utilizes R throughout the semester students should complete the 4-hour free online course Introduction to R at DataCamp.com found here: https://www.datacamp.com/courses/free-introduction-to-r.
Fall 2024
Software Design: Principles, Models, and Patterns
Eric Gieseke ALM, Chief Executive Officer and Founder, Pago Capital
This course approaches object-oriented software design from three perspectives: the software engineering principles that enable the 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. These patterns include both the original software patterns as well as more recent modularization patterns for software construction. 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 implementation.
Prerequisites: CSCI E-22, or the equivalent, and proficiency in Java.
Fall 2024
Foundations of Data Science and Engineering
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School
Most data scientists spend 20 percent of their time building data models and analyzing model results. What do they do with the remaining 80 percent of their time? The answer is data engineering. Data engineering is a subdiscipline of software engineering that focuses on the transportation, transformation, and management of data. This course takes a comprehensive approach to explore data science, which includes data engineering concepts and techniques. Key topics include data management and transformation, exploratory data analysis and visualization, statistical thinking and machine learning, natural language processing, and storytelling with data, emphasizing the integration of Python, MySQL, Tableau, development, and big data analytics platforms. Students cannot earn Harvard Extension School degree credit for CSCI E-101 if it is taken after CSCI E-29.
Prerequisites: CSCI E-7, CSCI E-50, or the equivalent.
Spring 2025
Foundations of Data Science and Engineering
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School
Most data scientists spend 20 percent of their time building data models and analyzing model results. What do they do with the remaining 80 percent of their time? The answer is data engineering. Data engineering is a subdiscipline of software engineering that focuses on the transportation, transformation, and management of data. This course takes a comprehensive approach to explore data science, which includes data engineering concepts and techniques. Key topics include data management and transformation, exploratory data analysis and visualization, statistical thinking and machine learning, natural language processing, and storytelling with data, emphasizing the integration of Python, MySQL, Tableau, development, and big data analytics platforms. Students cannot earn Harvard Extension School degree credit for CSCI E-101 if it is taken after CSCI E-29.
Prerequisites: CSCI E-7, CSCI E-50, or the equivalent.
Spring 2025
Econometrics and Causal Inference with R
Dmitry V. Kurochkin PhD, Senior Research Analyst, Faculty of Arts and Sciences Office for Faculty Affairs, Harvard University
Supervised learning algorithms, such as support-vector machines, random forests, and neural networks have demonstrated phenomenal performance in the era of big data. However, they often fail in answering the question, what would happen if the world changed in some specific way while holding other variables fixed? Such problems arise in many business applications including in finance, policymaking, and healthcare. This course covers modern econometric techniques for evaluating causal effects based on observational (that is, non-experimental) data. Topics covered in the course include multivariate linear regression, heteroscedasticity and weighted least squares (WLS), dummy variables and interactions, difference in differences (DD), logistic regression, probit model, censored regression models, exact matching, propensity score matching (PSM), regression discontinuity design (RDD), fuzzy regression discontinuity (FRD), synthetic control, instrumental variables (IV), and two-stage least squares (2SLS). Students get hands-on experience using R.
Prerequisites: Calculus equivalent to MATH E-15, introductory probability and statistics, and familiarity with linear regression. Prior programming experience, preferably in R, is helpful but not required.
Fall 2024
Data Engineering for Analytics to Solve Business Challenges
Eric Gieseke ALM, Chief Executive Officer and Founder, Pago Capital - Anindita Mahapatra ALM, Solutions Architect, Databricks
In today's world, data is generated at an ever-increasing rate. The analytic platforms need to match this pace of generated data, digest it, and generate useful insights. The best decisions are made with informed data and as it changes, one needs to follow the signals and indicators embedded in the data. The technology space is evolving rapidly and choosing the right technology fit for the data at hand is an important decision. The next decision is to select the best architecture to provide the solution for technical challenges and helps the business improve its growth, revenue, and time to market. Spark provides a swiss army knife to handle the entire data life cycle, from ingestion to consumption. Newer offerings from the open source community around Delta and MLFlow help strengthen the data platform by making it performant, reliable, and repeatable. Often, innovation is left in proof of concept stages and does not see production because of the lack of foundational architectural components necessary for hardened and mature enterprise-grade deployments. This lost innovation translates to lost revenue and missed opportunities. This course helps students to appreciate the power of technology and skillfully apply it in practical situations in the real world. It leverages the Databricks platform on Amazon web services (AWS) to simplify the cluster setup so that students can focus on the data engineering aspects of getting the data ready for analytics.
Prerequisites: Familiarity with Amazon Web Services, structured query language (SQL), and Python. Some experience with big data, Spark, and data stores is good to have.
Spring 2025
Advanced Deep Learning
Zoran B. Djordjevi PhD, Senior Enterprise Architect, Nishava, Inc. - Blagoje Djordjevic PhD, Staff Scientist, Lawrence Livermore National Laboratory
Artificial intelligence (AI) and deep learning applications have proliferated and are having an increasing impact on industry, sciences, and engineering. This course expounds on those trends and enables students to engage in advanced research and development in AI and deep learning. We investigate essential concepts and topics such as large language models (LLMs), generative adversarial networks (GANs, stable diffusion, or text-to-speech), graph neural networks (GNNs), and differentiable applications in natural science. For important classes of neural networks, we explore the fundamental mechanisms behind their operations and provide practical illustrations of their uses. For example, we review the structure of transformer-based pretrained LLMs, the principles of attention, and their use in applications such as ChatGPT, with a focus on understanding prompt programming. For GANs, we examine the generation of realistic representations of people, speech, paintings, and music. For GNNs, we dive into the analysis of chemical molecules, proteins, and drugs and quantitative structure property relationships in physical systems. We learn how to impose constraints that are reflections of physical or geometric laws governing physical systems. Concepts introduced in every lecture are illustrated by practical examples. Code samples used in lectures and homework assignments are written in PyTorch and occasionally in Keras 3.
Prerequisites: CSCI E-89 or any other introductory deep learning course. Proficiency with Python.
Spring 2025
Data Modeling
Hakan Gogtas PhD, Head of US Model Validation Group, Deutsche Bank
This course explores data modeling methodologies with the goal of understanding how to choose, apply, and interpret appropriate statistical designs and analyses for practical data problems. Topics covered include understanding the relationships in the data, theory and application of linear and non-linear regression models, model building steps, diagnostic of models, and remedial measures. Students can count one of the following three courses CSCI E-106, STAT E-109, or STAT E-139 (offered previously) toward a degree or certificate.
Prerequisites: Proficiency in R programming, introductory probability and statistics, multivariate calculus equivalent to MATH E-21a, and linear algebra equivalent to MATH E-21b.
Fall 2024
Data Modeling
Hakan Gogtas PhD, Head of US Model Validation Group, Deutsche Bank
This course explores data modeling methodologies with the goal of understanding how to choose, apply, and interpret appropriate statistical designs and analyses for practical data problems. Topics covered include understanding the relationships in the data, theory and application of linear and non-linear regression models, model building steps, diagnostic of models, and remedial measures. Students can count one of the following three courses CSCI E-106, STAT E-109, or STAT E-139 (offered previously) toward a degree or certificate.
Prerequisites: Proficiency in R programming, introductory probability and statistics, multivariate calculus equivalent to MATH E-21a, and linear algebra equivalent to MATH E-21b.
Spring 2025
Data Mining, Discovery, and Exploration
Stephen Elston PhD, Principal Consultant, Quantia Analytics LLC
Extracting useful insights and relationships from massive complex data sets is the domain of data mining. Data mining has wide ranging applications in science and technology, including web search, interactions in social networks, recommender systems, processing signals in large internet-of-things (IoT) sensor networks, image search, genetic analysis, and discovery of interactions between drugs. This course surveys a range of unsupervised learning algorithms for data mining. The emphasis is on graph algorithms and scaling for massive datasets. The course comprises readings and lectures on theory along with hands-on exercises and projects where students apply the theory through Python coding. For the hands-on component of the course a variety of libraries in the Python language, including possibly Scikit-Learn, NetworkX, Neo4J, and Surprise are used. Students may not take both CSCI E-96 and CSCI E-108 for degree or certificate credit.
Prerequisites: Students enrolling in this course are expected to have some background in Python programming equivalent to CSCI E-7 or CSCI E-50 and statistical modeling equivalent to CSCI E-63c, CSCI E-101, CSCI E-106, or STAT E-109. Knowledge of basic linear algebra, equivalent to MATH E-21a, is essential.
Spring 2025
Advanced Topics in Data Science
Pavlos Protopapas PhD, Scientific Program Director and Lecturer, Institute for Applied Computational Science, Harvard University - Christopher William Gumb ALB, Preceptor in Computational and Data Science, John A. Paulson School of Engineering and Applied Sciences, Harvard University - Natesh S. Pillai PhD, Professor of Statistics, Harvard University
Building upon the material in CSCI E-109a, the course introduces advanced methods for statistical modeling, representation, and prediction. Topics include multiple deep learning architectures such as convolutional neural networks (CNNs), recurrent neural networks (RNNs), transformers, language models, autoencoders, and generative models, as well as basic Bayesian methods and unsupervised learning. Students are strongly encouraged to enroll in both the fall and spring course within the same academic year. Students who have previously completed CSCI E-107 or CSCI E-109 may not take CSCI E-109a or CSCI E-109b for degree or certificate credit.
Prerequisites: A grade of B-minus or higher in CSCI E-109a. Students who have not completed CSCI E-109a should contact the instructors before registering.
Fall 2024
Introduction to Data Science
Pavlos Protopapas PhD, Scientific Program Director and Lecturer, Institute for Applied Computational Science, Harvard University - Christopher William Gumb ALB, Preceptor in Computational and Data Science, John A. Paulson School of Engineering and Applied Sciences, Harvard University - Natesh S. Pillai PhD, Professor of Statistics, Harvard University
This course focuses on the analysis of messy, real life data to perform predictions using statistical and machine learning methods. Material covered integrates the five key facets of an investigation using data: data collection data wrangling, cleaning, and sampling to get a suitable data set; data management accessing data quickly and reliably; exploratory data analysis generating hypotheses and building intuition; prediction or statistical learning; and communication summarizing results through visualization, stories, and interpretable summaries. Students who have previously completed CSCI E-107 or CSCI E-109 (both offered previously) may not count CSCI E-109a or CSCI E-109b toward a degree or certificate.
Prerequisites: Programming knowledge at the level of CSCI E-50 or above, statistics knowledge at the level of STAT E-100 or above, and calculus (MATH E-15 or the equivalent) required. It is recommended that students have received a grade of B+ or better in these courses before enrolling in CSCI E-109a. Introductory probability is recommended.
Spring 2025
Advertising Analytics and Real-Time Technology
Justin E. Fortier MBA, Customer Facing Data Scientist, Sales, Sway AI
This course provides a detailed overview of today's digital advertising technology industry. Students learn the ecosystem, common goals, success metrics, and key national and local competitors that define the industry. Key terms, such as real-time bidding and walled gardens, are introduced. Topics include the use of data science, machine learning, and artificial intelligence as advertising technology optimization tools, and the challenges that recent legislation protecting consumer data present to advertising technology firms. Students may not take both CSCI E-112 and ISMT E-111 (offered previously) for degree or certificate credit.
Prerequisites: Students need laptops loaded with Jupyter notebooks and Python 3.
Spring 2025
Web Application Development with Jamstack
David P. Heitmeyer AM, Director of Academic Platforms and Development, Harvard University Information Technology - Arthur J. Barrett BSc, Senior Technical Architect, Harvard University Information Technology - Larry Bouthillier MS, Executive Director, University of British Columbia Extended Learning - Michael D. Hilborn MS, Director, Platform Engineering and Operations, Harvard Business School Online
This course provides an introduction to web application development through the Jamstack (Javascript, application programming interfaces [APIs], and Markup) approach. Jamstack is a development architecture for modern website and application development that is increasingly popular due to performance, reliability, scalability, and security advantages. This course focuses on learning and implementing key aspects of the Jamstack approach, including pre-built HTML markup created with static site generators, client-side JavaScript, the use of APIs for back-end data and content, and automated deployment workflows. While specific frameworks and services are used in project work, the course examines how they align with Jamstack architecture principles and how they relate to alternative tools in the Jamstack landscape.
Prerequisites: Knowledge of HTML, CSS, and JavaScript to the level of CSCI E-12 is required, and knowledge of Javascript to the level of CSCI E-3 is preferred. Comfort working from the command line to install tools and packages, including troubleshooting.
Spring 2025
Advanced Practical Data Science
Pavlos Protopapas PhD, Scientific Program Director and Lecturer, Institute for Applied Computational Science, Harvard University
In today's artificial intelligence (AI)-driven world, building a robust deep learning model is only half the journey. The real challenge often lies in bringing this model to life in the form of an application that is scalable, maintainable, and ready for real-world deployment. In this course, we traverse the complex landscape of machine learning operations, with a special focus on large language models (LLMs). This course has been meticulously curated to provide a holistic understanding of the complete deep learning workflow, from refining your models to deploying them in production environments. We dive deep into topics like containerization, cloud functions, data pipelines, and advanced training workflows, with specific emphasis on LLMs. Students learn how to utilize LLM application programming interfaces (APIs) effectively, host APIs, fine-tune LLMs for specific tasks, adapt them to various domains, and build applications around them. Our objective is not only to help students grasp these concepts but also to empower them to build and deploy scalable AI applications. We delve into the particular intricacies of LLMs and their applications in real-world scenarios. Whether students are AI enthusiasts wanting to understand the intricacies of machine learning operations or seasoned professionals aiming to fortify their knowledge, this course promises a comprehensive exploration of the production side of AI, with a spotlight on LLM applications and productionizing.
Prerequisites: An introductory course in machine learning and deep learning, such as CSCI E-89, CSCI E-109b, or the equivalent.
Spring 2025
Dynamic Modeling and Forecasting in Big Data
William Yu PhD, Economist, Anderson Forecast, University of California, Los Angeles, Anderson School of Management
Most machine learning models focus on cross-sectional data, while most time-series models focus on time series with few variables and low-frequency data. This course covers the skills and models to handle big data that are both rich in variables and time. We discuss both structural models and reduced-form models. Students learn dynamic regression model, dynamic factor model, vector autoregressions model, error correction model, dimensional reduction tools for fat dataset, and state-space model. Students also learn advanced methods to decompose trend, cycle, and seasonality in high-frequency data and to make more reliable time series forecasting.
Prerequisites: One programming course in any programming language. An introductory machine learning course, such as linear regression or machine learning in general.
Fall 2024
Dynamic Modeling and Forecasting in Big Data
William Yu PhD, Economist, Anderson Forecast, University of California, Los Angeles, Anderson School of Management
Most machine learning models focus on cross-sectional data, while most time-series models focus on time series with few variables and low-frequency data. This course covers the skills and models to handle big data that are both rich in variables and time. We discuss both structural models and reduced-form models. Students learn dynamic regression model, dynamic factor model, vector autoregressions model, error correction model, dimensional reduction tools for fat dataset, and state-space model. Students also learn advanced methods to decompose trend, cycle, and seasonality in high-frequency data and to make more reliable time series forecasting.
Prerequisites: One programming course in any programming language. An introductory machine learning course, such as linear regression or machine learning in general.
Spring 2025
Secure Applications: Managing the Deployment Infrastructure
Heather Hinton PhD, Chief Information Security Officer, PagerDuty
You have spent time designing, developing, and testing your web-facing, internet accessible, or internet of things (IoT) product and have released it into a world of ever-changing and constantly more aggressive cyber threats. How do you know if you can handle a data breach or a cybersecurity compromise? How do you continue to protect the data your application processes and keep your application available and secure, and how do you prove this to your customers? Thanks to the President's Executive Order (EO) 14028 on Improving the Nation's Cybersecurity, the US Securities and Exchange Commission cybersecurity actions, and the latest technology advances (such as generative artificial intelligence [AI]), this is getting harder and more time consuming. In this course, we work through the steps to secure your product and its operating environment, including prioritizing how we protect the asset classes that make up your environment beyond just the software application itself (so, the networks, devices, applications, data, and users that support your product) and how to detect and respond to attacks against the overall ecosystem and individual assets. Course content includes threats, exploits, and compromises drawn from the news (sadly there are always pertinent things in the cybersecurity news that we can use as the basis of discussion), as well as the Cybersecurity and Infrastructure Security Agency (CISA's) Zero Trust Maturity Model, CISA's Known Exploitable Vulnerability (KEV) lists, risk management concepts, and whatever is topical at the time in the news.
Prerequisites: CSCI E-149a or experience with security software development principles. A basic understanding of security threats, tools, and landscape.
Fall 2024
Introduction to Algorithms, Computability, and Complexity
Anurag Anshu PhD, Assistant Professor of Computer Science, John A. Paulson School of Engineering and Applied Sciences, Harvard University - Salil P. Vadhan PhD, Vicky Joseph Professor of Computer Science and Applied Mathematics and Harvard College Professor, Harvard University
Looking at the world around us, we see computers solving problems on incredibly large scales: finding webpages relevant to our internet searches and returning them in sorted order, computing the quickest way to reach a destination given current traffic conditions, and matching people on dating sites. How is this possible? More computing power? Intensive application-specific engineering? While these certainly have had a role to play, in this course, students are exposed to and learn how to use general algorithm design principles that cut across application domains and remain relevant even as computing technology changes. First among these principles is mathematical abstraction, whereby we capture the essence of a computational problem (as well as the notion of what a computer is) so that we can develop and analyze solutions independent of an implementation. Given these mathematical abstractions, we can apply a toolkit of basic algorithmic techniques in the search for solutions and then gain certainty in their correctness and efficiency through rigorous mathematical proofs. Furthermore, the powerful concept of reductions allows us to identify relationships between computational problems that seem very different on the surface and thus automatically transfer solutions from one to another. At the same time, some important computational problems have defied the search for algorithmic solutions. Computer scientists would love to have debugging tools that determine whether their programs can crash, natural scientists would love to have simulators that quickly determine the energy-minimizing states of physical or biological systems, and university registrars would love to be able to automatically schedule classes in a way that optimally maximizes the use of the best classrooms. Why have no scalable algorithms been found for these problems? In the last part of the course, students learn that many important computational problems are inherently unsolvable they have no general algorithmic solution whatsoever. Others are solvable, but have no efficient algorithm the minimum computation time inherently grows exponentially with the size of the problem instance. Uncovering these phenomena (known as uncomputability and intractability, respectively) are unique benefits of a mathematically rigorous approach to algorithms. While we may sometimes be satisfied with empirical demonstrations of the performance of an algorithm we have found, a proof seems to be the only way to convince ourselves that there is no algorithm whatsoever. This course aims to give students the power of using mathematical abstraction and rigorous proof to understand computation. Thus equipped, students are able to design and use algorithms that apply to a wide variety of computational problems with confidence about their correctness and efficiency, as well as recognize when a problem may have no algorithmic solution. At the same time, students may gain an appreciation for the beautiful mathematical theory of computation that is independent of (indeed, predates) the technology on which it is implemented.
Prerequisites: Experience with proofs and discrete mathematics at the level of CSCI E-20, and (Python) programming at the level of CSCI E-50.
Fall 2024
Introduction to Theoretical Computer Science
Adam Hesterberg PhD, Lecturer on Computer Science, John A. Paulson School of Engineering and Applied Sciences, Harvard University
Computation occurs over a variety of substrates including silicon, neurons, DNA, the stock market, bee colonies, and many others. In this course we study the fundamental capabilities and limitations of computation, including the phenomenon of universality and the duality of code and data. We touch upon the following questions: Are there functions that cannot be computed? Are there true mathematical statements that can't be proven? Are there encryption schemes that can't be broken? Is randomness ever useful for computing? Can we use the quirks of quantum mechanics to speed up computation?
Prerequisites: CSCI E-20 or the equivalent.
Spring 2025
Crypto and Blockchain: Understanding the Technology and the Challenges It Presents
David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York - Daniel Garrie JD, Founder and Managing Director, Law and Forensics, LLC and JAMS Neutral Mediator
This course aims to unpack the hype behind the cryptocurrency craze and give students the facts through the eyes of leading regulators, technologists, lawyers, and experts. Students learn what blockchains and cryptocurrencies are, how they can be used, and where the future of this technology is headed. The course covers multiple areas, including the basics of blockchain technology and how it works; how to create, transact, and store cryptocurrencies; regulatory and legal challenges that come with the adoption of a digital currency; surveys of how different regulatory agencies define securities in the US; and technical pieces that are underpinning secure software, system interactions with cryptocurrencies, and distributed consensus for reliability.
Prerequisites: An introductory finance or economics course.
Spring 2025
The Future of Humanity: A System Approach
Fawwaz Habbal PhD, Senior Lecturer on Applied Physics, Harvard University
It is irresistible to think that the human race will survive forever despite the many challenges Earth faces. However, humanity's most pressing challenges are interconnected, and they embroil clashing interests and create multifaceted, complex systems challenges. These challenges defy simplification. Historically, reductionist approaches that focused on linear relations have failed to provide mitigations for these challenges. Addressing these complexities necessitates an integrative system-oriented approach that balances depth with breadth. The goal of this course is to give students an appreciation for the complexity of some of today's most intractable problems, thereby enhancing their understanding of global challenges and equipping them with strategies and methodologies for navigating their future world. In addition, it encourages critical thinking about the nature of the challenges and the development of systems mitigations for the betterment of humanity. This multidisciplinary course is designed to be accessible to a diverse student body, regardless of their backgrounds, and without significant mathematical preparation. The course covers foundational concepts and techniques such as complexity, systems mapping, design, foresight, and forming human collations. Topics like sustainability, climate, epidemics, inequality, sociability, human displacement, and essential materials for civilization are the focal points for discussions. These discussions enable students to critically analyze trends and news, contributing to informed debates that could shape humanity's future. Working in small groups, students employ various techniques for forward-looking analysis, to create comprehensive framework that integrate economic, political, technical, ethical, and social perspectives. This type of analysis of complex problems, students identify possible unintended consequences and roadblocks that might hinder progress. Students may not take both CSCI E-138 and ISMT E-138 (offered previously) for degree or certificate credit.
Fall 2024
Ethics of Cybersecurity
David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York - Daniel Garrie JD, Founder and Managing Director, Law and Forensics, LLC and JAMS Neutral Mediator
This course introduces students to methods, controls, and frameworks to study ethics. The course examines cybersecurity professionals' ethical responsibilities at various levels and their responsibilities to companies, governments, and themselves. The course then examines decision frameworks and applies these frameworks to multiple scenarios, including the government's recent cases against cybersecurity professionals for ethical violations. The course examines the interplay of privacy, integrity, confidentiality, and legal issues. Students work together to create a professional code of conduct as part of the final project and present it to the class.
Fall 2024
Foundations of Technology Risk Management and Assessment
David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York
Technology risk refers to any risk of financial loss, disruption, or damage to the reputation of an organization as a result of the failure of its information technology (IT) systems. This course covers the foundations of technology risk management, IT risk identification, IT risk assessment, risk mitigation, and risk and control monitoring and reporting.
Fall 2024
Information System Forensics
Daniel Garrie JD, Founder and Managing Director, Law and Forensics, LLC and JAMS Neutral Mediator - David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York
The course focuses on the principles and practices of forensic investigation and analysis of information in modern organizations and distributed information systems. Topics include studies of information processes, events, time measurement, causal factors, information volatility, technical and procedural forensic methods, rules of evidence, and case law.
Spring 2025
Networking at Scale
Minlan Yu PhD, Gordon McKay Professor of Computer Science, Harvard University
Modern networks have grown to extremely large scale, connecting millions of servers, and high speed, with terabits per second to meet the needs of a variety of cloud applications in business and society (for example, social media, public health, and entertainment). In this course, we study not only basic concepts in networking but also how these concepts are applied and extended for networking at scale. We discuss the recent technology trends and design choices of performance, scalability, manageability, and cost faced by companies who own large-scale networks such as Amazon, Google, Microsoft, and Facebook. This course includes lectures, system programming projects, and homework.
Prerequisites: System programming at the level of CSCI E-61.
Spring 2025
Fundamentals of the Law and Cybersecurity
Daniel Garrie JD, Founder and Managing Director, Law and Forensics, LLC and JAMS Neutral Mediator - David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York
In a world with almost limitless data collection capability, where cyberattacks can propagate instantaneously and where the identity or location of an adversary may not be known, individuals and institutions are increasingly vulnerable to cyberattacks that disrupt productivity, jeopardize privacy, and threaten national security. This course examines legal, business, and policy challenges stemming from rapidly evolving cybersecurity threats. It begins with an introduction to cybersecurity, cybercrime, and cyberwarfare. It explores the national and international legal frameworks that govern cyberspace, including laws related to cyber crime, espionage, and war. The course also discusses how current laws affect corporations and provides detailed case studies regarding the state of cybersecurity in various countries. It looks at the limits of current law and the need for further policy evolution, as well as the real-world impact of different legal, business, and policy options.
Fall 2024
Software Applications: Security Lifecycle Threats
Heather Hinton PhD, Chief Information Security Officer, PagerDuty
You have been tasked with the design, development, and deployment of a new application, and there is more involved than just writing some code and testing it. How do we make sure that we have included security thinking throughout the entire product lifecycle from concept to design to development, testing, and deployment? And what happens when this product is now nearing end of life how do we make sure that we maintain its security posture even if we are no longer actively developing new features? What about all that data that has been collected by the product from users and customers? How do you know if you can handle a data breach or a cybersecurity compromise? How do you continue to protect the data your application processes and keep your application available and secure, and how do you prove this to your customers? How do you present- and future-proof against emerging technologies, regulations and industry trends? How do you make sure that you are set up to protect against threats from emerging technologies including machine learning/artificial intelligence (AI) and quantum computing? We address regulations and enforcement actions, including the United States President's Executive Order (EO) 14028 on Improving the Nation's Cybersecurity, the Cybersecurity and Infrastructure Agency's (CISA's) Secure by Design pledge, the US Securities and Exchange Commission guidelines on cybersecurity response, and global privacy regulations. The net is that you can be sure that whatever you do today may well not be enough to protect you tomorrow. In this course, we take a fictional product through the entire secure development lifecycle and explore how we think about and embed security into every phase, including those phases where security has traditionally been an afterthought. You apply these concepts and tradeoffs as you create and take your own software product through its end-to-end lifecycle. Threats and things to pay attention to include discussions drawn from the news (sadly there are always on-point things in the cybersecurity news that we can use as the basis of discussion), as well as CISA's Zero Trust Maturity Model, Secure by Design requirements, guidelines for secure AI system development, CISA's Known Exploitable Vulnerability (KEV) lists, threat modeling, risk management concepts, and whatever is topical at the time in the news.
Prerequisites: Familiarity or experience with security software development principles. A basic understanding of security threats, tools, and landscape.
Fall 2024
Introduction to GIS
Jeff Blossom MS, GIS Service Manager, Center for Geographic Analysis, Harvard University
This course introduces the concepts and components of a geographic information system (GIS). It also teaches the essential skills of spatial data management, analysis, and visualization through the use of the ArcGIS software package. Upon completion of this course, students understand the fundamental concepts of a GIS including spatial data models, spatial analysis, and cartographic principles. They also gain hands-on training in spatial data collection, editing, transformation, and mapping, as well as spatial analysis operations such as location-based query, address geocoding, terrain and watershed analysis, spatial interpolation, spatio-temporal analysis, 3D modelling, and a number of other GIS modeling techniques. GIS technology has broad applications in the natural and social sciences, humanities, environmental studies, engineering, and management. Examples include wildlife habitat study, urban and regional planning, contagious disease monitoring, agriculture and forestry, environmental quality assessment, emergency management, transportation planning, and consumer and competitor analysis. This course introduces a few selected cases of GIS application in different disciplines. Students may not take both CSCI E-150 and ISMT E-150 (offered previously) for degree or certificate credit.
Prerequisites: Access to a computer running Windows operating system. Familiarity with Word documents, spreadsheets, and browsing the internet.
Fall 2024
Introduction to Databases with SQL
Carter Zenke EdM, Senior Preceptor, Harvard Extension School
This course is an introduction to databases using a language called SQL. Students learn how to create, read, update, and delete data with relational databases, which store data in rows and columns, and how to model real-world entities and relationships among them using tables with appropriate types, triggers, and constraints. The course covers how to normalize data to eliminate redundancies and reduce potential for errors and how to join tables together using primary and foreign keys. Students learn how to automate searches with views and expedite searches with indexes, as well as how to connect SQL with other languages like Python and Java. The course begins with SQLite for portability's sake and ends with introductions to PostgreSQL and MySQL for scalability's sake. Assignments are inspired by real-world datasets.
Spring 2025
Introduction to Databases with SQL
Carter Zenke EdM, Senior Preceptor, Harvard Extension School
This course is an introduction to databases using a language called SQL. Students learn how to create, read, update, and delete data with relational databases, which store data in rows and columns, and how to model real-world entities and relationships among them using tables with appropriate types, triggers, and constraints. The course covers how to normalize data to eliminate redundancies and reduce potential for errors and how to join tables together using primary and foreign keys. Students learn how to automate searches with views and expedite searches with indexes, as well as how to connect SQL with other languages like Python and Java. The course begins with SQLite for portability's sake and ends with introductions to PostgreSQL and MySQL for scalability's sake. Assignments are inspired by real-world datasets.
Spring 2025
Networks and Cloud Security
David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York
This course explores a wide range of topics within cybersecurity, such as computer operating systems, infrastructure, network, and internet security; intrusion detection and prevention; cryptography; basic attack methodologies; attack mitigation; information systems strategy and planning; security risk analysis and risk management; and information assurance, social engineering, and application security.
Fall 2024
Networks and Cloud Security
David Cass MBA, Vice President, Cyber and IT Risk, Supervision Group, Federal Reserve Bank of New York - Kevin McKenzie EdD, Chief Operating Officer, CISOs Connect
This course explores a wide range of topics within cybersecurity, such as computer operating systems, infrastructure, network, and internet security; intrusion detection and prevention; cryptography; basic attack methodologies; attack mitigation; information systems strategy and planning; security risk analysis and risk management; and information assurance, social engineering, and application security.
Spring 2025
Remote Sensing Data and Applications
Magaly Koch PhD, Research Associate Professor, Center for Remote Sensing, Boston University
This course introduces students to remote sensing data, methods and tools used for the study of global environmental change. The growing concern about human impact on the environment has led to the development of new observation and analysis tools to tackle and monitor types, magnitudes, and rates of environmental changes. Timely observations by Earth observation (EO) satellite systems and improved mapping and analysis tools are enabling a better understanding of the environmental interactions that underlie our Earth systems, which is critical for developing sustainable solutions. This course enables students to search and use satellite imagery in the context of a number of disciplines including environmental studies, ecology, geology, hydrology, disaster assessment and management, and public health. Students learn the fundamentals of the EO systems and the tools (geo-portals, web-based tools, and open-source software) to observe, monitor, and assess the changes occurring on or near the Earth's surface. Hands-on activities explore human and physical dimensions of environmental change, environmental conservation and management, and disaster detection and mitigation. Students search and analyze global spatial data portals made available by various agencies and organizations (such as the United States Geological Survey, NASA, the National Oceanic and Atmospheric Administration, the European Space Agency, and the Japan Aerospace Exploration Agency). Potential topics covered in case studies and exercises include land use and cover change (urban sprawl, deforestation, and irrigated agriculture); extreme weather events (floods, droughts, wildfires, typhoons, and hurricanes); human and ecological health (aerosol and air pollution, wetland and forest health); food security and environmental sustainability (agriculture and water resources); and disaster assessment and management. Students may not take both CSCI E-158 and ISMT E-158 (offered previously) for degree or certificate credit.
Prerequisites: Basic understanding of geospatial data or permission of the instructor.
Spring 2025
Introduction to Cybersecurity
David J. Malan PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University
The course is an introduction to cybersecurity for technical and non-technical audiences alike. Students learn how to secure their accounts, data, systems, and software against today's threats and how to recognize and evaluate tomorrow's as well, both at home and at work. Students learn how to preserve their own privacy. Students learn to view cybersecurity not in absolute terms but relative, a function of risks and rewards (for an adversary) and costs and benefits (for them), and to recognize cybersecurity as a trade-off with usability itself. The course presents both high-level and low-level examples of threats, providing students with all they need to know technically to understand both. Assignments are inspired by real-world events.
Fall 2024
Introduction to Cybersecurity
David J. Malan PhD, Gordon McKay Professor of the Practice of Computer Science, Harvard University
The course is an introduction to cybersecurity for technical and non-technical audiences alike. Students learn how to secure their accounts, data, systems, and software against today's threats and how to recognize and evaluate tomorrow's as well, both at home and at work. Students learn how to preserve their own privacy. Students learn to view cybersecurity not in absolute terms but relative, a function of risks and rewards (for an adversary) and costs and benefits (for them), and to recognize cybersecurity as a trade-off with usability itself. The course presents both high-level and low-level examples of threats, providing students with all they need to know technically to understand both. Assignments are inspired by real-world events.
Spring 2025
Computational Bayesian Inference
Dmitry V. Kurochkin PhD, Senior Research Analyst, Faculty of Arts and Sciences Office for Faculty Affairs, Harvard University
The techniques of statistical inference for studying properties of data generating processes include method of moments, maximum likelihood estimation, Bayesian inference, and nonparametric statistics. Bayesian inference is an important approach to data analysis in which unknown parameters are treated as random variables whose probability distributions can be updated in light of new information. Bayesian inference is particularly advantageous for sequential data analysis and hypothesis testing when data are being collected sequentially. In this course, students learn foundations of Bayesian inference, including contemporary computational methods such as Markov Chain Monte Carlo (MCMC) and get hands-on experience using R. Topics covered in the course include Bayes' rule, prior and posterior distributions, Markov Chain (MC), MCMC methods, the celebrated Metropolis-Hastings algorithm, and the Gibbs sampler. Students may not take both CSCI E-161 and ISMT E-161 (offered previously) for degree or certificate credit.
Prerequisites: Introductory probability and statistics and calculus equivalent to MATH E-15. Prior programming experience, preferably in R, is helpful but not required.
Fall 2024
Data Systems
Stratos Idreos PhD, Gordon McKay Professor of Computer Science, Harvard University
We are in the big data era and data systems sit in the critical path of everything we do. We are going through major transformations in business, science, and everyday life collecting and analyzing data changes everything and data systems provide the means to store and analyze a massive amount of data. This course is a comprehensive introduction to modern data systems. The primary focus is on modern trends that are shaping the data management industry right now such as column-store, systems for machine learning, hybrid systems, shared nothing architectures, cache-conscious algorithms, hardware/software co-design, main memory systems, adaptive indexing, stream processing, scientific data management, and key-value stores. We also study the history of data systems and traditional and seminal concepts and ideas such as the relational model, row-store database systems, optimization, indexing, concurrency control, recovery, and structured query language (SQL). We discuss both how data systems have evolved over the years and why, as well as how these concepts apply today and how data systems might evolve in the future. We focus on understanding concepts and trends rather than specific techniques that will soon be outdated.
Prerequisites: CSCI E-50 and CSCI E-61, or the equivalent.
Spring 2025
Creating and Maintaining Scalable Design Systems
Bakhtiar Mikhak PhD, Co-Founder, Media Modifications, Ltd.
This is a practical introduction to design systems and why they are rapidly gaining prominence across industries. We introduce the design concepts that lay the foundation for maintainable, scalable design systems through case studies of the most notable examples of the practice, such as Material Design by Google and Carbon Design System by IBM. We then create a design system from scratch. We begin with the visual rules and guidelines of the design system and their application to the design of the system's core icon set and component library. We then turn our attention to micro-interactions, state transitions, and animations. We translate these designs into a library of code components. While our implementation and documentation is as styled components in React, our approach lays the foundation for implementation with other programming languages and frameworks. We address ensuring accessibility in particular. Finally, we discuss human and organizational considerations in adopting, transitioning to, and maintaining design systems into existing product design teams and workflows. Students may not take both CSCI E-169 and ISMT E-165 (offered previously) for degree or certificate credit.
Spring 2025
Advanced Cloud Technology Management: Strategies for Successful Enterprise Deployment
Jeremy Wei EdD, Chief Executive Officer and Founder, iDox.ai
In the rapidly evolving landscape of cloud computing and artificial intelligence (AI), organizations are confronted with an urgent and critical demand for competent technology leaders to align technologies with internal and external business needs. This course is designed to address this pressing need, equipping professionals with the essential skills necessary for effective enterprise technology deployment and management. Through a comprehensive curriculum encompassing lectures, readings, discussions, and assignments, students can actively explore and evaluate various aspects of enterprise technology deployment, business-technology alignment, and organizational change decisions and implementations. By engaging in these learning activities, students gain valuable insights and practical knowledge that enable them to drive successful technology strategies within their organizations.
Spring 2025
Data Science and Artificial Intelligence: Ethics, Governance, and Laws
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School
Data science and artificial intelligence (AI) are creating new opportunities to improve businesses' decision making, productivity, and competitiveness. However, data science and AI also create ethical and privacy concerns. For example, a classification algorithm can harm a sub-category of the population due to bias in the data used to develop and train the model. Data scientists and AI engineers often learn the concepts, tools, and techniques and then start to collect data and develop machine learning algorithms without realizing the unintended consequences of their data products. What obligation do data scientists and AI engineers have to be guardians of the data they collect and analyze? How do we ensure data and AI products' fairness, interpretability, privacy, and security? This course focuses on ethics, governance, and laws specifically related to data science and AI. This course aims to provide a framework to help students understand the value tradeoffs at stake as they collect data, develop algorithms, and deal with some of the consequences. We use case studies, examples, and simulations to facilitate learning, critical thinking, debates, decision making, and problem solving in the context of data science, AI ethics, and governance.
Spring 2025
Modern Data Analytics
Edward S. Sumitra MS, Director, Software Engineering, Curriculum Associates - Marina Popova ALM, Engineer, TechTarget
Data is the new gold of the modern age. It affects all aspects of business and everyday lives: social media, communication, financial and health data, web and application logs, security, and threat mitigation all rely on the ability to collect, process, and analyze terabytes and petabytes from numerous data sources. Modern cloud-based frameworks and infrastructure serve as a foundation and an enabler for most services. In this course, students learn how to navigate this extraordinarily diverse and fast-changing field through popular tools and frameworks to process and analyze data, such as Spark 3 and related application programming interfaces (APIs) and frameworks (Spark Core, Spark SQL, Spark MLLib, and GraphX). We cover the basics of machine learning and deploying models to the cloud, including how to design and organize data using modern distributed data storage options (such as Redshift and BigQuery); elements of data lakes and data warehouse design and evolution to data mesh architectures; trends in unified data analytics and modern data stack frameworks; and integration with business intelligence (BI) tools for data visualization (Looker or Amazon Web Services [AWS] Quicksight). We work hands-on with many of the above frameworks on AWS and Google Cloud Platform (GCP) cloud. We primarily use Python for those assignments that require programming.
Prerequisites: CSCI E-88, CSCI E-88a, or CSCI E-90, and intermediate Python skills. Some familiarity with Docker and cloud environments. CSCI E-88c is recommended.
Spring 2025
Algorithms at the Ends of the Wire
Michael Mitzenmacher PhD, Thomas J. Watson, Sr. Professor of Computer Science, Harvard University
This is an advanced, rigorous course on recent research related to algorithms and data structures focusing on networks, data transmission, data storage, and data communication. Topics may run the breadth from the science that led to the founding of Google, data and video compression tools, coding, and data stream algorithms for network telemetry.
Prerequisites: CSCI E-124, or the equivalent, is very helpful.
Fall 2024
Artificial Intelligence and Human Cognition: An Exploration
Fawwaz Habbal PhD, Senior Lecturer on Applied Physics, Harvard University
The study of artificial intelligence (AI) and human cognition is both a timely and dynamic field. This expansive, interdisciplinary domain encompasses computer science, statistics, and big data, as well as cognitive science, psychology, and philosophy. AI, recognized as transformative technology, has made remarkable achievements in comprehending natural language and emulating human reasoning, proving to be invaluable in augmenting human cognition. Nevertheless, there remain numerous unanswered questions about the nature of AI and its relationship with human thought. This course invites participants to embark on an intellectual journey exploring these intriguing questions. Students engage in stimulating discussions, reflective readings, and metaphorical explorations to probe the philosophical, ethical, and societal dimensions of AI's relationship with human cognition. Emphasis is placed on fostering critical-thinking skills and conceptual comprehension rather than technical proficiency. Discussion topics encompass the concept of systems and paradigms, the essence of intelligence, computational approaches, and metaphors of mind and machine. Then human elements and AI, such as creativity, intuition, and cognitive bias are discussed. These are followed by discussions on ethical and philosophical issues built in the design of the AI or as result of using it. The concluding lectures center on human-machine collaboration and on contemplating the future directions of AI.
Spring 2025
Big Data Systems
Stratos Idreos PhD, Gordon McKay Professor of Computer Science, Harvard University
Big data is everywhere. A fundamental goal across modern business and science is to be able to utilize as many machines as possible, to consume as much information as possible and as fast as possible. The big challenge is how to turn data into useful knowledge. This is a moving target as both the underlying hardware and our ability to collect data evolve. In this course, we discuss how to design data systems, data structures, and algorithms for key data-driven areas, including relational systems, distributed systems, graph systems, noSQL, newSQL, machine learning, and neural networks. We see how they all rely on the same set of very basic concepts, and we learn how to synthesize efficient solutions for any problem across these areas using those basic concepts.
Prerequisites: CSCI E-61, and CSCI E-66 or CSCI E-165, or the equivalent.
Spring 2025
Applied Quantitative Finance and Machine Learning
MarcAntonio Awada PhD, Head of Research and Data Science, Digital Data Design Institute, Harvard University
This course is about how to lift the veil of an insider's industry. Students learn how quantitative finance is applied in practice and utilized by the world's largest investment banks, asset management firms, hedge funds, pension plans, and insurance companies. All these repeatedly and consistently generate billions in profits. This course covers the four major pillars of quantitative finance: data management and analytics, quantitative investment strategies, portfolio management, and risk management. We address cutting-edge machine learning and artificial intelligence (AI) techniques in quantitative finance and describe essential industry domain knowledge and techniques which help students to enter the field of quantitative finance or advance in their current role.
Prerequisites: CSCI E-101 and the ability to code in Python and/or R.
January 2025
Data Science Precapstone
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School - Stephen Elston PhD, Principal Consultant, Quantia Analytics LLC
This course helps students develop academically strong, team-based capstone proposals. Working in teams is a critical industry skill that must be mastered for professional success. The course is mandatory for candidates in the Master of Liberal Arts, data science, who wish to register for CSCI E-599a in the spring. It prepares students to explore interdisciplinary capstone topics from a variety of industries and areas. Through workshops and collaboration with industry partners and other capstone students with experience from different industries and disciplines, students identify capstone topics, apply the appropriate data science methods, and use data to advance innovative solutions. Students receive guidance on how to work effectively in teams, refine project proposals, and build the domain knowledge necessary in their selected area. By the end of the course, each team submits a detailed capstone proposal, including project rationale, literature reviews, methods, and expected outcomes, which they intend to execute during CSCI E-599a.
Prerequisites: Registration is limited to officially admitted degree candidates in Master of Liberal Arts, data science, who are in their penultimate semester. Prospective candidates and students with pending admission applications are not eligible. Candidates must be in good academic standing and in the process of successfully completing all degree requirements except the capstone, CSCI E-599a, which they must enroll in the upcoming spring term as their one and only final course (no other course registration is allowed simultaneously with the capstone). Candidates who do not meet these degree requirements are dropped from the course.
January 2025
Systems Engineering Precapstone
Richard E. Joltes ALM, Senior Content Analytics Architect, US Department of Transportation
This course helps students develop academically strong, team-based capstone proposals. It is mandatory for candidates in the Master of Liberal Arts, systems engineering, who wish to register for CSCI E-599c in the coming spring term. Students develop a capstone proposal through workshops, collaboration, research, and working with industry partners. They receive guidance on refining project proposals, building the domain knowledge necessary in their selected area, and conducting user research. By the end of the course, each team submits a detailed research proposal, including project rationale, methods, and expected outcomes, which they intend to execute during the capstone course.
Prerequisites: Registration is limited to officially admitted degree candidates in the Master of Liberal Arts, systems engineering, who are in their penultimate semester. Prospective candidates and students with pending admission applications are not eligible. Candidates must be in good academic standing and in the process of successfully completing all degree requirements except the capstone, CSCI E-599c, which they must enroll in the upcoming spring term as their final, one-and-only course (no other course registration is allowed simultaneously with the capstone). Registration in CSCI E-599c immediately following this course is a mandatory degree requirement. Candidates who do not meet these degree requirements are dropped from the course.
Spring 2025
Capstone in Systems Engineering
Richard E. Joltes ALM, Senior Content Analytics Architect, US Department of Transportation
This course is the culmination of the Master of Liberal Arts, systems engineering, where student teams execute their capstone proposal from CSCI E-597c. It gives students the opportunity to collaborate with industry partners and other students on complex capstone topics using their systems engineering, communications, negotiation, leadership, and project management skills. At the completion of the capstone, students can demonstrate their ability to think critically about data, communicate with diverse audiences, and advance innovation in ways that benefit society.
Prerequisites: Registration is limited to officially admitted degree candidates in the Master of Liberal Arts, systems engineering. Candidates must be in good academic standing, ready to graduate in May with only the capstone left to complete (no other course registration is allowed simultaneously with the capstone), and have successfully completed CSCI E-597c in the previous January session. Candidates who do not meet these requirements are dropped from the course.
Fall 2024
Cybersecurity Capstone
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School
This course is the culmination of the Master of Liberal Arts, cybersecurity, where student teams execute their capstone proposal from CSCI S-597b. It gives students the opportunity to collaborate with industry partners and other students on complex capstone topics using their cybersecurity, communications, negotiation, leadership, and project management skills. At the completion of the capstone, students can demonstrate their ability to think critically about cybersecurity, communicate with diverse audiences, and advance innovation in ways that benefit society.
Prerequisites: Registration is limited to officially admitted degree candidates in the Master of Liberal Arts, cybersecurity. Candidates must be in good academic standing, ready to graduate in February with only the capstone left to complete (no other course registration is allowed simultaneously with the capstone), and have successfully completed the precapstone course, CSCI S-597b, in the previous summer term. Candidates who do not meet these requirements are dropped from the course.
Spring 2025
Data Science Capstone
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School - Stephen Elston PhD, Principal Consultant, Quantia Analytics LLC
This course is the culmination of the Master of Liberal Arts, data science, where student teams execute their capstone proposal from CSCI E-597. It gives students the opportunity to collaborate with industry partners and other students on complex capstone topics using their data science, communications, negotiation, leadership, and project management skills. At the completion of the capstone, students can demonstrate their ability to think critically about data, communicate with diverse audiences, and advance innovation in ways that benefit society.
Prerequisites: Registration is limited to officially admitted degree candidates in the Master of Liberal Arts, data science. Candidates must be in good academic standing, ready to graduate in May with only the capstone left to complete (no other course registration is allowed simultaneously with the capstone), and have successfully completed the precapstone course, CSCI E-597, in the previous January term. Candidates who do not meet these requirements are dropped from the course.
Fall 2024
Data Science Capstone
Bruce Huang EdD, PhD, Director of Master's Degree Program in Information Technology, Harvard Extension School - Stephen Elston PhD, Principal Consultant, Quantia Analytics LLC
This course is the culmination of the Master of Liberal Arts, data science, where student teams execute their capstone proposal from CSCI E-597. It gives students the opportunity to collaborate with industry partners and other students on complex capstone topics using their data science, communications, negotiation, leadership, and project management skills. At the completion of the capstone, students can demonstrate their ability to think critically about data, communicate with diverse audiences, and advance innovation in ways that benefit society.
Prerequisites: Registration is limited to officially admitted degree candidates in the Master of Liberal Arts, data science. Candidates must be in good academic standing, ready to graduate in February with only the capstone left to complete (no other course registration is allowed simultaneously with the capstone), and have successfully completed the Harvard Summer School precapstone course, CSCI S-597, in the previous summer term. Candidates who do not meet these requirements are dropped from the course.
Spring 2025
Software Engineering Capstone
Peter Vaughan Henstock PhD
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 present to the Extension School's Master of Liberal Arts, software engineering faculty committee based on the course project.
Prerequisites: Registration is limited to officially admitted candidates in the Master of Liberal Arts, software engineering, capstone track. Prospective candidates and students with pending admission applications are not eligible. Candidates must be in good academic standing, have completed nine degree courses including the software design requirement, and have proficiency in programming. Candidates who do not meet these degree requirements are dropped from the course.
Fall 2024
Systems Engineering Capstone
Richard E. Joltes ALM, Senior Content Analytics Architect, US Department of Transportation
This course is the culmination of the Master of Liberal Arts, systems engineering, where student teams execute their capstone proposal from CSCI S-597c. It gives students the opportunity to collaborate with industry partners and other students on complex capstone topics using their systems engineering, communications, negotiation, leadership, and project management skills. At the completion of the capstone, students can demonstrate their ability to think critically about systems, communicate with diverse audiences, and advance innovation in ways that benefit society.
Prerequisites: Registration is limited to officially admitted degree candidates in the Master of Liberal Arts, systems engineering. Candidates must be in good academic standing, ready to graduate in February with only the capstone left to complete (no other course registration is allowed simultaneously with the capstone), and have successfully completed the Harvard Summer School precapstone course, CSCI S-597c, in the previous summer term. Candidates who do not meet these requirements are dropped from the course.