Try to work out solutions to the assigned problems, to prove that you have understood the material; you can often test/verify/explore your solutions on the computer. Here understanding means "be able to use the information operationally to write programs that solve problems". If you have difficultly with a problem, it indicates that you should probably go back over the related reading -or certainly ask a question about it on the MessageBoard Forums. One of the few advantages of a big class like this is the potental for peer-teaching.
Because these problems are not graded, feel free to discuss them, but don't give away the answers for those still working on them: working on exercises like these builds your programming muscles. Students will be required to solve similar problems on weekly take-home quizzes, on which collaboration is NOT allowed. Don't cheat yourself in this aspect of the course.
Someone once said, "Distance education begins in the 8th row of the classroom": once you are that far back, it is easy to stop paying attention. So, I recommend that students sit in the rows that are at the front of the room. I once had the following comment on my final teaching evaluation, "Write bigger: I could never read what you wrote on the whiteboard from my seat in the back of the class." I have many deficiencies as an instructor; students should help themselves get what they need out of this class -like sitting near the front
Ringing cell phones disrupt my lectures. Unless you are responsible for someone's life, your cell phone should be turned off. Otherwise, you should set it to operate in some silent mode (as mine will be set); if it rings silently and you decide you must answer the call, please leave the class, with a minimum of disruption to the rest of the students. If your cell phone rings audibly in class, you will be asked to leave class for that day. Finally, if you know that you must leave early, please sit by a door, so that you can exit quietly and without disturbing the class.
Overall, please strive to be a considerate class member, both to me and to your fellow students; doing so is especially important in large classes.
Week | Activity | Date | Topic (read for this date/do problems) | Problems |
---|---|---|---|---|
#1 | Lecture | 3/31 |
Course Overview (all) | 1,3,5,9 |
Lab | 4/1 | Download and Install Python, Java, and Eclipse. Work through Python Programming in the Eclipse IDE |   | |
Lecture | 4/2 | EBNF: A Notation to Describe Syntax | 1,2,6,7 | |
Lab | 4/3 | Start Program #0: Computing Infrastructure | ||
Lecture | 4/4 | Tokens and Python's Lexical Structure | 2,3,6,7 |
|
#2 | Lecture | 4/7 | Defining Names in and from Modules | 1,2,4,5 |
Lab | 4/8 | Work on Program #0: Computing Infrastructure | ||
Lecture | 4/9 | Reading Headers and Calling Functions | 1,2 | |
Lab | 4/10 | Start Program #1: Simple Scripts | ||
Lecture | 4/11 | Python Operators (5.1-5.2) | tba | |
#3 | Lecture | 4/14 | Expressions | 1, 3, 5, 6, 8 |
Lab | 4/15 | Work on Program #1: Simple Scripts | ||
  | Lecture | 4/16 | if Statements for decisions (Boxing Diagram) | 2,8,10,11,12 |
Lab | 4/17 | Work on Program #1: Simple Scripts | ||
  | Lecture | 4/18 | Iteration and for loops (strings, range/irange, open) (Boxing Diagram) forproject | tba |
#4 | Lecture | 4/21 | Iteration and while loops | tba |
Lab | 4/22 | Start Program #2: The Debug Perspective in Eclipse | ||
Lecture | 4/23 | Exceptions and the try/except statement | tba | |
Lab | 4/24 | Start Program #3: Intermediate Scripts | ||
  | Lecture | 4/25 |
Program Construction and Debugging Program Simplification |
tba |
#5 | Lecture | 4/28 | Writing Functions and Modules I | tba |
Lab | 4/29 | Work on Program #3: Intermediate Scripts | ||
Lecture | 4/30 |
Writing Functions and Modules II
functionproject
Testing Functions driverbatch |
tba | |
Lab | 5/1 | Start Program #4: Functions and Control Structures | ||
Lecture | 5/2 | Useful functions and Lambdas (little functions) | tba | |
#6 | Lecture | 5/5 | Lists Picturing Lists | tba |
Lab | 5/6 | Work on Program #4: Functions and Control Structures | ||
Lecture | 5/7 | List Processing 1 listproject | tba | |
Lab | 5/8 | Midterm Written Exam (covering Lectures 3/31-5/2) | ||
Lecture | 5/9 | List Processing 2 (Comprehensions) | tba | |
#7 | Lecture | 5/12 | Tuples and Named Tuples (with List/Tuple Comprehensions) | tba |
Lab | 5/13 | Start Program #5: List Processing | ||
Lecture | 5/14 | Dictionaries | tba | |
Lab | 5/15 | Work on Program #5: List Processing | ||
Lecture | 5/16 | Dictionary Processing 1 dictionaryproject |   | |
#8 | Lecture | 5/19 | Dictionary Processing (review) | |
Lab | 5/20 | Work on Program #5: List Processing | ||
Lecture | 5/21 | Sets and Frozen Sets updateddictionaryproject | tba | |
Lab | 5/22 | Start Program #6: Dictionary and Set Processing | ||
Lecture | 5/23 | Using Classes | tba | |
#9 | Lecture | 5/26 | Holiday (No Classes): Memorial Day | |
Lab | 5/27 | Work on Program #6: Dictionary and Set Processing | ||
Lecture | 5/28 | Writing Classes Class Object Diagram A simple class and script: Predicate_List | tba | |
Lab | 5/29 | Work On Program #6: Dictionary and Set Processing | ||
Lecture | 5/30 | Writing Classes (continued) | tba | |
#10 | Lecture | 6/2 | Functions as Results | tba |
Lab | 6/3 | Work On Program #6: Dictionary and Set Processing | ||
Lecture | 6/4 | Functions as Data: map, filter, reduce, ... | ||
Lab | 6/5 | In-Lab Programming Exam: From simple scripts to Dictionaries/Sets | ||
Lecture | 6/6 | Class Wrapup and Quick Review for Final Exam | ||
Finals Exam Week | 6/10 | We will have a comprehensive 2-hour written
final exam on Tuesday, June 10th, 1:30pm - 3:30pm in our lecture hall (see the Final Exam Schedule). I will send email when I have computed/entered final grades, which are due to UCI by Thursday, June 19 at 5pm. |