Stanford CS106A: Programming Methodology
Stanford's gateway course to computer science, teaching the fundamentals of programming and software engineering.
About This Course
CS106A is Stanford's introductory programming course, designed for students with no prior experience. The course emphasizes good software engineering practices, decomposition, and readable code from day one.
Originally taught in Java, CS106A focuses on problem-solving methodology rather than language-specific tricks. Students build progressively more complex programs, culminating in a final project.
What You Will Learn
- Programming Fundamentals: Variables, control flow, loops, and functions
- Object-Oriented Design: Classes, objects, inheritance, and polymorphism
- Problem Decomposition: Breaking complex problems into manageable pieces
- Software Engineering: Writing clean, readable, maintainable code
- Data Structures: Arrays, ArrayLists, HashMaps, and basic collections
- Graphics and Interactivity: Building visual programs with the ACM library
Prerequisites
None. Designed for complete beginners.
External Links
Course content belongs to Stanford University.