BOOTS: A Modern TypeScript Curriculum for Teaching OOP

What is BOOTS?

BOOTS (Beginner Object-Oriented TypeScript) is an open-source curriculum designed to teach Object-Oriented Programming (OOP) and modern software development concepts in a second-semester Computer Science course (CS2). BOOTS integrates TypeScript and web development to provide students with practical, industry-relevant skills.

Traditionally, CS2 courses focus on OOP with languages like Java. BOOTS reimagines CS2 by leveraging TypeScript, a statically-typed superset of JavaScript, to introduce OOP concepts while giving students hands-on web development experience.

Why Teach with BOOTS?

BOOTS offers a structured, engaging curriculum that aligns with modern software development. Here’s why it stands out:

πŸš€ Teaches Core OOP Principles

BOOTS covers:

  • Classes, Inheritance, and Polymorphism
  • Encapsulation and Composition
  • Abstract Classes and Interfaces
  • Exception Handling and Unit Testing

🌍 Industry-Relevant Web Development

BOOTS ensures students get practical experience with:

  • TypeScript as a strongly-typed, modern language
  • Webz, a lightweight Angular-inspired frontend framework
  • HTML & CSS, allowing students to build real web applications

πŸ”₯ Engaging, Hands-On Learning

  • Interactive textbook with runnable TypeScript code (πŸ“– BOOTS Textbook)
  • Weekly autograded programming assignments
  • Final web-based projects that reinforce OOP through real applications

πŸ”§ Easy-to-Adopt Teaching Materials

BOOTS provides:

  • πŸ“š Full textbook with code examples
  • πŸŽ“ Editable lecture slides
  • πŸ“ Programming problem sets with autograding
  • πŸ› οΈ The Webz framework for simplified web development (πŸ› οΈ Webz)

Course Structure

BOOTS follows a structured 13-week curriculum, progressively introducing OOP and web concepts:

Week Topics Covered
1 Variables, Functions, Conditionals, Strings
2 Loops and Arrays
3 Classes and Constructors
4 Methods, Encapsulation, Deep Copy
5 Composition and Inheritance
6 Polymorphism and Abstract Classes
7 Exception Handling, Code Quality
8 Unit Testing with Jest
9 HTML, CSS, and Webz Basics
10 Advanced Webz, Dynamic Components, Event Binding
11 Interfaces and Generics
12 Higher Order Functions and Array Methods
13 Recursion and Trees

How to Get Started

BOOTS is fully open-source and free to use! Get started with these resources:

  • πŸ“– Read the textbook: BOOTS Textbook
  • πŸ› οΈ Explore the Webz framework: Webz
  • πŸ“‚ Access the curriculum materials: (Coming Soon)

Join the Community

BOOTS is built to be collaborative and adaptable. If you’re an instructor interested in using or contributing to BOOTS, join us!

βœ‰οΈ Get in touch: https://github.com/orgs/boots-edu/discussions

πŸ‘©β€πŸ« Contribute to the curriculum: We welcome feedback, additional teaching materials, and new exercises.

About

The Boots project is the work of several key individuals:


BOOTS brings modern software development to the introductory CS classroom, ensuring students leave with both OOP fundamentals and practical web development skills. Give your students a head start in the industry with BOOTS! πŸš€