Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

How to light the fire?

“Education Is Not the Filling of a Pail, But the Lighting of a Fire”

Often attributed to W.B. Yeats

“I cannot teach anybody anything. I can only make them think.”

Often attributed to Socrates

“Can you teach AI to teach you?”

CityUHK Learning Classroom (link)

Background

This is a jupyter book for the course Introduction to Computer Programming at City University of Hong Kong. The course aims to introduce key concepts, techniques, and good practices of programming using a high-level programming language Python.

Course Intended Learning Outcomes (CILOs):

  1. Explain the structure of a computer program.

  2. Analyze, test and debug computer programs.

  3. Apply proper programming techniques to solve a task.

  4. Construct well-structured programs.

  • Designed in 2019 (during COVID-19) and implemented since 2020/21 Semester A.

  • Grown to >600 students in 2025/26:

    • ~240 CS, ~370 non-CS students

    • ~440 non-CS studnets in semester B

Courseware

DIVE (TALE 2022/2025)

An in-house kubernetes cluster to run interative teaching materials.

Interactive Python/C++

import ROOT
print("Hello, World!")
%%cpp
cout << "Hello, World!\n"; 
!nvidia-smi  # Access to GPU if available

Integrated with GenAI:

%%hermes
Explain briefly the ingredients involved in writing the following program:
--
def gcd(a, b): return gcd(b%a, a) if a else abs(b)  # one-liner for GCD

E-Quiz (TALE 2023)

  • Over 200 questions for students to instantly check and debug their solution with AI.

  • Conduct computer-based exams in Safe-Exam Browser with restricted access to AI.

Misuse of AI

An Example

  • Student: John Smith (fake name)

  • Assignments: 99.55%

  • Midterm: 30%

The Bug

Misuse of GenAI to generate bug-free solution in assignments:

  • bypasses computational thinking in constructing good programs

  • bypasses opportunities to debug

  • creates an illusion of competence

CE-Quiz (INTED 2026)

In-class collaborative E-Quiz assignments with help from

  • classmates (TBL),

  • student helpers (PALSI), and

  • a visual debugger (OPTMentor) with Socratic AI.

Socratic AI (TALE 2025, EDULEARN 2026)

A tailor-made AI model for

  • students to have AI-assisted visual debugger, and

  • instructors to provide quality feedback to lab assignments.

OPTMentor running in-browser without a server

  • Turns error into thought-provoking questions that help debugging.

  • Uses a highly portable small language models (SLM) trained on DIVE by a CS1302 student.

Agentic Coding

Student-Developed Packages in a Summer (Submitted to TALE 2026)

  • hermes-acp-sdk - Python package for integrating the Hermes AI agent into existing applications with minimal code.

  • traceback-coach - Explains Python notebook tracebacks in a structured, human-readable way with guided debugging questions.

  • hermes-textstats - Lightweight text analysis tool for word counts, sentence counts, lexical diversity, and reading-time estimates.

  • obj-tag-group - Utility for attaching tags to Python objects and retrieving them through tag or regex searches.

  • sliveshow - JupyterLab extension for turning notebooks into animated slide presentations with live code execution.

  • socratic-watchdog - Socratic TTS assistant that monitors notebook execution and provides spoken guidance when students need help.

  • ultrasonic-img-steg - Package for embedding and recovering image data within inaudible frequencies of lossless audio files.

Core Concepts

  • Specification-driven approach — define a precise spec first, then let the agent implement, test, and iterate against it.

  • Self-learning Hermes Agent — an agent that improves over time through reusable skills and persistent memory across sessions.

  • Project Maieutic — a Socratic, spec-driven course platform built around an Obsidian vault (formerly “Obsidian vault”).

  • DeepSeek Harness (dsh) — the in-pod agentic coding UI and how to point it at a model provider.

  • Model Providers — the DiveAI / LiteLLM endpoints, personal API keys, and custom endpoints.

Student-Developed Notebooks