BOOTS: A Modern TypeScript Curriculum for Teaching OOP
What is BOOTS?
- A textbook
- A framework
- And so much more!
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:
- Greg Silber
- Austin Cory Bart (acbart@udel.edu)
- James Clause
- Faith Lovell
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! π