Workshop 307
Providing Students with Standardized, Cloud-Based Programming Environments at Term's Start (for Free)
If you don't already have a (free) GitHub account, create now at github.com/join!
If you haven't already
MALAN
Workshop 307
Providing Students with Standardized, Cloud-Based Programming Environments at Term's Start (for Free)
If you don't already have a (free) GitHub account, create now at github.com/join!
Agenda
Team
Acknowledgements
Agenda
Client-Side
Client-Side
Server-Side
Server-Side
Agenda
GitHub Codespaces
Visual Studio Code for CS50
Features
Dockerfile
FROM ubuntu:latest
RUN apt update
RUN apt install --yes git openjdk-21-jdk python3 python3-pip
RUN pip3 install Pillow
.devcontainer.json
VS Code Desktop
cli50
Before Break Ends
RONGXIN
Agenda
After Break
* If not yet verified, not a problem for tonight.
Agenda
Create a Private Repository
Create Dockerfile
FROM ubuntu:latest
RUN apt update
RUN apt install --yes git openjdk-21-jdk python3 python3-pip
RUN pip3 install Pillow
Create .devcontainer.json
{
"build": { "dockerfile": "Dockerfile" }
}
Launch a Codespace
Write a Python/Java program
Install Python Extension
Install Java Extension
Commit Changes
Agenda
Update .devcontainer.json
{
"image": "docker.io/python:latest",
"customizations": {
"vscode": {
"extensions": ["ms-python.python"],
"settings": { "workbench.colorTheme": "Solarized Light" }
}
},
"features": { "ghcr.io/devcontainers/features/github-cli:1": {} }
}
Launch New Codespace
Rebuild Codespace
{
"image": "docker.io/openjdk:latest",
"customizations": {
"vscode": {
"extensions": ["vscjava.vscode-java-pack"],
"settings": { "workbench.colorTheme": "Solarized Dark" }
}
}
}
Update .devcontainer.json file on your Codespace:
CARTER
Agenda
GitHub Classroom
cs50.ly/classroom
cs50.ly/classroom
Instructions
As an instructor:
As a student:
Add Distribution Code
Turn Repository into a Public Template
"This public beta allows us to enable one of our most-requested features from teachers: the ability to change starter code after an assignment has been accepted by students."
Sign into GitHub Classroom
Sign in at classroom.github.com
Create a Classroom
Create an Assignment
(as a student)
Accept the Assignment
(as a student)
Work on the Assignment with Codespaces
Homework
Q&A