Skip to content

danielcregg/cs50-codespace

 
 

Repository files navigation

CS50 Codespace

Python C PHP Docker GitHub Codespaces License: GPL v3

Note: This repository is a fork of cs50/codespace.

A Docker-based GitHub Codespaces environment for Harvard's CS50 courses. It provides a pre-configured cloud IDE with C, Python, Java, and PHP toolchains, plus custom CS50 VS Code extensions, a VNC-based GUI desktop, and helper utilities -- all ready to use in the browser.

Overview

This Codespace image builds on the official CS50 CLI Docker image and adds everything needed for a full CS50 development workflow inside GitHub Codespaces, including glibc sources for debugging, a noVNC virtual desktop, PHP with SQLite support, and curated VS Code extensions.

Features

  • Pre-built CS50 environment -- C/C++ (GCC, GDB), Python 3, Java 18, PHP, and SQLite
  • Custom VS Code extensions -- CS50-specific IDE features, PHPLiteAdmin, debugging tools, Live Share, and Git auto-commit (gitdoc)
  • Virtual desktop (noVNC) -- Run GUI applications (e.g., JavaFX) directly in the browser via X11/VNC
  • Helper scripts -- update50 for self-updating, postCreateCommand for workspace bootstrapping, custom prompt and URL rewriting for Codespaces
  • Smart .gitignore -- Automatically generated to track source files while ignoring binaries and files over 100 MB

Prerequisites

Getting Started

Installation

  1. Fork this repository to your GitHub account.
  2. Click the green Code button and select Open with Codespaces.
  3. Create a new Codespace. The container will build automatically from the Dockerfile.

Usage

Once the Codespace is running:

  • C programs:
    make hello
    ./hello
  • Python programs:
    python hello.py
  • Flask applications are automatically URL-rewritten for the Codespaces proxy.
  • PHPLiteAdmin is available for managing SQLite databases.
  • Run update50 in the terminal to pull the latest CS50 environment updates.

Tech Stack

Technology Purpose
Docker Container image for the development environment
Ubuntu (Focal) Base operating system
GCC / GDB C/C++ compiler and debugger
Python 3 Scripting and CS50 problem sets
Java 18 (OpenJDK) Java development
PHP + SQLite Web development and database management
noVNC / X11 Browser-based virtual desktop for GUI apps
VS Code Extensions CS50 IDE customizations

License

This project is licensed under the GNU General Public License v3.0.

About

Fork of CS50 Codespace: a Docker-based GitHub Codespaces environment for Harvard CS50 with C, Python, Java, PHP, and a virtual desktop

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • PHP 93.0%
  • Shell 2.8%
  • CSS 2.2%
  • Dockerfile 1.2%
  • Other 0.8%