Harvard Extension Courses in Computer Science

Return to Department List

Computer Science

CSCI E-1b Section 1 (25393)

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.

CSCI E-1b Section 1 (16998)

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.

CSCI E-3 Section 1 (15118)

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.

CSCI E-5a Section 1 (17110)

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.

CSCI E-7 Section 1 (25531)

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.

CSCI E-7 Section 1 (16959)

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.

CSCI E-8b Section 1 (26759)

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).

CSCI E-10a Section 1 (14289)

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.

CSCI E-10b Section 1 (16971)

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.

CSCI E-10b Section 1 (24027)

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.

CSCI E-11 Section 1 (26787)

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).

CSCI E-12 Section 1 (15078)

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.

CSCI E-15 Section 1 (26766)

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.

CSCI E-20 Section 1 (17144)

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.

CSCI E-20 Section 1 (26502)

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.

CSCI E-22 Section 1 (17117)

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).

CSCI E-22 Section 1 (26616)

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).

CSCI E-23a Section 1 (16214)

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.

CSCI E-25 Section 1 (26285)

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.

CSCI E-26 Section 1 (14294)

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.

CSCI E-28 Section 1 (24040)

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.

CSCI E-31 Section 1 (25038)

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.

CSCI E-33a Section 1 (25184)

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.

CSCI E-33a Section 1 (16215)

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.

CSCI E-34 Section 1 (26765)

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.

CSCI E-39 Section 1 (16734)

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.

CSCI E-40 Section 1 (14296)

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.

CSCI E-40 Section 1 (24033)

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.

CSCI E-49b Section 1 (26757)

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.

CSCI E-49 Section 1 (16960)

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.

CSCI E-50 Section 1 (24107)

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.

CSCI E-50 Section 1 (14290)

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.

CSCI E-59 Section 1 (25690)

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.

CSCI E-61 Section 1 (17148)

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.

CSCI E-63c Section 1 (15123)

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.

CSCI E-63c Section 1 (24748)

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.

CSCI E-66 Section 1 (17149)

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.

CSCI E-71 Section 1 (16441)

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.

CSCI E-80 Section 1 (16393)

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.

CSCI E-80 Section 1 (25793)

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.

CSCI E-82 Section 1 (15407)

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.

CSCI E-83 Section 1 (16768)

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.

CSCI E-87 Section 1 (17070)

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.

CSCI E-88c Section 1 (16769)

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++.

CSCI E-89 Section 1 (16392)

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.

CSCI E-89b Section 1 (17133)

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.

CSCI E-90 Section 1 (15865)

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.

CSCI E-93 Section 1 (17128)

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.

CSCI E-94 Section 1 (25152)

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).

CSCI E-95 Section 1 (26767)

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.

CSCI E-96 Section 1 (15736)

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.

CSCI E-96 Section 1 (26599)

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.

CSCI E-97 Section 1 (15356)

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.

CSCI E-101 Section 1 (16602)

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.

CSCI E-101 Section 1 (26190)

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.

CSCI E-102 Section 1 (26343)

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.

CSCI E-103 Section 1 (16694)

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.

CSCI E-104 Section 1 (26435)

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.

CSCI E-106 Section 1 (26017)

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.

CSCI E-106 Section 1 (15765)

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.

CSCI E-108 Section 1 (26492)

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.

CSCI E-109b Section 1 (26501)

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.

CSCI E-109a Section 1 (16877)

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.

CSCI E-112 Section 1 (26778)

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.

CSCI E-114 Section 1 (26437)

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.

CSCI E-115 Section 1 (26769)

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.

CSCI E-116 Section 1 (26469)

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.

CSCI E-116 Section 1 (16856)

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.

CSCI E-117 Section 1 (26436)

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.

CSCI E-120 Section 1 (17283)

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.

CSCI E-121 Section 1 (17114)

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.

CSCI E-125 Section 1 (26601)

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.

CSCI E-138 Section 1 (26912)

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.

CSCI E-140 Section 1 (17125)

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.

CSCI E-142 Section 1 (16682)

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.

CSCI E-144 Section 1 (16955)

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.

CSCI E-145 Section 1 (26710)

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.

CSCI E-147a Section 1 (26594)

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.

CSCI E-149a Section 1 (16691)

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.

CSCI E-150 Section 1 (17121)

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.

CSCI E-151 Section 1 (17011)

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.

CSCI E-151 Section 1 (26716)

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.

CSCI E-155 Section 1 (26603)

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.

CSCI E-155 Section 1 (16963)

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.

CSCI E-158 Section 1 (26764)

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.

CSCI E-159 Section 1 (26630)

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.

CSCI E-159 Section 1 (16996)

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.

CSCI E-161 Section 1 (26768)

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.

CSCI E-165 Section 1 (16957)

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.

CSCI E-169 Section 1 (26774)

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.

CSCI E-176 Section 1 (26700)

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.

CSCI E-184 Section 1 (26606)

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.

CSCI E-192 Section 1 (26646)

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.

CSCI E-210 Section 1 (26781)

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.

CSCI E-221 Section 1 (17131)

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.

CSCI E-265 Section 1 (26522)

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.

CSCI E-278 Section 1 (26782)

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.

CSCI E-597 Section 1 (25390)

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.

CSCI E-597c Section 1 (26930)

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.

CSCI E-599c Section 1 (26929)

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.

CSCI E-599b Section 1 (16989)

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.

CSCI E-599a Section 1 (25391)

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.

CSCI E-599a Section 1 (16091)

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.

CSCI E-599 Section 1 (24531)

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.

CSCI E-599c Section 1 (17150)

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.