Skip to content

Commit 8d8c1b8

Browse files
committed
feat: Complete website overhaul with unified navigation and auto-generation
Website Structure: - Move course outline to root (contextlab.github.io/llm-course) - Create syllabus page from admin/syllabus.md - Create assignments hub with all 6 assignment pages - Add 'Accept Assignment' placeholders for GitHub Classroom Navigation & Footer: - Unified nav: Outline, Syllabus, Demos, Assignments, GitHub - Footer: Contextual Dynamics Lab link only - Old /slides/ path redirects to root Build System: - scripts/build-pages.py generates HTML from markdown - .github/workflows/build-pages.yml auto-rebuilds on markdown changes - deploy-demos.yml updated to include syllabus and assignments See issue #50 for submission system implementation plan.
1 parent 15380b4 commit 8d8c1b8

File tree

16 files changed

+7583
-1221
lines changed

16 files changed

+7583
-1221
lines changed

.github/workflows/build-pages.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build Course Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'admin/syllabus.md'
8+
- 'assignments/**/*.md'
9+
- 'scripts/build-pages.py'
10+
- '.github/workflows/build-pages.yml'
11+
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents: write
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v4
23+
with:
24+
token: ${{ secrets.GITHUB_TOKEN }}
25+
26+
- name: Setup Python
27+
uses: actions/setup-python@v5
28+
with:
29+
python-version: '3.11'
30+
31+
- name: Build pages
32+
run: python scripts/build-pages.py
33+
34+
- name: Check for changes
35+
id: check_changes
36+
run: |
37+
git add -A
38+
if git diff --staged --quiet; then
39+
echo "changed=false" >> $GITHUB_OUTPUT
40+
else
41+
echo "changed=true" >> $GITHUB_OUTPUT
42+
fi
43+
44+
- name: Commit and push
45+
if: steps.check_changes.outputs.changed == 'true'
46+
run: |
47+
git config user.name github-actions[bot]
48+
git config user.email github-actions[bot]@users.noreply.github.com
49+
git commit -m "chore: Auto-generate HTML pages from markdown"
50+
git push

.github/workflows/deploy-demos.yml

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
name: Deploy Demos to GitHub Pages
22

33
on:
4-
# Trigger on push to main branch
54
push:
65
branches:
76
- main
87
paths:
98
- 'demos/**'
109
- 'slides/**'
10+
- 'syllabus/**'
11+
- 'assignments/**'
1112
- 'figures/**'
1213
- 'fonts/**'
14+
- 'index.html'
1315
- '.github/workflows/deploy-demos.yml'
1416

15-
# Allow manual trigger from Actions tab
1617
workflow_dispatch:
1718

