CSci 1211 Introduction to Problem Solving with Java.

[Home] [Syllabus] [Assignments] [Resources]

Syllabus

The syllabus below is somewhat approximate. Dates, topics, assigned reading, and problem set due dates are subject to change. All changes in assigned reading and due dates will be announced in class or by e-mail. It is your responsibility to check your UMM e-mail regularly (at least once a day). If you use another e-mail account instead of UMM, please arrange for forwarding of e-mail.

While I will do my best to update the web site according to changes, it is a student's responsibility to keep track of the problem set due dates and reading assignments. If you are not sure about due dates, please don't hesitate to ask.

Both the midterm and the final exams are open book, open notes.

Note that the date for the midterm exam is set and will not change. If you have a conflict with this date, please let me know right away.

All reading is from Stephen J. Chapman "Java for Engineers and Scientists ", Second Edition, unless specified otherwise.

Course topics and dates

Monday Wednesday Friday
Week 1: January 12 -- January 16
Introduction. Computer programs, compilation and interpretation.
Reading: Ch. 1.
Java applets and applications. Syntax of a program. Data representation in a computer, numbers, expressions. Print statements, displaying images. Compiling and running simple Java programs (lab).
Problem set 1 posted: modifying simple Java programs. Due Friday, January 23rd
Week 2: January 19 -- January 23
Martin Luther King Jr Holiday -- no class Java types, variable declarations, assignment statements.
Reading: Ch. 2 except 2.3, 2.7, 2.8.2.
Arithmetic expressions. Reading data in a Java application. Lab on reading data.
Problem set 1 due
Problem set 2 posted: arithmetic calculations in Java. Due Friday, January 30th.
Week 3: January 26 -- January 30
Java classes, objects, methods. Void methods and those returning a value. Creating objects, using methods. Passing parameters to methods.
Reading: 2.3, Ch. 8 (up to 8.4 only).
Java APIs and libraries. Java classes String, StringBuffer, and Date. Data representation in computer memory. Lab on using pre-defined Java classes.
Problem set 2 due
Problem set 3 posted: working with pre-defined Java classes. Due Friday, Feb. 6th
Week 4: Feb. 2 -- Feb. 6
Relational operators. Boolean type, boolean expressions. If/else statement.
Reading: 2.2.3, Ch. 3.
Examples of if/else statements. Scope of variables in inline blocks. Switch statement. Lab on if/else statements.
Problem set 3 due
Problem set 4 posted: if/else statements. Due Friday, Feb. 13th.
Week 5: Feb. 9 -- Feb. 13
Loops.
Reading: Ch. 4.
Examples of loops, nested loops. Debugging a program with infinite loops. Lab on loops.
Problem set 4 due
Problem set 5 posted: loops. Due Friday, Feb. 20th.
Week 6: Feb. 16 -- Feb. 20
Arrays. Array representation.
Reading: Ch. 5 (up to 5.4 only), lecture notes on vectors.
More examples of arrays. Passing arrays to procedures and methods. Vectors.
Problem set 5 due
Problem set 6 posted: arrays and vectors. Due Friday, Feb. 27th.
Week 7: Feb. 23 -- Feb. 27
Structure of a class. Defining your own classes, writing methods and procedures.
Reading: Ch. 6, 7 (up to 7.5).
More on methods; recursion. Lab on writing methods.
Problem set 6 due
Problem set 7 posted: writing your own methods and procedures; recursion. Due Friday, March 19th.
Week 8: March 1 -- March 5
Review for the midterm exam. Midterm exam. Covers material up to Friday, Feb. 27th. static variables and methods. Examples.
Reading: 7.11.
March 8 -- March 12: SPRING BREAK, NO CLASSES
Week 9: March 15 -- March 19
Inheritance. Access modifiers (private, protected, public). Method overwriting.
Reading: Ch. 7.6, 7.7, Ch. 9.
Interfaces. Polymorphism. Generic programming. Vectors revisited. Typecasting, dynamic dispatch. Type wrappers for primitive types.
Problem set 7 due
Problem set 8 posted: inheritance, use of vectors. Due Friday, March 26th.
Week 10: March 22 -- March 26
More on Java pre-defined classes: Java graphics. Example: displaying a drawing on an applet.
Reading: Ch. 12.
More on understanding APIs: drawing shapes and displaying text. Lab on Java graphics. Graphical User Interfaces (GUI). Java Swing package.
Reading: Ch. 13.
Week 11: March 29 -- April 2
Stages of software development. Project overview.
Two-dimensional arrays.
Reading: Ch. 11.
Problem set 8 due
Problem set 9 posted: Project, part 1; Java graphics. Due Friday, April 9th.
More on project components: Java events, event handlers. More on GUIs, event handlers.
Week 12: April 5 -- April 9
Overview of other GUI components.
Reading: Ch. 14.
Project questions and answers. Program control: error handling, Java exceptions.
Reading: Ch. 10.1
Problem set 9 due
Problem set 10 posted: Project, part 2; Java exceptions. Due Friday, April 16th.
Week 13: April 12 -- April 16
File I/O.
Reading: Ch. 2.8, 5.5, 10.2, 16.1-16.4; 8.6.
Project questions and answers. Formatting input data; String tokenizers.
Problem set 10 due
Problem set 11 posted: Project, part 3; File I/O. Due Monday, April 26th.
Week 14: April 19 -- April 23
"Packaging" a software product; Applets on the Web.
Reading: Ch. 15, 7.9.
Creating your own packages. jar utility.
Week 15: April 26 -- April 30
Memory allocation and management. Java garbage collection, finalizers..
Reading: 7.10.
Problem set 11 due
Comparison of Java with C, C++. Review and wrap-up.
Final exam: Friday, May 7th, 4-6pm