| Introduction to Programs Data Types and Variables Writing a basic program. Basics of data types, variables and conditional statements | Python Lists Understanding the basics of lists in Python |
| For Loops in Python Basics of for loops in Python | While Loops in Python Seeing that a while loop can do the same thing as a for loop |
| Fun with Strings Experimenting and seeing what we can do with strings | Writing a Simple Factorial Program(Python 2) Writing a simple factorial program with a "for" loop |
| Stepping Through the Factorial Program Stepping through what happens when a user inputs a particular value into our factorial program | Flowchart for the Factorial Program |
| Python 3 Not Backwards Compatible with Python 2 Understanding why the example program would not run in Python 3 and how to fix it. |
| Defining a Factorial Function | Diagramming What Happens with a Function Call Variable scope and function calls |
| Recursive Factorial Function Introduction to recursion. | Comparing Iterative and Recursive Factorial Functions |
| Exercise - Write a Fibonacci Function | Introduction to the Fibonacci Sequence and a programming challenge |
| Iterative Fibonacci Function Example One way to write a Fibonacci function iteratively | Stepping Through Iterative Fibonacci Function Understanding how the iterative Fibonacci function works for a particular example |
| Recursive Fibonacci Example Using recursion to write a fibonacci function | Stepping Through Recursive Fibonacci Function Understanding why and how the recursive Fibonacci function works |
| Exercise - Write a Sorting Function Challenge to write a Python function that can sort a list in-place | Insertion Sort Algorithm Visual description of the insertion sort algorithm |
| Insertion Sort in Python Basic implementation of insertion sort algorithm | Stepping Through Insertion Sort Function Clarifying what "break" does and stepping through the insertion sort implementation |
| Lecture 1Goals of the course; what is computation; introduction to data types, operators, and variables | Lecture 2Operators and operands; statements; branching, conditionals, and iteration |
| Lecture 3Common code patterns: iterative programs | Lecture 4Decomposition and abstraction through functions; introduction to recursion |
| Lecture 5Floating point numbers, successive refinement, finding roots | Lecture 6 Bisection methods, Newton/Raphson, introduction to lists |
| Lecture 7Lists and mutability, dictionaries, pseudocode, introduction to efficiency | Lecture 8Complexity; log, linear, quadratic, exponential algorithms |
| Lecture 9: Binary search, bubble and selection sorts | Lecture 10: Divide and conquer methods, merge sort, exceptions |
| Lecture 11: Testing and debugging | Lecture 12: More about debugging, knapsack problem, introduction to dynamic programming |
| Lecture 13: Dynamic programming: overlapping subproblems, optimal substructure | Lecture 14: Analysis of knapsack problem, introduction to object-oriented programming |
| Lecture 15: Abstract data types, classes and methods | Lecture 16: Encapsulation, inheritance, shadowing |
| Lecture 17: Computational models: random walk simulation | Lecture 18: Presenting simulation results, Pylab, plotting |
| Lecture 19: Biased random walks, distributions | Lecture 20: Monte Carlo simulations, estimating pi |
| Lecture 21: Validating simulation results, curve fitting, linear regression | Lecture 22: Normal, uniform, and exponential distributions; misuse of statistics |
| Lecture 23: Stock market simulation | Lecture 24: Course overview; what do computer scientists do? |
Free Java Programming Course from UCBerkeley.
Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language.
| Lecture 1 Course Overview | Lecture 2 Using Objects |
| Lecture 3 Defining Classes | Lecture 4 Types and Conditionals |
| Lecture 5 Iteration and Arrays I | Lecture 6 Iteration and Arrays II |
| Lecture 7 Linked Lists I | Lecture 8 Linked Lists II |
| Lecture 9 Stack Frames | Lecture 10 Testing |
| Lecture 11 Inheritances | Lecture 12 Abstract Classes |
| Lecture 13 Java Packages | Lecture 14 Exceptions |
| Lecture 15 More Java | Lecture 16 Game Trees |
| Lecture 17 Encapsulation | Lecture 18 Encapsulated Lists |
| Lecture 19 Asymptotic Analysis | Lecture 20 Algorithm Analysis |
| Lecture 21 Hash Tables | Lecture 22 Stacks and Queues |
| Lecture 23 Trees and Traversals | Lecture 24 Priority Queues |
| Lecture 25 Binary Search Trees | Lecture 26 Balanced Search Trees |
| Lecture 27 Graphs | Lecture 28 Weighted Graphs |
| Lecture 29 Sorting I | Lecture 30 Sorting II |
| Lecture 31 Disjoint Sets | Lecture 32 Sorting III |
| Lecture 33 Sorting V | Lecture 34 Splay Trees |
| Lecture 35 Amortized Analysis | Lecture 36 Randomized Analysis |
| Lecture 37 Expression Parsing | Lecture 38 Garbage Collection |
| Lecture 39 Augmenting Data Structures |
A Free Java Programming Course from Stanford.
Programming Methodology (CS106A) is an Introduction to the
engineering of computer applications emphasizing modern software
engineering principles: object-oriented design, decomposition,
encapsulation, abstraction, and testing. Uses the Java programming
language. Emphasis is on good programming style and the built-in
facilities of the Java language.
| Lecture 1 Course Overview & Computer Programming | Lecture 2 Introducing Karel and the commands |
| Lecture 3 Karel ֠Common errors, comments, and advanced instructions | Lecture 4 History of computing and introduces programming in Java |
| Lecture 5 Graphics, objects, classes, variables, and values pertaining to Java | Lecture 6 Expressions, variables, and values, conditions, scopes, if statements, and different loops |
| Lecture 7 Loops, function, methods, and returning | Lecture 8 More details on methods and functions |
| Lecture 9 Strings, Classes and how to combine the previous topics and lectures together | Lecture 10 Classes, constructors, instance variables, setters, strings, extending, interface, labels, and GArcs |
| Lecture 11 GObjects, GImage, Gcompound, and Gpolygons. How to incorporate the mouse and keyboard into the graphics | Lecture 12 Enumeration |
| Lecture 13 String processing and characters | Lecture 14 Memory and what happens to a computer internally when programming |
| Lecture 15 Pointers and memory, reading files, creating files, and over writing files | Lecture 16 Arrays |
| Lecture 17 Arrays and array lists | Lecture 18 Arrays and Debugging |
| Lecture 19 Interfaces | Lecture 20 Graphical User Interface |
| Lecture 21: Interactions | Lecture 22: Programming Methodology (Stanford) |
| Lecture 23: Searching and sorting | Lecture 24 How online music companies sort and classify their music |
| Lecture 25 Programming Methodology (Stanford) | Lecture 26 Programming Methodology (Stanford) |
| Lecture 27 Programming Methodology (Stanford) | Lecture 28 Programming Methodology (Stanford) |
Rotate to landscape screen format on a mobile phone or small tablet to use the Mathway widget, a free math problem solver that answers your questions with step-by-step explanations.
We welcome your feedback, comments and questions about this site or page. Please submit your feedback or enquiries via our Feedback page.