Class Lectures and Reading Assignments
CS 12300
Programming I: Java
Spring, 2021

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 10:00 a.m. The exam file is on the same page in Brightspace where you submit programming assignments. Your completed exam document is due back in Brightspace at 11:00 p.m. this evening. There are more detailed instructions about completing the exam in the exam document. If you have questions, please send me an email at any time during the exam.

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 weeks from today, on May 6. Below is a summary of the final exam topics and some review/practice problems (along with the previous two midterm exam review problems).

Here are the examples we worked with during class.

Here is a link to today's video lecture.

Here is the last reading assignment.

Here is the latest version of the Rectangle class.

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 two weeks from today, on May 6.

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

Read the following section about writing classes.

Here is the modified Rectangle.java example that we worked on in class.

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 two weeks from Thursday, on May 6. The final exam will begin at 10:00 a.m. and it will be administered the same way as the two midterm exams. There will be review problems for the exam soon.

Read the following sections about writing classes.

Here is the Rectangle.java example that we worked on in class.

Here is a link to today's video lecture.

Read the following sections about writing classes.

Here is the example that we worked on in class.

Here is a link to today's video lecture.

See the programming assignment page for your third assignment.

Here is a link to today's video lecture.

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

Solve these array problems from the CodingBat web site.

Here are the examples that we worked on in class.

Here is a link to today's video lecture.

Here are the examples that we worked on in class.

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 10:45. The exam document is on the same page in Brightspace where you submit programming assignments. Your completed exam document is due back in Brightspace at 11 p.m. this evening. There are more detailed instructions about completing the exam on the first page of the exam document.

For next week, read the following two sections on arrays.

Here are some array practice problems.

Here are the examples that we worked on in class.

Here is a link to today's video lecture.

Here are the examples that we worked on in class.

Here is a link to today's video lecture.

Here are the examples that we worked on in class.

Here is a link to today's video lecture.

The second midterm exam will be one week from Thursday, on April 1.

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

Read the first five sections of the following introduction to arrays.

And also read this section on arrays.

Here are the examples we did in class today.

Spring Break - No class today.

Spring Break - No class today.

Here is a link to today's video lecture.

Here is the version of Pattern 8 that we worked on in class.

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

Here is a link to today's video lecture.

Read the following sections about methods,

Today we will work on these examples of nested for-loops.

Here is a link to today's video lecture.

Read the following last two sections about loops,

Here are some loop practice problems.

Here are the nested for-loop examples that we did in class today.

Here is a link to today's video lecture.

Here are the nested for-loop examples that we did in class today.

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 for-loop examples that we did in class today.

Here is a link to today's video lecture.

Here are all the while-loop examples that we did in class today.

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 10:45. The exam document is on the same page in Brightspace where you submit programming assignments. Your completed exam document is due back in Brightspace at 11 p.m. this evening. There are more detailed instructions about completing the exam on the first page of the exam document.

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

Here is a link to today's video lecture.

Remember that the first midterm exam is this Thursday.

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

Here are the drawing and the code examples from 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.

For next week, read the following sections (these sections are not on the exam).

Here are the code examples from class.

Solve these two CodingBat problems.

Here is a link to today's video lecture.

The first midterm exam will be one week from Thursday, on February 18.

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

For Thursday, read the following sections.

Solve these problems from the CodingBat web site. You solve them using methods from the String class.

Here are the if-statement examples that we used during class today.

Here is a link to today's video lecture.

For next week, read the following introductions to if-statements and boolean expressions.

Today we will look at a topic that we haven't said enough about yet, method return values.

Here are the Turtle and String code that we used during class.

Here is a link to today's video lecture.

For Thursday, read the following two sections.

Here are some practice problems for you to work on.

Here is the memory diagram we made and the Turtle code that we used during class.

Here is the String code that we used during class.

Here is a link to today's video lecture.

See the programming assignment page for your second assignment (it's really there this time).

For next Tuesday, read the following three sections which describe Java's String objects and methods. Be sure to try all of the built in problems.

Here is the Turtle code that we wrote in class. You can copy and past this code into this page to run and modify it. You can also use this Turtle code in DrJava.

Here is the little example we did with printf.

Here is a link to today's video lecture.

For Thursday, read the following four sections which describe Java objects and how we call methods on objects. Be sure to try all of the built in problems.

Here are links to the code we used in class with the Java Visualizer. Rerun these examples and pay close attention to how the Java Visualizer draws the stack diagrams.

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 is the code we used in class.

Class will meet at 9:30 using the Zoom application. Please click on the following invite link to join the class meeting.

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 Tuesday, read the four Sections 1.3, 1.4, 1.5, and 1.6 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 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 this textbook.

For Thursday, read Chapter 2 from this textbook.

Exercise: 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.