Harvard - digshake/CSE131-Redesign GitHub Wiki
Audience(s)? Massive - CS50, CS50-E, CS50 edx, CS 50 for lawyers, CS 50 for MBAs CS50 - for everyone, with or without programming experience (2/3rds have not have programming)
Learning Outcome(s)? Among this course’s objectives are that you learn how to:
- think more methodically;
- program procedurally;
- represent and process information;
- communicate succinctly and precisely;
- solve problems efficiently;
- recognize patterns among problems;
- decompose problems into parts and compose solutions thereto;
- operate at multiple levels of abstraction;
- separate design from implementation details;
- infer from first principles how systems work;
- assess the correctness, design, and style of code;
- teach yourself new languages;
- identify threats to privacy and security;
- read documentation, drawing conclusions from specifications;
- test solutions to problems, find faults, and identify corner cases;
- describe symptoms of problems precisely and ask questions clearly; and
- identify and quantify trade-offs among resources, particularly time and space.
Programming Language(s)? "More than teach you how to program in one language, this course teaches you how to program fundamentally and how to teach yourself new languages ultimately" C (functions, variables, loops, conditionals, memory) Python SQL, HTML, CSS, Javascript
Course Structure Generally graded pass/fail except when a letter grade is needed Spring and summer - lecture videos, no live lecture Fall - live lecture by instructor 4 sections, 2 hour 45 minutes, led by head TA or teaching fellow (include slides, peer instruction questions, and exercises)
11 lectures 10 problem sets (60%) 1 exam (20%) 1 final project (10%) attendance for lab section(10%)
Teachability - Division of labor Seems to be largely student staff led. Content is all organized and online (course is offered in many different forms on edX platform) Instructor lectures in the fall, recordings used in Spring and Summer (common theme is resources are focused on the Fall semester, interesting idea..)
Single instructor - Most effort to content creation and distribution.
Undergrad Community Fall section - career fair, hackathon, lunches, puzzle day Spring, summer - not as much. Students are meant to take the class in the fall
TA Involvement Head-TAs, teaching fellows run/lead sections. Weekly office hours (Wednesday - Sunday) - Students must sign up for a office hour slot (would help with planning, scheduling, etc.) Open office hours on Sundays.
My takeaways: Some interesting ideas to help with course management and instructor workload - All extra resources, events, are focused in one semester. Spring/Summer teaching load is minimal (record in the Fall. repeat in Spring and Summer exact same with recorded lectures). Planning/revamp cycle is now fixed to every Fall.
TAs/Teaching fellows run sections. Not sure of instructor involvement
Big effort into community building activities (fall only) - career fair, hackathon, cs50 lunches, cs50 puzzle day
Built to be taught online (edX). So substantial effort in scaling tools and such.
Basics in C, but introduces other languages afterwards (python, javascript, html, css, sql)