CS100M/CIS121/EAS121:
Lecture Notes

Topics Dates Lecture Notes
& Examples
Readings
ML: Chapman
JV: Savitch

course introduction
choosing  your course
syllabus overview
introduction to programming
Tue, Jan 27
Introduction ML: Chapter 1
JV: 1.1.1-1.1.3
programming as problem solving
process of programming
algorithms and pseudocode
basic elements of MATLAB and MATLAB scripts
Thu, Jan 29 Problem Solving ML: Chapter 1, 3.1-3.2
introduction to MATLAB programming language
tokens
statements
Tue, Feb 3
Thu, Feb 5
MATLAB Tokens
Character Names
ASCII
MATLAB Statements
function to read integers
ML: 2.1-2.2, 2.5-2.6, 2.8.1, 2.13
selection
sequential vs. branching
logic and relations
selection statements: if, elseif, else, switch
Tue, Feb 10 Selection Statements
bad number guessing
better number guessing
even better number guessing
demo of switch
swap min and max
ML: 3.3-3.4, 3.6-3.7
repetition
selection vs. repetition
definite repetition with for and while
tracing loops
indefinite repetition with while
style issues of break and loops
invariants and design patterns
Thu, Feb 12
Tue, Feb 17
Repetition Statements
style recommendation summary
bad example of for
better version of MEAN
finding a max grade
one way to reprompt a user
better way to reprompt a user
number guessing
how to play music
ML: 4.1-4.2, 4.5
introduction to arrays
1-D arrays, vectors
2-D arrays, matrices
logical arrays
character and string arrays
vectorization
Thu, Feb 19
Tue, Feb 24
Arrays
extra info on transformation matrices
ML: 2.1-2.4, 4.3, 6.1-6.3, 6.6
introduction to functions
built-in functions: plotting, file I/O
scripts vs. functions
function syntax
calling and returning a value
local variables, scope, subfunctions
designing a function
multiple return values
Thu, Feb 26
Tue, Mar 2
Thu, Mar 4
Functions
General Advice
randInt
ML: 2.11, 3.5, Chap. 5, 8.1-8.4, 8.10
introduction to algorithms
searching: random, linear, binary
Thu, Mar 4
Tue, Mar 9
Searching
readInt
randIntVec
randSearch
linearSearch
binarySearch
ML: Example 5.2 (starts pg 199)
MATLAB advanced topics Tue, Mar 9 MoreMatlab
structures
cell arrays
subfunctions
function functions
recursion
ML: 7.1, 7.3
introduction to the Java language
class structure, applications, and main method
tokens and statements
user I/O, Math API
Thu, Mar 11
Tue, Mar 16
Java Tokens
Java Statements
Applications
Basics
Variables
Operators
Demo of Features
Type Promotion
More Variables
Variable Scope
More Scope
JV: Chapters 1-2
selection, repetition, methods
logic and relations in Java
if, else, switch
while, for, do-while
Thu, Mar 18
Tue, Mar 30
Java Control Flow JV: Chapter 3
methods and rudimentary program design
calling and returning
method overloading
Thu, Apr 1 Methods
example 1
example 2
example 3
example 4
JV:5.2-5.4
introduction to object oriented programming
classes and objects
overview of class structure
encapsulation, has-a relationships
fields, methods, constructors
OOP design process
Tue, Apr 4
Thu, Apr 8
OOP Intro
non-OOP example
OOP example
example of Complex numbers
better version of Complex numbers
JV: Chapters 4-5
references
references and objects
memory model
null, this
pass-by-value
static
Tue, Apr 13
Thu, Apr 18
References
References Example
Special Reference Values
Aliases
Pass By Value
More Aliases
static
more static
JV: Chapters 4-5
data structures
static: 1-D/2-D arrays, arrays in objects, arrays of objects
dynamic: ADTs, Vectors, Lists
Tue, 4/20
Thu, 4/22
Tue, 4/27
Data Structures
Ragged Array
Many Array Examples!
Vector
Person List
Friendster Example
JV: Chapter 6, 10.1, 10.2
inheritance, summary
types
inheritance of fields
inheritance of methods and overriding
class Object
applications
Thu, 4/29
Tue, 5/4
Thu, 5/6
Types Lecture
Inheritance Lectures
Demo1
Primitives
UpCast
DownCast
Interfaces
Fields
Methods1
Methods2
Methods3
Constructors
Shadowing
Object (List example)
Abstract
Interfaces
Boxes example
JV: Chapter 7