Winda

Stanford CS106A: Programming Methodology

Contents · 56

  1. 01-Welcome to CS106AIntroduces Stanford’s CS 106A, its audience and prerequisites, course logistics, recording and microphone guidelines, and the instructor and teaching staff.
  2. 01-Welcome to CS106AIntroduces CS106A, its prerequisites, teaching staff, course goals, and recording and microphone policies.
  3. 02-Handout InformationCovers CS106A logistics, setup and assignment deadlines, then introduces Karel’s world and basic commands for moving and turning.
  4. 02-Handout InformationIntroduces Karel’s world and basic commands, with course logistics, assignment deadlines, section signups, readings, and submission instructions.
  5. 03-Karel and JavaCommon Karel errors and how to handle them, followed by examples of programming with Karel.
  6. 03-Karel and JavaExplains Karel programming errors, including infinite loops and off-by-one bugs.
  7. 04-The History of ComputingIntroduces the transition from Karel to Java and surveys early computing history, including the abacus and Charles Babbage’s Difference and Analytical Engines.
  8. 04-The History of ComputingEarly computing history from the abacus and Babbage’s engines to Ada Lovelace and early electromechanical computers.
  9. 05-VariablesJava variables, naming rules, descriptive names, and primitive types such as integers and doubles.
  10. 05-VariablesIntroduces Java variables, their names, types, and values, alongside course announcements and student support resources.
  11. 06-readInt() and readDouble()User input with readin and readouble, arithmetic operators, integer versus floating-point division, and operator precedence with parentheses.
  12. 06-readInt() and readDouble()Introduces readInt() and readDouble() for prompting users and storing integer or decimal input.
  13. 07-The Loop and a Half ProblemExplains Java’s explicit casting rules for lossy conversions and indefinite loops, including sentinel-controlled input and the “loop and a half” pattern.
  14. 07-The Loop and a Half ProblemCovers explicit casts, indefinite loops, sentinel-controlled input, and the “loop and a half” pattern for summing user-entered numbers.
  15. 08-Information HidingExplains methods as abstractions that hide implementation details, using input routines and a toaster analogy, and introduces methods that return values versus void methods.
  16. 08-Information HidingExplains information hiding in methods: clear interfaces let callers use functionality without knowing implementation details.
  17. 09-StringsIntroduces Java strings, including declarations, quoted text, concatenation, and reading a line of user input.
  18. 09-StringsIntroduces Java Strings and begins explaining how to write custom classes.
  19. 10-Importance of Private VariablesReviews Java classes using constructors, instance and class variables, access modifiers, getters and setters, encapsulation, and the `toString` method.
  20. 10-Importance of Private VariablesReviews Java classes, constructors, and instance versus class variables, then introduces graphics programming and the Breakout assignment.
  21. 11-The GImage ClassIntroduces GImage for loading and resizing image files, then explains GPolygon vertices and reference points.
  22. 11-The GImage ClassExplains loading and positioning image files with GImage, including supported formats and where project files are searched.
  23. 12-EnumerationUsing integer constants to represent enumerated values in Java, with a student’s college year as an example; covers input validation and converting numeric values to readable labels.
  24. 12-EnumerationIntroduces integer-based enumerations in Java, using constants to represent categories such as college years and discussing input validation and displaying names.
  25. 13-String ProcessingCounting uppercase characters in strings using loops, `charAt`, and Java’s `Character` class.
  26. 13-String ProcessingCovers midterm scheduling and exam policies, then continues instruction on strings and characters.
  27. 14-MemoryExplains computer memory fundamentals, including bits, bytes, Java integer storage, RAM, and binary-based storage units.
  28. 14-MemoryAnnouncements on Assignment 4 Hangman, practice midterms, exam logistics, syllabus changes, and the start of arrays.
  29. 15-Pointer RecapExplains heap and stack memory, object references, pointer assignment, and null dereferences.
  30. 15-Pointer RecapReviews stack and heap memory, pointers, and object references, then introduces arrays.
  31. 16-ArrayIntroduces Java arrays, including declaration, creation, indexing, element access, and default initialization.
  32. 16-ArrayIntroduces arrays as ordered, homogeneous collections for storing many values of one type, and explains array declaration and allocation.
  33. 17-Multi-dimensional ArraysJava multidimensional arrays as arrays of arrays, including matrix creation, row and element indexing, and accessing rows versus columns.
  34. 17-Multi-dimensional ArraysExplains multidimensional arrays in Java, including their creation, dimensions, and indexing.
  35. 18-A Wrap Up of Multi-dimensional ArraysExplains multidimensional arrays as arrays of arrays, including how to declare, create, initialize, and pass rows as one-dimensional arrays.
  36. 18-A Wrap Up of Multi-dimensional ArraysMidterm results and grading, assignment 5’s array-based game, and advice on learning through writing code.
  37. 19-An InterfaceJava interfaces, how classes implement them, and how interfaces differ from class inheritance.
  38. 19-An InterfaceJava interfaces and the `implements` keyword, including how interfaces define shared methods across otherwise unrelated classes.
  39. 20-GUIIntroduces graphical user interfaces and common interactors—buttons, sliders, checkboxes, radio buttons, combo boxes, and text fields—and explains the Java Swing and AWT event libraries and component hierarchy.
  40. 20-GUIIntroduces a graphics programming contest, its judging and grade incentives, then shares student feedback on lectures and course evaluations.
  41. 21-Review of Interactors and ListenersJava Swing action listeners, including how to identify clicked buttons using action commands or event sources.
  42. 21-Review of Interactors and ListenersReviews action listeners and action events, comparing how to identify a clicked interactor by its command or source object.
  43. 22-Overview of NameSurfer - The Next AssignmentIntroduces the Name Surfer assignment, showing name popularity graphs, window resizing, and Java components and containers.
  44. 22-Overview of NameSurfer - The Next AssignmentIntroduces NameSurfer, an assignment that graphs name popularity across decades using census rankings.
  45. 23-Introduction to Lecture's material - SearchingSearching and sorting algorithms, including linear search and how organizing data can improve search efficiency.
  46. 23-Introduction to Lecture's material - SearchingIntroduces searching and sorting through linear search, then motivates algorithmic efficiency by examining how the amount of work grows with the data set.
  47. 24-Principles of Good Software Engineering for Managing Large Amounts of DataDesigning large-scale data structures by identifying domain entities, their behaviors, and unique identifiers for managing data.
  48. 24-Principles of Good Software Engineering for Managing Large Amounts of DataPrinciples for modeling large datasets, identifying domain entities, and designing classes for data management.
  49. 25-Defining a Social Network for Our PurposesSocial network profiles, unique names, status and images, and reciprocal friendships for the assignment.
  50. 25-Defining a Social Network for Our PurposesDefines the social network model for the assignment, including profiles, unique names, attributes, status, images, and friend lists.
  51. 26-Introduction to the Standard Java LibrariesExplains how standard Java launches programs through `main`, including its modifiers, parameters, and command-line arguments.
  52. 26-Introduction to the Standard Java LibrariesIntroduces standard Java libraries, explaining ACM library support, Java’s main method, program startup, and JAR files.
  53. 27-Life After CS106AIntroduces post-CS 106A options, especially CS 106B, and explains computer science beyond programming through abstractions, data structures, trade-offs, and recursion.
  54. 27-Life After CS106AFinal exam logistics, assignment 7 and course wrap-up, plus guidance on continuing to study computer science after CS106A.
  55. 28-The Graphics Contest WinnersAnnounces winners of an algorithmic fractal generator and an aesthetic tessellation-design program, with demonstrations of their interactive features.
  56. 28-The Graphics Contest WinnersFinal exam preparation, course evaluations, assignment logistics, and graphics contest results.