1819
# Sets permissions for GitHub Pages deployment
@@ -63,33 +64,30 @@ jobs:
6364
6465
- name: Create build artifact
6566
run: |
66-
echo "Preparing demos, slides, and assets for deployment..."
67+
echo "Preparing site for deployment..."
6768
mkdir -p _site/demos
6869
mkdir -p _site/slides
70+
mkdir -p _site/syllabus
71+
mkdir -p _site/assignments
6972
mkdir -p _site/figures
7073
mkdir -p _site/fonts
74+
75+
cp index.html _site/
7176
cp -r demos/* _site/demos/
7277
cp -r slides/* _site/slides/
78+
cp -r syllabus/* _site/syllabus/
79+
cp -r assignments/*.html _site/assignments/ 2>/dev/null || true
80+
cp -r assignments/*.md _site/assignments/ 2>/dev/null || true
81+
for dir in assignments/assignment-* assignments/final-project; do
82+
if [ -d "$dir" ]; then
83+
cp -r "$dir" _site/assignments/
84+
fi
85+
done
7386
cp -r figures/* _site/figures/
7487
cp -r fonts/* _site/fonts/
7588
76-
# Create a .nojekyll file to bypass Jekyll processing
7789
touch _site/.nojekyll
7890
79-
# Create root redirect to course outline
80-
cat > _site/index.html << 'EOF'
81-
<!DOCTYPE html>
82-
<html>
83-
<head>
84-
<meta http-equiv="refresh" content="0; url=slides/">
85-
<script>window.location.href = 'slides/';</script>
86-
</head>
87-
<body>
88-
<p>Redirecting to <a href="slides/">course outline</a>...</p>
89-
</body>
90-
</html>
91-
EOF
92-
9391
# Create a custom 404 page
9492
cat > _site/404.html << 'EOF'
9593
<!DOCTYPE html>

assignments/README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Course Assignments
2+
3+
Welcome to the assignments for PSYC 51.17: Models of Language and Communication.
4+
5+
## Submission Instructions
6+
7+
All assignments are submitted via GitHub Classroom. Click the "Accept Assignment" button on each assignment page to get started. This will create a personal repository where you'll complete your work.
8+
9+
**Submission Process:**
10+
1. Click "Accept Assignment" to create your repository
11+
2. Clone the repository to your local machine or open in Google Colab
12+
3. Complete the assignment following the instructions
13+
4. Commit and push your changes before the deadline
14+
5. Your latest commit before the deadline will be graded
15+
16+
## Assignment Schedule
17+
18+
| # | Title | Released | Due | Weight |
19+
|---|-------|----------|-----|--------|
20+
| 1 | [ELIZA Chatbot](./assignment-1/) | Week 1 | End of Week 2 | 15% |
21+
| 2 | [SPAM Classifier](./assignment-2/) | Week 2 | End of Week 3 | 15% |
22+
| 3 | [Wikipedia Embeddings](./assignment-3/) | Week 3 | End of Week 4 | 15% |
23+
| 4 | [Customer Service Chatbot](./assignment-4/) | Week 5 | End of Week 6 | 15% |
24+
| 5 | [Build GPT](./assignment-5/) | Week 7 | Week 9 | 15% |
25+
| Final | [Research Project](./final-project/) | Week 9 | Finals Week | 25% |
26+
27+
## Late Policy
28+
29+
Assignments receive a 10% deduction for each week late, rounded up to the nearest whole week. The final project must be submitted on time.
30+
31+
## Grading
32+
33+
Each assignment is graded on:
34+
- **Correctness**: Does your code produce the expected outputs?
35+
- **Code Quality**: Is your code well-organized and documented?
36+
- **Understanding**: Do your explanations demonstrate understanding of the concepts?
37+
38+
## Getting Help
39+
40+
- **Office Hours**: By appointment
41+
- **Discord**: Join our class server for discussions
42+
- **GitHub Issues**: Report bugs or ask questions on the assignment repositories
43+
44+
---
45+
46+
## Assignments
47+
48+
### [Assignment 1: ELIZA Chatbot](./assignment-1/)
49+
Build a pattern-matching chatbot based on Weizenbaum's classic ELIZA program. Learn about string manipulation, regular expressions, and the foundations of conversational AI.
50+
51+
### [Assignment 2: SPAM Classifier](./assignment-2/)
52+
Develop a text classification system to identify spam messages. Explore feature engineering, tokenization, and evaluation metrics.
53+
54+
### [Assignment 3: Wikipedia Embeddings](./assignment-3/)
55+
Compare different text embedding methods on Wikipedia articles. Visualize semantic relationships and evaluate embedding quality.
56+
57+
### [Assignment 4: Customer Service Chatbot](./assignment-4/)
58+
Create a context-aware customer service chatbot using transformer-based models. Implement retrieval and response generation.
59+
60+
### [Assignment 5: Build GPT](./assignment-5/)
61+
Implement and train a small GPT model from scratch. Understand the transformer architecture, attention mechanisms, and autoregressive generation.
62+
63+
### [Final Project: Research Project](./final-project/)
64+
Conduct an independent research project applying concepts from the course. Present your findings to the class.

0 commit comments

Comments
 (0)