Upgrade to Pro — share decks privately, control downloads, hide ads and more …

This was CS50x v1.

This was CS50x v1.

David J. Malan

April 30, 2013
Tweet

Transcript

  1. • CS50x was identical to CS50 curricularly and technologically. •

    8 psets, 2 exams, 1 project. • Lectures, sections, walkthroughs, shorts.
  2. • But grading was different. • Psets were graded only

    along axes of Scope and Correctness, not Design or Style. • Exams excluded short-answer questions. • Final Project was not evaluated.
  3. • New this year were “shorts,” bite-sized videos on specific

    topics shot in a studio. • Scripted with teleprompter. • Complemented lectures, sections, and walkthroughs.
  4. • CS50x’s video UI offered: • Variable playback speed. •

    Searchable English transcriptions. • Google translations (61 languages). • In-video Q&A (multiple choice, true false, regex-based short answer). • Downloadable videos, multiple resolutions and bitrates.
  5. • CS50x students used the CS50 Appliance for psets and

    projects. • Submitted work via CS50 Submit’s CLI.
  6. • CS50x students had their own instance of CS50 Discuss,

    the course’s discussion software. • 14,000 posts on day 0 alone.
  7. • For warmup exercises, CS50x students used CS50 Run, the

    course’s web-based IDE. • Creates illusion that C code is compiled within browser. Actually compiles and executes code within CS50 Sandbox, a cloud-based back-end. • Supports interactive stdin, stdout, stderr through pipes.
  8. • Problem sets were graded by CS50 Check, the course’s

    new autograding architecture. • Also uses CS50 Sandbox as its backend. • Smileys indicate success or failure.
  9. • CS50 Check’s test scripts are written in JavaScript (but

    executed server-side) as “chains” of asynchronous method calls. • Supports behavioral testing. • Can pass stdin; pattern-match against stdout, stderr; diff file output; patch code dynamically (e.g., swap out main). • Can also run arbitrary test scripts (in secure sandbox) written in any language.
  10. module.exports  =  {        'exists':  function(check)  {  

                 return  check('hello.c  exists')                .exists('hello.c');        },        'compiles':  ['exists',  function(check)  {                return  check('hello.c  compiles')                .run('clang  -­‐o  hello  hello.c  -­‐lcs50  -­‐lm')                .exit(0);        }],        'prints':  ['compiles',  function(check)  {                return  check('prints  "hello,  world\\n"')                .run('clang  -­‐o  hello  hello.c  -­‐lcs50  -­‐lm')                .exit(0)                .run('./hello')                .stdout(/hello,  world\n/);        }],        'returns':  ['compiles',  function(check)  {                return  check('main  returns  0')                .run('clang  -­‐o  hello  hello.c  -­‐lcs50  -­‐lm')                .exit(0)                .run('./hello')                .stdout()                .exit(0);        }] };
  11. • supports any language • supports interactive and non-interactive programs

    • supports build tools (ant, make, et al.) • supports stdin, stdout, stderr • limits CPU, disk, file descriptors, RAM • restricts network access • prevents reading and writing of unsandboxed files • prevents DoS attacks (fork bombs, etc.)
  12. day n-1 150,349 students registered 100,953 students engaged * 10,905

    pset0 submissions 1,482 final project submissions 1,388 certificates awarded * watched content, asked questions, used apps, even if didn’t submit work
  13. submissions 0 2,200 4,400 6,600 8,800 11,000 pset0 pset1 pset2

    pset3 quiz0 pset4 pset5 pset6 pset7 quiz1 project 1482 2254 1572 1655 1747 2112 5259 3292 4518 6239 10905
  14. • 29 years old mean • 27 years old median

    • 21 years old mode • 10 years old min • 80 years old max
  15. • Out of the 10,905 students who submitted pset0, 10,137

    (93%) intended to do all of the work. • Out of the 150,349 CS50x students who registered, only 10,137 (7%) intended to do all of the work (else would presumably have submitted pset0).
  16. I plan to do ALL of the work I plan

    to do SOME of the work I plan to watch the videos 0 2000 4000 6000 8000 10000
  17. • Out of the 10,905 students who submitted pset0, 3,381

    (31%) took CS50x because of the prospect of a certificate. • Out of the 150,349 CS50x students who registered, only 3,381 (2%) took CS50x because of the prospect of a certificate (else would presumably have submitted pset0).
  18. I'm not particularly interested in receiving a certificate 2% A

    certificate would be nice to have, but that's not my primary goal 68% I'm taking CS50x because I want the certificate 31%
  19. • For most students, "success" didn't necessarily mean a certificate.

    • For most students, "completion" wasn't necessarily the goal.
  20. To learn about computer science To learn how to program

    To fill in some gaps in my knowledge Just for fun To pursue a new career As a precursor to another CS course As a refresher 0 2000 4000 6000 Why taking CS50x?
  21. • Among 150,349 registrants, 100,953 engaged (67%). • Among those

    100,953, 10,905 submitted pset0 (11%). • Among those 10,905, 3,381 sought certificate (31%). • Among those 3,381, 1,388 received certificate (41%). 1,388 certificates
  22. • 41%, if out of 3,381 who sought certificate. •

    13%, if out of 10,905 who submitted pset0. • 1.4%, if out of 100,953 who engaged. • 0.9%, if out of 150,349 who registered. completion rates (submission of all work and scores of 60%+)
  23. • By contrast, 703 out of 706 students (99.6%) "completed"

    CS50 on campus. • But, again, for most CS50x students, "completion" wasn't necessarily the goal.
  24. • CS50x is at x.cs50.net. • Content also at youtube.com/cs50.

    • See students saying “hello, world” at x.cs50.net/hello. • See videos of students’ final projects at expo.cs50.net.