This was CS50x v1.

This was CS50x v1.

74c21d8b37d7112608738c8b8f29d50e?s=128

David J. Malan

April 30, 2013
Tweet

Transcript

  1. This was CS50x v1.

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

    8 psets, 2 exams, 1 project. • Lectures, sections, walkthroughs, shorts.
  3. • 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.
  4. • New this year were “shorts,” bite-sized videos on specific

    topics shot in a studio. • Scripted with teleprompter. • Complemented lectures, sections, and walkthroughs.
  5. None
  6. None
  7. None
  8. None
  9. • 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.
  10. None
  11. None
  12. None
  13. • CS50x students used the CS50 Appliance for psets and

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

    the course’s discussion software. • 14,000 posts on day 0 alone.
  16. None
  17. • 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.
  18. None
  19. • 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.
  20. None
  21. None
  22. • 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.
  23. 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);        }] };
  24. • CS50 Sandbox itself is API-based.

  25. CS50 Sandbox CS50 Run HTTP API CS50 Check

  26. • 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.)
  27. day 0 2:00pm: CS50x goes live 2:02pm: 500 users online

    3:00pm: 10,000 users online
  28. 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
  29. 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
  30. unique visitors

  31. unique visitors

  32. None
  33. Based on 10,905 submissions of pset0...

  34. • 20% female • 80% male

  35. • 29 years old mean • 27 years old median

    • 21 years old mode • 10 years old min • 80 years old max
  36. 56% of CS50x students had no prior background in CS

    (versus 75% in CS50).
  37. Three + 14% Two 9% One 21% Zero Prior Courses

    56%
  38. High School Bachelors Masters Other PhD Associates 0 1000 2000

    3000 4000
  39. • 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).
  40. 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
  41. • 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).
  42. 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%
  43. • For most students, "success" didn't necessarily mean a certificate.

    • For most students, "completion" wasn't necessarily the goal.
  44. 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?
  45. • 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
  46. None
  47. • 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%+)
  48. • 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.
  49. • 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.
  50. None
  51. This was CS50x v1.