Archived course page. The lecture, demo and assignment files for this course were not all kept, so many of the links below no longer work. Back to Teaching

WLU Logo CS 111 (F '13), Fundamentals of Programming I (Stough)

TA Evening Office Hours:

Thursday 8-9 (Johanna & Dierdre)
Sunday 7-9 (Haley)
Monday 8-10 (Johanna)

Class discussion forum on Piazza.
Articles of interest in computing and society here.

Schedule:

Lecture Date Topics Assigned / Referenced
Assignments Due/Comments
0
F, Sep 6
  What are algorithms?
  Six fundamental concepts of programming languages.
  Quotes

  Syllabus

  General Exhaustive Python Reference
  Some useful Python tutorials - may not be in python3
  Built-in Functions 
 
  Putting python on your computer, some instructions:
   -Installing Python 3 on Windows and Mac machines: see here.
   -Unix: depends.


  Lambert textbook website (with example programs): here.
Read unofficial intro

  Read Chapters 1, 2

  Official Tutorial: here




Week 1
  Chapters 1, 2:
    -Algorithms
    -Hardware

    -Introductory Python: Data Types, Expressions



1
M, Sep 9
  Computer Hardware
  Binary Numbers
  Algorithms
 Problem Set 1
    -problemSet1.py


T, Sep 10
  Unix
  Python Basics
  Python coding: input, processing, output, string formatting (newer way)
    -littleIntro.py
    -average3.py 
    -funWithFormatting.py
  ps1 work 


2
W, Sep 11
  More Algorithms
  Python Basics: Data Types


3
F, Sep 13
  QUIZ
  Functions, writing your own
 Read Chapter 3


Week 2
  Chapter 3:
    -Control Statements (if), iteration (for, while)



4
M, Sep 16
  Control Statements
  Iteration

 Problem Set 1 due.
    -problemSet1.py

T, Sep 17
  Conditionals, if
  for, while loops: initialization, condition, body, update
 Problem Set 2
    -problemSet2.py

5
W, Sep 18
  Conditional Expressions
  Truth Table


6
F, Sep 20
  QUIZ
  Boolean Logic - wiki
  Random numbers
 Read 4.1-4
 Re-read 3.3


Week 3
  Chapter 4:
    -Strings, string operations
    -Number Systems



7
M, Sep 23
  Print formatting -  Case Study 3.3 Investment Report
  Strings, string operations

Problem Set 2 due.
    -problemSet2.py

T, Sep 24
  Input/output processing using strings
  String methods - writing our own versions
  ps3 work
    -guessGame.py
 Problem Set 3
    -problemSet3.py

8
W, Sep 25
  Number Systems

9
F, Sep 27
  QUIZ
  String processing
 Read 4.4-6


Week 4
  Chapter 4:
    -String Methods
    -Reading/Writing Text/Data Files (File I/O)



10
M, Sep 30
  File I/O
    -mary.txt
    -manywords.dic
 Practice Midterm 1
Problem Set 3 due.
    -problemSet3.py

T, Oct 1
  File I/O
    -storeItems.txt  
    -propernames.dic 
    -studentScores.txt (random names/numbers)
 

11
W, Oct 2
  managing directory structure (os module)




  Thursday evening review, 7PM, then office hour following.

Practice midterm reviewed.

F, Oct 4
  Midterm 1  Read 5.1-3


Week 5
  Chapter 5:
    -Lists, syntax/interface/functionality
    -List Comprehensions




12
M, Oct 7
  List objects, syntax, interface 



T, Oct 8
  Midterm review: distro.png
  List methods - index, remove, append, pop, and more
  Functional versus Object-oriented
  Write our own functions using lists
    -studentScores.txt (random names/numbers)
  ps4 work
    -mary.txt
 Problem Set 4
    -listMethods.py
    -stringMethods.py

13
W, Oct 9
  QUIZ
  List Comprehensions



F, Oct 11
 No Classes (reading day)
 Read Ch. 5


Week 6
  Chapter 5:
    -Dictionaries




14
M, Oct 14
  Dictionary methods (official doc)
  Build and print histograms:
    -dictMethods.py



T, Oct 15
  More on PS4
  Working with a dictionary and file IO:
    -pricing.py
    -storeItems.txt 
 Problem Set 5
    -propernames.dic
    -names.dic
Problem Set 4 due.
    -listMethods.py
    -stringMethods.py
15
W, Oct 16
  Writing our own dictionary functionality


16
F, Oct 18
  QUIZ
 
  Finish our dictionary functions



Week 7
  Chapter 6:
    -Design with Functions
    -Recursion
    -Scope
    -map/filter/reduce, anonymous (lambda) functions




17
M, Oct 21
  QUIZ
  Midterm grades
  Design With Functions
    -doctor.py
  Recursion

Problem Set 5 due.
    -soundexSolved.py

T, Oct 22
  Recursion practice
    binary search
 Practice Midterm 2

18
W, Oct 23
  Tail recursion
  Jokes: here.


19
F, Oct 25
  Practice midterm reviewed.
Practice midterm reviewed.

Week 8
  Chapter 7:
    -Graphics and Image Processing
    -Using Classes

  



M, Oct 28
  Midterm 2  Read 7.1, 7.2

20
T, Oct 29
  Graphics Systems
  Turtle Graphics - full reference here 
    -introTurtle.py 
    -ccurve.py 
 Problem Set 6 
  -graphicsFun.py 
  -additional patterns  

21
W, Oct30   Test review, midterm2Distro.png
  Graphics interaction: listeners, interupts
  ps6 work


22
F, Nov 1
  QUIZ

  Continue graphics interaction -- turtle documentation
  Koch snowflake

 Read 8.1-4


Week 9
  Chapter 8:
    -Class Design, data members/methods

    -Numerical Emulation


23
M, Nov 4
  Classes, data abstraction (rectangle, six-sided die)
  Class design
  

Problem Set 6 due.
    -graphicsFun.py

T, Nov 5   More classes
  ps7 work: Rational class
 Problem Set 7
  -rational.py  
  -rationalTester.py
  -meaning here 

24
W, Nov 6
  Numerical Emulation - more here 
  Abstraction and Encapsulation
    -bankAccount.py 
    -craps.py


25
F, Nov 8
  QUIZ

 
 Read 8.5


Week 10
  Chapter 8:
    -More class design
    -Inheritance, polymorphism




26
M, Nov 11   Inheritance 
    -people.py 
    -vector.py 



T, Nov 12   Restricted savings account
  Set operations: intersection, union, difference, xor

Problem Set 7 due.
    -rational.py
27
W, Nov 13
  QUIZ
  review
 Read Chapter 11
on Sakai

28
F, Nov 15
  Complexity Analysis
  O-notation
  Variations on the computation of Fibonacci numbers
    -fibonacciPrograms.py
  Searching
  Problem Set 8

Week 11
  Chapter 11:
    -Complexity Analysis
    -Searching
    -Sorting




29
M, Nov 18
  Guessing Game / Binary Search Rehash
  Searching - linear on unsorted, linear on sorted, binary
    -testSearch.py  
 


T, Nov 19   O(N^2) Sorts
See the lab worksheet here. Spend good time on this.


30
W, Nov 20
  O(N^2) Sorts


31
F, Nov 22
  SUPERQUIZ

  More on complexity
  Read Section 17.1
    at sakai (Resources)
QUIZ MONDAY!!!








  Thanksgiving break Nov 25-29








Week 12

  Ch 17.1. More Sorting

32
M, Dec 2
  QUIZ
  Recursive Sorting -- mergesort, quicksort 



T, Dec 3
  Recursive Sorting implementations

 
33
W, Dec 4
  Radix sort:
    -radix.py
 Practice Final
 Problem Set 8 due.
    -sortingCodes.py
    -sortingTests.py

F, Dec 6
  Practice Final Reviewed.

 Practice Final Reviewed.







  Final Exam!
  Taken starting 2PM Sat Dec 7 until 2PM Friday Dec 13