Infrastructure

Components of Making With Code

MWC C4 Context Diagram

One of the goals of the Making with Code project is to provide the technical infrastructure needed to support open-ended, project-based computer science. Schools these days already have quite a big of digital infrastructure, so this section describes what Making with Code provides and how it interacts with your other systems. Making with Code has four components, each described below.

MWC curriculum

The curriculum is a static website with student-facing materials such as labs, projects, and problem sets, as well as resources for teachers. The curriculum is designed to be ready-to-use, or for indiviudal teachers or schools to customize. Hopefully, development of the curriculum will be an ongoing collaborative project by the teachers who use it.

The MWC curriclum is written in markdown and built using Zola, a static site generator. If you're interested in collaborating on the curriculum or editing it for your own purposes, please read the section on development. The MWC curriculum is distributed as a git repo.

MWC command-line interface (CLI)

The command-line interface is a Terminal program installed on student and teacher computers. For students, the CLI takes care of setting up the development environment, and making making sure students have the right lab and project repos. For teachers, the CLI fetches students' work and provides a quick view of student progress.

Each curriculum module also has a corresponding git repo providing starter code and tests. The CLI checks the MWC curriculum site to see which modules are available. When a student starts working on a curriculum module, the CLI creates a new repo for that student, so that they can save their work and share it with the teacher by pushing it back to the the server.

MWC git server

The git server is an open-source alternative to GitHub which works in almost the same way. The git server hosts student and teacher repos securely and for free.

MWC accounts server

The accounts server manages student and teacher accounts, including making sure that only students and their teachers have access to student work.

Student computers

Making With Code is fundamentally about helping students learn to think and make with code, so students need an environment where they can program.

Ideally, students have one-to-one general-purpose computers (not chromebooks or ipads). MWC can work on shared computers, and, we also support Replit, which can be accessed through a web browser.

System requirements:

If students do not have access to computers meeting these requirements, MWC can be run through Replit in a web browser.