Common Course Configuration

[ Note that CCC is a work-in-progress - this documentation is preliminary and may change. ]

CCC (Common Course Configuration) is a course environment management tool meant to reduce setup time and streamline assignment completion for CS students. It currently supports computer science courses that require container-based environments and is being extended to support courses with other development environment needs. This README details how to use the tool as a student

Quick Start

# Install the CCC tool
./install.sh

# Setup courses directory and select auto-update preferences
ccc init

# Open a course environment
ccc open <course-id> --> ex: ccc open csci-1515-demo
 

Requirements

Commands

Course Management

Container Management

Tool Management

Options

Installation

User-local (default):

./install.sh

System-wide:

sudo ./install.sh --system

Reset/Clear CCC Generated Resources

./reset.sh

Uninstall:

./uninstall.sh

How It Works (see also docs on github)

  1. Course registry (registry.csv) defines available courses, links their developement repos, and lists their requirements (container, architecture, etc)
  2. CCC (bin/ccc) is the central dispatch for all CCC commands, loads necessary helper files and environment variables needed for course setup
  3. Open (share/open.sh) houses the logic that determines how a course will be opened (based on registry, either container or local shell), then opens the appropriate environment
  4. share/course_installer.sh is the installer used to download course specific packages, generate symlinks, and load environment variables into the shared/default CCC container. This facilitates multiple courses using the same, shared container provided by CCC.