Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building CS50 on GitHub
Search
CS50
October 11, 2017
Education
1
650
Building CS50 on GitHub
CS50
October 11, 2017
Tweet
Share
More Decks by CS50
See All by CS50
Scaling CS50: Building Learning Communities around the World
cs50
1
67
Technology We Can’t Live Without!, revisited
cs50
0
220
A Web-Based IDE for Teaching with Any Language 2017
cs50
0
44
A Web-Based IDE for Teaching with Any Language 2016
cs50
0
41
Things We Do That You Can Do Too
cs50
1
790
Birds of a Feather Who'd Like to Share Software Together
cs50
2
270
CS50 Educator Workshop June 2017
cs50
2
270
This is CS50x.ni
cs50
1
140
CS50 a Escala
cs50
1
110
Other Decks in Education
See All in Education
KBS新事業創造体験2025_科目説明会
yasuchikawakayama
0
160
10分で学ぶ すてきなモナド
soukouki
1
140
ロータリー国際大会について~国際大会に参加しよう~:古賀 真由美 会員(2720 Japan O.K. ロータリーEクラブ・(有)誠邦産業 取締役)
2720japanoke
1
770
AIは若者の成長機会を奪うのか?
frievea
0
180
外国籍エンジニアの挑戦・新卒半年後、気づきと成長の物語
hypebeans
0
730
CSS3 and Responsive Web Design - Lecture 5 - Web Technologies (1019888BNR)
signer
PRO
1
3.1k
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
PRO
4
18k
滑空スポーツ講習会2025(実技講習)EMFT学科講習資料/JSA EMFT 2025
jsaseminar
0
220
学習指導要領と解説に基づく学習内容の構造化の試み / Course of study Commentary LOD JAET 2025
masao
0
120
Security, Privacy and Trust - Lecture 11 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
IHLヘルスケアリーダーシップ研究会17期説明資料
ihlhealthcareleadership
0
830
✅ レポート採点基準 / How Your Reports Are Assessed
yasslab
PRO
0
270
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Claude Code のすすめ
schroneko
67
210k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The SEO Collaboration Effect
kristinabergwall1
0
350
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
56
50k
The Curse of the Amulet
leimatthew05
1
8.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
88
The agentic SEO stack - context over prompts
schlessera
0
630
How STYLIGHT went responsive
nonsquared
100
6k
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