Resources for Harvard CS50
Note: I created this page for the Fall 2016 class (section) of Harvard's CS50 course.
CS50 is Harvard’s introductory computer science course. I was a Fall 2016 Teaching Fellow for the course and made slides/resources you (and other instructors) might find helpful.
Slides, cheat sheets, & resources
Week 2 (C, arrays, functions)
Introductions, grading guidelines, introduction to C, debugging, arrays, functions, command line arguments.
- Week 2 section slides
- Week 2 cheat sheet by Doug Lloyd
Week 3 (More arrays, sorting, searching)
More arrays, debug50
, asymptotic notation (O and sigma), linear search, binary search, bubble sort, insertion sort, selection sort, merge sort, recursion.
Week 4 (File I/O, memory management, pointers)
Redirection methods, writing to / reading from files, memory management (heap and stack; dynamically allocated memory), pointers, hexadecimal, structs (accessing fields in structs).
- Week 4 section slides
- Week 4 cheat sheet by Doug Lloyd (pointers and file I/O)
- File pointers slides by CS50
- Pointers slides by CS50
- Dynamic memory allocation slides by CS50
Week 5 (Structs, linked lists, hash tables, tries)
More structs (defining structs, static vs. dynamic creation, accessing fields in structs), linked lists, hash tables, tries, stacks, queues.
- Week 5 section slides
- Tries slides by CS50 (note: see my Clarification on Structs)
- Clarification on struct syntax
- CS50 style recommendation for structs
Week 6
Mid-term review.
Week 7
CS50 coding contest.
Week 8 (Python, Flask)
Conceptual basics of Python, Python syntax, Python vs. C, basics of Flask, model/view/controller (MVC) architecture.
Week 9 (More Python, Flask, SQL)
More conceptual basics of Python, more Flask (decorators and routes; MVC in the context of Flask), SQL queries.
Week 10 (JavaScript, DOM, jQuery, AJAX)
JavaScript basics, JavaScript vs. Python vs. C, basic JavaScript syntax, basic JavaScript data structures. Document object model (DOM), interacting with the DOM, jQuery selectors, basics of AJAX, JavaScript debugging.
General information for my section
My section meets Tuesdays 4:00pm to 5:30pm in Northwest Labs B106. Note that section is optional and you're free to attend any section you'd like.
My office hours are Mondays 4:00pm to 5:00pm at CS50@HSA (67 Mt Auburn St, 4th floor). Priority is given to students in my section, although anyone taking CS50 is welcome to attend.