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 Forum. 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 (almost) weekly take-home quizzes, on which collaboration is NOT allowed. Don't cheat yourself in this aspect of the course.
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 charged points for interrupting the class. 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.
| Week | Activity | Date | Topic (read for this date/do problems) | Problems |
|---|---|---|---|---|
| #1 | Lecture | 4/1 |
Course Overview (all) | 1,3,5,9 |
| Lab | 4/2 | Download and Install Python, Java, and Eclipse. Work through Python Programming in the Eclipse IDE |   | |
| Lecture | 4/3 | EBNF: A Notation to Describe Syntax | 1,2,6,7 | |
| Lab | 4/4 | Start Program #0: Computing Infrastructure | ||
| Lecture | 4/5 | Tokens and Python's Lexical Structure | 2,3,6,7 |
|
| #2 | Lecture | 4/8 | Defining Names in and from Modules | 1,2,4,5 |
| Lab | 4/9 | Work on Program #0: Computing Infrastructure | ||
| Lecture | 4/10 | Reading Headers and Calling Functions | 1,2 | |
| Lab | 4/11 | Start Program #1: Simple Scripts | ||
| Lecture | 4/12 | Python Operators (5.1-5.2) | tba | |
| #3 | Lecture | 4/15 | Expressions | 1, 3, 5, 6, 8 |
| Lab | 4/16 | Work on Program #1: Simple Scripts | ||
|   | Lecture | 4/17 | if Statements for decisions (Boxing Diagram) | 2,8,10,11,12 |
| Lab | 4/18 | Work on Program #1: Simple Scripts | ||
|   | Lecture | 4/19 | Iteration and for loops (strings, range/irange, open) (Boxing Diagram) forproject | tba |
| #4 | Lecture | 4/22 | Iteration and while loops | tba |
| Lab | 4/23 | Start The Debug Perspective in Eclipse | ||
| Lecture | 4/24 | Exceptions and the try/except statement | tba | |
| Lab | 4/25 | Start Program #3: Intermediate Scripts | ||
|   | Lecture | 4/26 |
Program Construction and Debugging Program Simplification |
tba |
| #5 | Lecture | 4/29 | Writing Functions and Modules functionproject | tba |
| Lab | 4/30 | Work on Program #3: Intermediate Scripts | ||
| Lecture | 5/1 | Testing Functions | tba | |
| Lab | 5/2 | Start Program #4: Functions and Control Structures | ||
| Lecture | 5/3 | Useful functions and Lambdas (little functions) | tba | |
| #6 | Lecture | 5/6 | Lists | tba |
| Lab | 5/7 | Work on Program #4: Functions and Control Structures | ||
| Lecture | 5/8 | List Processing listproject | tba | |
| Lab | 5/9 | Midterm Written Exam (covering Lectures 4/1-5/3) | ||
| Lecture | 5/10 | Tuples and Named Tuples | tba | |
| #7 | Lecture | 5/13 | Dictionaries | tba |
| Lab | 5/14 | Start
Program #5: List Processing CANCELLED Programming Exam 1: Functions and Control Structures |
||
| Lecture | 5/15 | Dictionary Processing dictionaryproject | tba | |
| Lab | 5/14 | Work on Program #5: List Processing | ||
| Lecture | 5/17 | Sets and Frozen Sets updateddictionaryproject |   | |
| #8 | Lecture | 5/20 | Using Classes | tba |
| Lab | 5/21 | Work on Program #5: List Processing | ||
| Lecture | 5/22 | Writing Classes Class Object Diagram | tba | |
| Lab | 5/23 | Start Program #6: Dictionary and Set Processing | ||
| Lecture | 5/24 | Writing Classes (continued) | tba | |
| #9 | Lecture | 5/27 | Holiday (No Classes): Memorial Day | |
| Lab | 5/28 | Work On Program #6: Dictionary and Set Processing | ||
| Lecture | 5/29 | Functions as Data: map, filter, reduce, ... | tba | |
| Lab | 5/30 | Work On Program #6: Dictionary and Set Processing | ||
| Lecture | 5/31 | Functions as Results | tba | |
| #10 | Lecture | 6/3 | Recursive Functions | tba |
| Lab | 6/4 | Work On Program #6: Dictionary and Set Processing | ||
| Lecture | 6/5 | Efficiency | ||
| Lab | 6/6 | Programming Exam 2: From simple scripts to Dictionaries/Sets | ||
| Lecture | 6/7 | Class Wrapup and Quick Review for Final Exam | ||
| Finals Exam Week | 6/11 | We will have a comprehensive 2-hour written
final exam on Tuesday, June 11th, 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 21 at 5pm. |
||