Stanford CS106A: Programming Methodology
Contents · 56
01-Welcome to CS106AIntroduces Stanford’s CS 106A, its audience and prerequisites, course logistics, recording and microphone guidelines, and the instructor and teaching staff.
- 01-Welcome to CS106AIntroduces CS106A, its prerequisites, teaching staff, course goals, and recording and microphone policies.
02-Handout InformationCovers CS106A logistics, setup and assignment deadlines, then introduces Karel’s world and basic commands for moving and turning.
- 02-Handout InformationIntroduces Karel’s world and basic commands, with course logistics, assignment deadlines, section signups, readings, and submission instructions.
- 03-Karel and JavaCommon Karel errors and how to handle them, followed by examples of programming with Karel.
03-Karel and JavaExplains Karel programming errors, including infinite loops and off-by-one bugs.
- 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.
04-The History of ComputingEarly computing history from the abacus and Babbage’s engines to Ada Lovelace and early electromechanical computers.
05-VariablesJava variables, naming rules, descriptive names, and primitive types such as integers and doubles.
- 05-VariablesIntroduces Java variables, their names, types, and values, alongside course announcements and student support resources.
06-readInt() and readDouble()User input with readin and readouble, arithmetic operators, integer versus floating-point division, and operator precedence with parentheses.
- 06-readInt() and readDouble()Introduces readInt() and readDouble() for prompting users and storing integer or decimal input.
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.
- 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.
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.
- 08-Information HidingExplains information hiding in methods: clear interfaces let callers use functionality without knowing implementation details.
09-StringsIntroduces Java strings, including declarations, quoted text, concatenation, and reading a line of user input.
- 09-StringsIntroduces Java Strings and begins explaining how to write custom classes.
10-Importance of Private VariablesReviews Java classes using constructors, instance and class variables, access modifiers, getters and setters, encapsulation, and the `toString` method.
- 10-Importance of Private VariablesReviews Java classes, constructors, and instance versus class variables, then introduces graphics programming and the Breakout assignment.
11-The GImage ClassIntroduces GImage for loading and resizing image files, then explains GPolygon vertices and reference points.
- 11-The GImage ClassExplains loading and positioning image files with GImage, including supported formats and where project files are searched.
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.
- 12-EnumerationIntroduces integer-based enumerations in Java, using constants to represent categories such as college years and discussing input validation and displaying names.
13-String ProcessingCounting uppercase characters in strings using loops, `charAt`, and Java’s `Character` class.
- 13-String ProcessingCovers midterm scheduling and exam policies, then continues instruction on strings and characters.
14-MemoryExplains computer memory fundamentals, including bits, bytes, Java integer storage, RAM, and binary-based storage units.
- 14-MemoryAnnouncements on Assignment 4 Hangman, practice midterms, exam logistics, syllabus changes, and the start of arrays.
15-Pointer RecapExplains heap and stack memory, object references, pointer assignment, and null dereferences.
- 15-Pointer RecapReviews stack and heap memory, pointers, and object references, then introduces arrays.
16-ArrayIntroduces Java arrays, including declaration, creation, indexing, element access, and default initialization.
- 16-ArrayIntroduces arrays as ordered, homogeneous collections for storing many values of one type, and explains array declaration and allocation.
17-Multi-dimensional ArraysJava multidimensional arrays as arrays of arrays, including matrix creation, row and element indexing, and accessing rows versus columns.
- 17-Multi-dimensional ArraysExplains multidimensional arrays in Java, including their creation, dimensions, and indexing.
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.
- 18-A Wrap Up of Multi-dimensional ArraysMidterm results and grading, assignment 5’s array-based game, and advice on learning through writing code.
19-An InterfaceJava interfaces, how classes implement them, and how interfaces differ from class inheritance.
- 19-An InterfaceJava interfaces and the `implements` keyword, including how interfaces define shared methods across otherwise unrelated classes.
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.
- 20-GUIIntroduces a graphics programming contest, its judging and grade incentives, then shares student feedback on lectures and course evaluations.
21-Review of Interactors and ListenersJava Swing action listeners, including how to identify clicked buttons using action commands or event sources.
- 21-Review of Interactors and ListenersReviews action listeners and action events, comparing how to identify a clicked interactor by its command or source object.
22-Overview of NameSurfer - The Next AssignmentIntroduces the Name Surfer assignment, showing name popularity graphs, window resizing, and Java components and containers.
- 22-Overview of NameSurfer - The Next AssignmentIntroduces NameSurfer, an assignment that graphs name popularity across decades using census rankings.
23-Introduction to Lecture's material - SearchingSearching and sorting algorithms, including linear search and how organizing data can improve search efficiency.
- 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.
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.
- 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.
25-Defining a Social Network for Our PurposesSocial network profiles, unique names, status and images, and reciprocal friendships for the assignment.
- 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.
26-Introduction to the Standard Java LibrariesExplains how standard Java launches programs through `main`, including its modifiers, parameters, and command-line arguments.
- 26-Introduction to the Standard Java LibrariesIntroduces standard Java libraries, explaining ACM library support, Java’s main method, program startup, and JAR files.
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.
- 27-Life After CS106AFinal exam logistics, assignment 7 and course wrap-up, plus guidance on continuing to study computer science after CS106A.
28-The Graphics Contest WinnersAnnounces winners of an algorithmic fractal generator and an aesthetic tessellation-design program, with demonstrations of their interactive features.
- 28-The Graphics Contest WinnersFinal exam preparation, course evaluations, assignment logistics, and graphics contest results.