CSCI-161B: Introduction to Computer Science

Fall 2011

This course is an introduction to computer science and programming. It uses the programming language Java to illustrate concepts in computer science, and the BlueJ interactive Java environment to reduce the complexity of program development. The course emphasizes the use of the computer as a problem solving tool and the development of good programming style. CSCI 161 is the introductory course for students planning to major or minor in computer science. No previous programming experience is expected or required -- we will start at the very beginning. As a result, some of the initial material may be review for students with previous programming experience. See me if you're in this category, and we can find ways to extend or modify assignments to keep you challenged.

Contact Info

Instructor: David Akers
Lectures: Mon, Tues, Thurs, Fri 10:00-10:50 (TH 399)
Labs: Most Thursdays, we will work on the computers in TH 409.
Feel free to bring your own laptop if you have one.
Phone: 879-3126
Office: Thompson 600 (tower)
Office Hours: Mon 3:00-3:50 pm, Tues/Thurs/Fri 2:00-2:50 pm, and by appt.
Tutors: schedule




Week Topic Reading Lab Assignment
8/29 Intro & Overview; BlueJ; Objects, Classes, Methods For Tuesday: Sections 1.1 through 1.11
For Friday: Sections 2.1 through 2.5
Lab 1 Asmt 1 (solns)
9/5 Class Definitions, Variables, Assignment
No Class Monday (Labor Day)
For Tuesday: Sections 2.11 through 2.15
For Friday: Section 2.18
Lab 2 (solns)  
9/12 Output, Multiple Classes, Interaction For Monday: Review Section 2.18, read Section 1.12
For Tuesday: Sections 2.6 through 2.10, Sections 2.16 and 2.17
For Friday: Sections 1.13, 1.14, and Sections 3.1-3.4
Lab 3 (solns) Asmt 2 (solns)

Object diagrams

Lab Friday!

For Monday: Section 3.5, and Sections 3.8 through 3.11
For Tuesday: Sections 3.6 and 3.7
For Thursday: Sections 3.14 and 3.15, Sections 4.1 through 4.7
Lab 4 (solns) Asmt 3 (solns)
9/26 Collections, loops For Monday: Section 4.8 (intro), 4.8.1
For Tuesday: Section 4.8.2
For Friday: Review Section 4.8.2
Lab 5 (solns) Asmt 4 (solns)

More loops
Exam Thursday — in class (old exam) (old solns) (new solns)

For Monday: Sections 4.9, 4.10, 4.11, and 4.13
For Tuesday: No new reading
For Friday: Section 3.13, Section 5.4
10/10 Random numbers N/A Lab 6 (solns) Asmt 5 (solns)
10/17 Sorting
No class Monday or Tuesday (Fall Break)
For Thursday: Sections 5.1 through 5.3
For Friday: Section 5.5
  Oracle (Extra Credit)
10/24 More sorting, searching For Monday, Tuesday: No new reading
For Friday: Section 5.11
Lab 7 (solns) Asmt 6 (solns)
10/31 static, Maps and Sets For Monday: Review Section 5.11, read Section 5.6
For Tuesday: Sections 5.7 through 5.10
For Friday: Sections 5.12 through 5.14
Lab 8 (solns) Asmt 7 (solns)
11/7 Testing, Debugging, Design
Exam Thursday — in class (old exam) (solns) (new solns)
For Monday: Sections 6.1 through 6.3
For Tuesday: No new reading
For Friday: Section 6.4, Sections 6.9 through 6.11
  Writing Asmt
11/14 Inheritance

For Monday: No new reading
For Tuesday: Sections 8.1 and 8.2
For Thursday: Sections 8.3, 8.4, 8.5, and 8.6
For Friday: Sections 8.8 through 8.11

  Asmt 8 (solns)
11/21 More inheritance

Lab Monday!
No class Thursday or Friday (Thanksgiving)

For Tuesday: Section 7.15
Lab 9 (solns)  

Polymorphism, exceptions

Lab Friday!

For Monday: No new reading
For Tuesday: Section 8.7, Sections 9.1 through 9.7
For Thursday: No new reading
Lab 10 (solns) Asmt 9 (solns)
12/5 Final thoughts For Monday: Sections 12.4, 12.5.1, 12.5.2    
12/12 Final exam week
Dec 14 (Wednesday) 8:00am-10:00am