Lecture Schedule/Notes

Informatics Core II
INF-42: Lecture A/Lab 1
Winter 2011


Course Expectations

Lectures and Labs

Learning to program is an intensive activity. We will have class every day of the week: TuTh lectures and MWF labs. Sometimes we will split our labs between a lecture and a true lab. This is especially true early in the quarter, where we must first learn enough in lecture to apply/practice in lab.

Work Before and During Lecture

I expect students to read the assigned lecture materials before class, and (attempt to) work out solutions to the assigned problems (sometimes you can test/verify your solutions on the computer). During class, I will discuss this material, mostly by answering questions on the reading(s), asking you questions about the material, and amplifying on those topics that need further discussion. Class mottos: "Those who are ashamed of asking are ashamed of learning." and "The only stupid question is the one left unasked."

I will also randomly call on students to present their solutions to selected assigned problems, and discuss them as well (please be prepared). I may also ask students to solve, either individually or in groups, other problems relating to the material; we will then compare and discuss these solutions. Thus, I expect most "lectures" to be interactive, with students participating fully.

Note that doing the reading and working on the assigned problems before class is a critical step in the learning process: students must be familiar with the material to get the maximum benefit from the class discussions and problem-solving sessions. Solving the assigned problems is especially important, as it "proves" that a student has not only read the material, but "understood" it is as well. Here understood means "has used the information operationally to 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 in class.

I will allow students to work together on these problems: to discuss them, to analyze how to approach solving them, and to collaborate on their actual solution. Such a discussion must go beyond copying another student's answer: it involves completely understanding the answer and the process whereby it was reached, which includes acquiring the ability to analyze and solve similar problems. In fact, 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.

Course Staff (Instructor, Teaching Assistant, and Lab Tutors) will be available daily (including evenings) to aid you with understanding each reading and how to solve its problems (see the Help Schedule web page for details).

Lecture Attendance and Decorum

I expect students to attend class daily, arriving on time. The announcements made at the start of class are often very important; I reserve the right to give small pop-quizzes on the readings. I expect students to neither carry on private conversations, nor use their computers to answer e-mail, surf the web, day trade stocks, or perform any other activities unrelated to this 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, please leave the class, with a minimum of disruption to the rest of the students, to answer it. 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.


Schedule, Topics, Readings, and Problems

 
Week     Activity       Date Topic (read for this date/do problems) Problems
#1 Lab #11/3 Introduction to Eclipse
Start/Discuss Program #0
 
  Lecture #11/4 Course Overview (all)
EBNF Chapter / Powerpoint
1,3,5,9
1,2,4,8; Slide #24
  Lab #21/5 Lectures Today in Lab
Tokens in Java Programs (all)
Variables and Operators (Introduction - The % Operator)
1,2,3,10,11,12
2,3
  Lecture #21/6 Variables and Operators (Relational Operators - Experiment!)
Expressions (Expressions - Pragmatics)
4,5,6
7,8,10,13,23
  Lab #31/7 Discuss/Start Program #1  
#2 Lab #41/10 Work on Program #1  
  Lecture #31/11 Simple Statements: Declaration, Expression, and Block (Introduction - Boxing Statements)
Simple Control Structures: Decision and Looping (if Statement - More Boxing)
Advanced Control Structures: Exceptions (try/catch - File Reading)
1,2,5,6,7
11,12,18,19,26,31
38,39
  Lab #51/12 Basics of the Eclipse Debugger
Work on Program #1
Discuss/Start Program #2
Page 11 Problems
 
  Lecture #41/13 Program Construction and Debugging (all)
More Java (all)
Coding Style (all)
Simplification (all)
none
1,3-6
1,2
1-5
  Lab #61/14 Work on Program #2  
#3 Lab #71/17 Holiday (No Classes): Martin Luther King's Birthday  
  Lecture #51/18 Classes and Objects: Fundamentals (Introduction - == vs equals)
