Data Structures and Advanced Programming

Introduction

This course is an introduction to computer science, with particular emphasis on software and on machines from a programmer’s point of view. In this course we covered high-level approaches to problem-solving, providing you with a variety of ways to organize solutions to programming problems: as compositions of functions, collections of objects, or sets of rules. In this course we move to a somewhat more detailed (and to some extent, more basic) level of programming. In this course we’re concerned also with engineering. An engineer, it is said, is someone who can do for a dime what any fool can do for a dollar. Much of this course will be concerned with the tradeoffs in time and memory for a variety of methods for structuring data.

Lecture
PDF Slides
Subject
1
Course Introduction
2
Developing a Simple Program
3
Mechanics of Objects
4
Pointer Manipulation
5
Arrays and Objects
6
Arrays and Objects, cont.
7
Java Library List Classes
8
Object-Oriented Mechanisms
9
Abstract Methods and Classes
10
Abstract Methods and Classes (contd.)
11
Examples of Interfaces
12
More on constructors, Exceptions
13
Loose ends: Packages, imports, access control, nested classes, super, instanceof
14
Continuation of 13
15
Integers
16
Algorithmic Analysis I
17
Continuation of 16
18
Collections overview
19
Collections overview
20
Trees
21
Trees, contd.
22
Tree representation, searching
23
Generic Programming
24
Priority queues, range queries
25
Hashing
26
Sorting I
27
Sorting II
28
Still more sorting
29
Balanced Search Structures I
30
Balanced Search Structures II
31
Pseudo-Random Sequences
32
Threads, concurrency
33
Threads, concurrency
34
PDF or printable (Webcast missing due to glitch)
Backtracking search, game trees
35
Search and game trees, contd., enumeration types
36
Graphs, Introduction
37
Graphs, more algorithms
38
Graph algorithms, contd.
39
Dynamic Programming
40
Storage Management
41
Garbage collection
42
GUIs, Java-style
43
No webcast
TA consultations only
44
Summary, Course Evals

No comments: