Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Building CS50 on GitHub
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
CS50
October 11, 2017
Education
680
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building CS50 on GitHub
CS50
October 11, 2017
More Decks by CS50
See All by CS50
Scaling CS50: Building Learning Communities around the World
cs50
1
83
Technology We Can’t Live Without!, revisited
cs50
0
230
A Web-Based IDE for Teaching with Any Language 2017
cs50
0
53
A Web-Based IDE for Teaching with Any Language 2016
cs50
0
51
Things We Do That You Can Do Too
cs50
1
810
Birds of a Feather Who'd Like to Share Software Together
cs50
2
280
CS50 Educator Workshop June 2017
cs50
2
300
This is CS50x.ni
cs50
1
140
CS50 a Escala
cs50
1
150
Other Decks in Education
See All in Education
オンラインコミュニティ TRY部 体験マニュアル
ytapples613
0
350
AWS Skill Builderを活用した一石二鳥の業務計画
ysaeki
0
140
2026年度春学期 統計学 第13回 不確かな測定の不確かさを測る ― 不偏分散とt分布 (2026. 6. 25)
akiraasano
PRO
1
180
Tableau Public入門ハンズオン|Titanicデータで学ぶViz作成とMakeover
hayashi_ds017
0
120
セキュリティ担当がいない中小医療機関を院外のRISSはどう支えるべきか / How External RISS Can Help Small Medical Institutions
eller86
0
190
One Year of Learning English with AI @エンジニア英語キャリア Meetup #3
kekekenta
0
200
Course Review - Lecture 13 - Information Visualisation (4019538FNR)
signer
PRO
1
2.8k
Réunion des directrices et directeurs des écoles de la circonscription de Jonzac - 31 août 2026
fmarot
0
120
AI時代のセキュリティ監査
matshogo
PRO
0
110
Fundamentos, Caracteristicas y Aplicaciones de los Modulos NumPy , Matplotlib y Pandas
robintux
0
250
遊ぶかね欲しさの犯行(ルビ:労働)です
shirayanagiryuji
0
260
Del ojo entrenado a la visión computacional: evaluación de la severidad de enfermedades
emdelponte
0
120
Featured
See All Featured
HDC tutorial
michielstock
2
860
Site-Speed That Sticks
csswizardry
13
1.5k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Become a Pro
speakerdeck
PRO
31
6.2k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
New Earth Scene 8
popppiees
3
2.5k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
680
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
A Soul's Torment
seathinner
7
3.6k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
620
Building an army of robots
kneath
306
46k
Transcript
Building CS50 on GitHub David J. Malan
[email protected]
slides at
cs50.ly/universe17
None
This is CS50 • CS50 ◦ 800 students at Harvard,
200 students at Yale • CS50x ◦ 1M registrants online • CS50 AP ◦ 150 high schools, 5,000 students
None
Problems Past • Developing apps • Deploying apps • Hosting
docs • ...
Problems Present 1. Students do work. 2. Students submit work.
3. Teaching fellows review work.
Team • Brian Yu • Chad Sharp • Hailey James
• Kareem Zidane
Team • Brian Yu • Chad Sharp • Hailey James
• Kareem Zidane
Solutions 1. Students do work. 2. Students submit work. 3.
Teaching fellows review work.
Solutions 1. Students do work. Homegrown tool. 2. Students submit
work. 3. Teaching fellows review work.
Solutions 1. Students do work. Homegrown tool. 2. Students submit
work. Homegrown tool. 3. Teaching fellows review work.
Solutions 1. Students do work. Homegrown tool. 2. Students submit
work. Homegrown tool. 3. Teaching fellows review work. Homegrown tool.
Solutions
Solutions 1. Homegrown tool
Solutions 1. Homegrown tool 2. Improved homegrown tool
Solutions 1. Homegrown tool 2. Improved homegrown tool 3. New
homegrown tool
Solutions 1. Homegrown tool 2. Improved homegrown tool 3. New
homegrown tool 4. New-and-improved homegrown tool
Solutions 1. Homegrown tool 2. Improved homegrown tool 3. New
homegrown tool 4. New-and-improved homegrown tool 5. GitHub
Solutions 1. Homegrown tool 2. Improved homegrown tool 3. New
homegrown tool 4. New-and-improved homegrown tool 5. GitHub + homegrown tool
Solutions 1. Homegrown tool 2. Improved homegrown tool 3. New
homegrown tool 4. New-and-improved homegrown tool 5. GitHub + homegrown tool
Solutions 1. Homegrown tool 2. Improved homegrown tool 3. New
homegrown tool 4. New-and-improved homegrown tool 5. GitHub + Docker
Doing Work 1. ice.harvard.edu
Doing Work 1. ice.harvard.edu 2. nice.harvard.edu
Doing Work 1. ice.harvard.edu 2. nice.harvard.edu 3. cloud.cs50.net
Doing Work 1. ice.harvard.edu 2. nice.harvard.edu 3. cloud.cs50.net 4. CS50
Appliance
Doing Work 1. ice.harvard.edu 2. nice.harvard.edu 3. cloud.cs50.net 4. CS50
Appliance 5. CS50 IDE
Submitting Work
Submitting Work 1. submit
Submitting Work 1. submit 2. cs50submit
Submitting Work 1. submit 2. cs50submit 3. GitHub:FI
Submitting Work 1. submit 2. cs50submit 3. GitHub:FI 4. CS50
Submit with CLI
Submitting Work 1. submit 2. cs50submit 3. GitHub:FI 4. CS50
Submit with CLI 5. CS50 Submit with GUI
Submitting Work 1. submit 2. cs50submit 3. GitHub:FI 4. CS50
Submit with CLI 5. CS50 Submit with GUI 6. submit50
Submitting Work 1. submit 2. cs50submit 3. GitHub:FI 4. CS50
Submit with CLI 5. CS50 Submit with GUI 6. GitHub
Submitting Work 1. submit 2. cs50submit 3. GitHub:FI 4. CS50
Submit with CLI 5. CS50 Submit with GUI 6. GitHub 7. GitHub + Docker
Reviewing Work
Reviewing Work 1. Paper
Reviewing Work 1. Paper 2. PDF
Reviewing Work 1. Paper 2. PDF 3. CS50 Submit
Reviewing Work
Reviewing Work 1. Paper 2. PDF 3. CS50 Submit 4.
GitHub.com
Reviewing Work 1. Paper 2. PDF 3. CS50 Submit 4.
GitHub.com 5. GitHub.com + homegrown tool 0:-)
Why • Client • Server • UI for code review
• Permissions model ◦ CS50 ◦ CS50x ◦ CS50 AP • Post-commit hooks • ...
How • Gists? • Pull Requests? • GitHub Classroom? •
Commits?
None
None
None
None
What • Client • Server • UI for code review
• Permissions model ◦ CS50 ◦ CS50x ◦ CS50 AP • Post-commit hooks • ...
None
education.github.com
None
How • Repo per project? • Branch per project?
None
None
github.com/cs50/submit50
None
None
None
None
None
None
None
Submitting • git add --all • git commit --allow-empty --message
• git push origin refs/heads/hello
Resubmitting • git clone --bare hello /tmp • git symbolic-ref
HEAD refs/heads/hello • git add --all • git commit --allow-empty --message • git push origin refs/heads/hello
developer.github.com/v3/repos/
None
None
None
None
None
None
None
None
None
None
Tagging • git clone • git checkout refs/heads/hello • git
commit-tree HEAD^{tree} -m 20171011T230000Z • git push origin refs/tags/20171011T230000Z
github.com/cs50/check50
Autograding • git clone • git checkout refs/tags/20171011T230000Z • check50
hub.docker.com/r/cs50/
docker.com
docker.com
aws.amazon.com/ecs/
GitHub + Docker 1. Student pushes code to GitHub 2.
Post-receive hook informs CS50 of submission 3. CS50 informs ECS of submission 4. ECS clones repo, autogrades branch 5. ECS informs CS50 of scores
None
None
None
tl;dr • CS50 at cs50.edx.org • CS50 IDE at cs50.io
• submit50 at github.com/cs50/submit50 • check50 at github.com/cs50/check50 • Slides at cs50.ly/universe17
Building CS50 on GitHub David J. Malan
[email protected]
slides at
cs50.ly/universe17