Reading/Using Classes (Class Terminology - Field Members)
More Useful Classes (OOP Summary - Other Useful Classes)
1,2,3
5,6
7
  Lab #81/19 Work on Program #2
Discuss/Start Program #3
 
  Lecture #61/20 A File I/O Class (Java File I/O - Buffering)
Writing static Methods (Introduction - Method Design)
Writing static Methods in Classes (Defining Classes: EBNF -Eclipse IDE)
9,11,12
2,3,4,5,6,8
none
  Lab #91/21 Work On Program #3  
#4 Lab #101/24 Work on Program #3  
  Lecture #71/25 Writing Classes (Classes with Objects - Methods)
Writing Classes (continued) (Special Methods - Class Summary)
21-24
none
  Lab #111/26 Work on Program #3
Discuss/Start Program #4
 
  Lecture #81/27 The 1-d Array Class (Introduction - Modeling Data)
The Object Class (Wrapper Classes - Reference Casting)
Simple Collections via Arrays (Collection Classes - Doubling Performance)
1,2,3,6,8
none
9-13
  Lab #121/28 Work On Program #4  
#5 Lab #131/31 Work on Program #4  
  Lecture #92/1 Model Classes in the MVC Pattern (all)
Interfaces (all)
Analysis of Algorithms (big-O notation)
1,2,4,5,7
2,3,6,7,8,9
1-4
  Lab #142/2 Work on Program #4  
  Lecture #102/3 Inheritance in Class Hierarchies (all)
Abstract Classes (all)
1,3,4,5,6,7,10,11,12
1-3
  Lab #152/4 Programming Exam #1: Using + Writing Classes  
#6 Lab #162/7 Discuss/Start Program #5  
  Lecture #112/8 Model Classes in the MVC Pattern (all)
Interfaces (all)
Analysis of Algorithms (big-O notation)
None
2,3,6,7,8,9
None
  Lab #172/9 Work on Program #5  
  Lecture #122/10 Collection Classes: Overview, Generics, Stacks, [Priority]Queues (pgs 1-4) None
  Lab #182/11 Work on Program #5  
#7 Lab #192/14 Work on Program #5  
  Lecture #132/15 Midterm Exam (Lectures 1-11, not 10 or Analysis of Algorithms)  
  Lab #202/16 Programming Exam #2: Writing Classes + Arrays  
  Lecture #142/17 Collection Classes: Lists and Sets (pgs 5-11)
Collection Classes: Iterators (pgs 11-13)
Collection Classes: Maps (pgs 13-18)
None
  Lab #212/18 Discuss/Start Program #7  
#8 Lab #222/21 Holiday (No Classes): President's Day  
  Lecture #152/22 Inheritance in Class Hierarchies (all)
Abstract Classes (all)
None
  Lab #232/23 JUnit Testing
Work on Program #7
 
  Lecture #162/24 Abstract Classes (all)
Exceptions in Detail (all)
None
  Lab #242/25 Work on Program #7  
#9 Lab #252/28 Work on Program #7  
  Lecture #173/1 Self-Referential Classes: Linked Objects
Linked List Processing
1,2
2,3
  Lab #263/2 Discuss/Start Program #8  
  Lecture #183/3 Recursion: Fundamentals (powerpoint)
Recursion: Linked Lists
Slide 26-27 (equals)
1
  Lab# 273/4 Programming Exam #3: Using Collection Classes  
#10 Lab #283/7 Work on Program #8  
  Lecture #193/8 Trees: An Introduction
Tree Processing: Iterative and Recursive
None
  Lab #293/9 Work on Program #8  
  Lecture #203/10 Class Wrapup, Discuss Final Exam, Questionnaire None
  Lab #303/11 Work on Program #8  
Final Exams Week3/18 We will have a comprehensive 2-hour written final exam on
Tuesday, March 15th, 10:30am - 12:30pm in ICS 180 (see the
Final Exam Schedule, Winter 2011).