►
Fundamentals II
Introduction to Class-
based Program Design
General
Texts
Lectures
Syllabus
Lab Materials
Assignments
Pair Programming Overview
Code style
Documentation
▼
Lectures
Lecture 1:
Data Definitions in Java
Lecture 2:
Data Definitions:
Unions
Lecture 3:
Methods for simple classes
Lecture 4:
Methods for unions
Lecture 5:
Methods for self-
referential lists
Lecture 6:
Accumulator methods
Lecture 7:
Accumulator methods, continued
Lecture 8:
Practice Design
Lecture 9:
Abstract classes and inheritance
Lecture 10:
Customizing constructors for correctness and convenience
Lecture 11:
Defining sameness for complex data, part 1
Lecture 12:
Defining sameness for complex data, part 2
Lecture 13:
Abstracting over behavior
Lecture 14:
Abstractions over more than one argument
Lecture 15:
Abstracting over types
Lecture 16:
Visitors
Lecture 17:
Mutation
Lecture 18:
Mutation inside structures
Lecture 19:
Mutation, aliasing and testing
Lecture 20:
Mutable data structures
Lecture 21:
Array
Lists
Lecture 22:
Array
Lists
Lecture 23:
For-
each loops and Counted-
for loops
Lecture 24:
While loops
Lecture 25:
Iterator and Iterable
Lecture 26:
Hashing and Equality
Lecture 27:
Introduction to Big-
O
Analysis
Lecture 28:
Quicksort and Mergesort
Lecture 29:
Priority Queues and Heapsort
Lecture 30:
Breadth-
first search and Depth-
first search on graphs
Lecture 31:
Dijkstra’s Algorithm for single-
source shortest paths
Lecture 32:
Minimum Spanning Trees
Lecture 33:
Java
Script and other programming languages
Lecture 34:
Implementing Objects
Lecture 35:
Dynamic Programming
Lecture 36:
Wrap-
up
8.5
contents
← prev
up
next →
Lecture 33:
JavaScript and other programming languages
Other styles of object-oriented programming
contents
← prev
up
next →