Class Lectures and Reading Assignments
CS 12300-01 (MW)
Programming I: Java
Fall, 2020

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information. It is a good idea for you to "play" with the example Java programs; compile them, run them, make simple changes to them and compile and run them again.

The final exam is today. The exam can be downloaded from Brightspace at 12:30 pm. Your completed exam document is due back in Brightspace at 11:00 pm this evening. The exam document is on the same page in Brightspace where you submit programming assignments. There are more detailed instructions about completing the exam on the first page of the exam document.

I will be available from 12:30 to 2:00 using the Zoom application. Please click on the following invite link if you would like to ask a question about the exam.

Here is a link to today's video lecture.

Remember that the final exam for this class will be on Monday, December 14. See the review information from Monday's class.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

According to the university's final exam schedule, the final exam for this class will be one week from today, on Monday, December 14. The final exam will begin at 12:30 p.m. and it will be administered the same way as the two midterm exams. We will not meet for class on Monday, but I will be available for a Zoom meeting during what would be class time so you can ask questions about exam problems. The exam will be due in Brightspace that evening.

Below is a summary of the final exam topics and some review/practice problems (along with the previous two midterm exam review problems).

Here is the last reading assignment.

Here is the BankAccount example we worked with in class today.

Here is a link to today's video lecture.

See the programming assignment page for your fourth assignment.

Read the following sections about writing classes.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

Read the following sections about writing classes.

Here are the examples we worked with in class today.

Thanksgiving Break. No class.

Here is a link to today's video lecture.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

For next week, read the following sections which introduce classes and objects.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

Here are some array practice problems.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

Today we will begin these introductions to arrays.

For Wednesday, read the following two sections on arrays.

Here are the examples we worked with in class today.

Here is a link to today's video lecture.

The second midterm exam is today. The exam can be downloaded from Brightspace when class ends at 1:45. Your completed exam document is due back in Brightspace at 11:30 this evening. The exam document is on the same page in Brightspace where you submit programming assignments. There are more detailed instructions about completing the exam on the first page of the exam document.

Here are the problem solutions we wrote in class today.

Here is a link to today's video lecture.

Remember that the second midterm exam is this Wednesday. See the review material from last Wednesday.

Here are the problem solutions we wrote in class today.

Here is a link to today's video lecture.

The second midterm exam will be one week from today, on Wednesday, November 4.

Here is a summary of the midterm exam topics and some review/practice problems.

For next week, read the first five sections of the following introduction to arrays.

And also read this section on arrays.

Here are two more CodingBat problems.

Here are the examples from today's class that demonstrate method return values.

Here is a link to today's video lecture.

Here are some examples we will look at today.

Here is the vocabulary we wrote for talking about methods and the example method we used in class.

Here is a link to today's video lecture.

For next week, read the following sections about methods,

Here are two zip files containing all the picture puzzle examples.

Here are the examples we did in class.

Here are two more CodingBat problems.

Here is a link to today's video lecture.

Solve these problems from the CodingBat web site. These problems use string methods, if-statements, boolean logic, and possibly a single loop.

Here is the code we worked with in class today.

Here is a link to today's video lecture.

Read the following two sections about loops,

and read this section about methods.

Here are some practice problems.

Here is the code we worked with in class today.

Fall Break. No class.

Here is a link to today's video lecture.

For next week, read the following two sections about loops.

Solve these problems from the CodingBat web site. These problems use string methods, if-statements, and boolean logic.

Here are the notes we used in class today.

Here is a link to today's video lecture.

For this week, read the following introductions to while-loops and for-loops.

Here is the code that demonstrated comparing String objects.

Here is a link to today's video lecture.

The first midterm exam is today. The exam can be downloaded from Brightspace when class ends at 1:45. Your completed exam document is due back in Brightspace at 11:30 this evening. The exam document is on the same page in Brightspace where you submit programming assignments. There are more detailed instructions about completing the exam on the first page of the exam document.

Here is a link to today's video lecture.

Remember that the first midterm exam is Wednesday. Here is a summary of the midterm exam topics and some review/practice problems (this is the final version of the review).

Here is a zip file containing several simple tables that summarize useful facts about Java.

Read the following sections (these sections are not on the exam).

Here are the nested, else-if-statement examples that we wrote in class.

Here is a link to today's video lecture.

Remember that the first midterm exam is a week from today. Here is a summary of the midterm exam topics and some review/practice problems (this should be the final version of the review).

For Monday, read the following sections.

Here are links to the examples of conditional code that we wrote in class.

Here is a link to today's video lecture.

The first midterm exam will be one week from Wednesday, on September 30.

Here is a summary of the midterm exam topics and some review/practice problems. This list is not finished yet, so I will be updating it soon.

Read the following introductions to if-statements and boolean expressions.

Solve these problems from the CodingBat web site. These are similar to programming assignment 3 and you solve them using methods from the String class.

Here is a link to today's video lecture.

See the programming assignment page for your third assignment.

For Monday, read the following sections,

from this textbook.

Here are some practice problems for you to work on.

Here is the String code and object memory diagram that we wrote in class.

Here is a link to today's video lecture.

For Wednesday, read the following sections,

from this textbook.

You may want to re-download the following zip file containing DrJava. I added to the zip file "dark/light" modes for DrJava which make it more pleasant to look at and I added the turtle geometry library used in the textbook so you can compile and run turtle code in DrJava.

Here is the Turtle code and object memory diagram that we wrote in class. You can copy and past this code into this page to run and modify it, or you can use this code with the version of DrJava mentioned just above.

Here is a link to today's video lecture.

For next Monday, read the following sections,

from this textbook. These sections are about objects and methods. Be sure to try all of the built in problems.

Here are links to the code we used in class with the Java Visualizer.

Labor day. No class.

Here is a link to today's video lecture.

For next week, read Chapter 4 from Think Java. This chapter introduces methods, one of the most important ideas in Computer Science.

Here are some practice problems for you to work on.

Here are the Scanner examples we did in class. Run these in DrJava because DrJava implements Scanner in a better way than the Java Visualizer.

Here is a link to today's video lecture.

See the programming assignment page for your second assignment.

Read Chapter 3 from Think Java and also Section 1.4.6 from the other textbook. Both readings are about user input and Java's Scanner class.

Here is a link to the code we used in class with the Java Visualizer.

Here is a link to today's video lecture.

For next Monday, read Section 1.3 and Section 1.4 from the other course textbook. Each section has many built in problems and exercises. Be sure to do all of them as you read these sections.

Here are links to the examples that we did in class using the Java Visualizer.

Here is a link to today's video lecture.

Be sure to look at the homework assignment page. Your first assignment is already listed there.

On your home computer, install the Java 8 JDK and DrJava as described in these instructions.

Here is a brief DrJava Primer

For today, read Chapter 1 from the textbook.

For Wednesday, read Chapter 2 from the textbook.

Homework: Copy this HelloWorld program from the Java Visualizer into DrJava running on your home computer. Use DrJava to save the program on your computer (as a file named HelloWorld.java), compile the program, and run it. Then use that program to do Exercise 3 at the end of Chapter 1.