Fall 2022 (08/25/2022 - 12/21/2022)

The semester has 29 class meetings including the final exam. Clicking on a class day below, you should find the class module for the day including lecture notes, assignments, and others. The instructor releases the content for a class generally on the Monday before the class. However, the instructor often makes update to the module content after the initial release. You should check this page often for up-to-date content.

In case you encounter a problem when viewing class content, such as, a broken link, please report it to the instructor immediately.

Topics: overview of class organization (syllabus); history of computing; preparing programming environment (JRE and JDK); basic program structure; writing, compiling, and executing Java programs;

Course Objectives

(Objective 1) Understand the concept of a program (i.e., a computer following a series of instructions)
(Objective 8) Master a simple programming environment (Windows or Unix command lines)

Lecture Notes

CodeLab

Reading

Sections 1.1 - 1.7

Topics: Primitive data types; variables; (in-class) programming lab 1;

Course Objectives

(Objective 1) Understand the concept of a program (i.e., a computer following a series of instructions)
(Objective 2) Declare a variable with an appropriate data type (either character or numeric), initialize the variable's value, and change the value when appropriate

Lecture Notes

CodeLab

Reading

Sections 1.1 - 1.10 of the textbook

Notice: College Closed - Labor Day Observed

Topics: Numeric data types; expressions and assignment;

Course Objectives

(Objective 1) Understand the concept of a program (i.e., a computer following a series of instructions)
(Objective 2) Declare a variable with an appropriate data type (either character or numeric), initialize the variable's value, and change the value when appropriate

Lecture Notes

CodeLab

Reading

Sections 1.1 - 1.10 of the textbook
Sections 2.1 - 2.8 of the textbook

Topics: augmented assignment; data type casting; (in-class) programming lab 2;

Course Objectives

(Objective 1) Understand the concept of a program (i.e., a computer following a series of instructions)
(Objective 2) Declare a variable with an appropriate data type (either character or numeric), initialize the variable's value, and change the value when appropriate

Lecture Notes

CodeLab

Individual Programming Project

Programming Project 1 (on CodeLab) (Due: September 19)

Reading

Sections 1.1 - 1.10 of the textbook
Sections 2.1 - 2.8 of the textbook

Topics: system time; common pitfallsa and errors about numeric data types; boolean; relational operators; if, if-else, if-else cascaded, nested if;

Course Objectives

(Objective 3) Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
(Objective 6) Trace the execution of a program and predict the results of the execution

Lecture Notes

Reading

Sections 3.1 - 3.5 of the textbook

Topics: boolean; relational operators; if, if-else, if-else cascaded, nested if; programming examples; in-class lab 3

Course Objectives

(Objective 3) Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
(Objective 6) Trace the execution of a program and predict the results of the execution

Lecture Notes

Individual Programming Project

Programming Project 2 (on CodeLab) (Due: September 28)

Reading

Sections 3.1 - 3.5 of the textbook

Topics: logical operators; switch statement; conditional operator; operator precedence and associativity

Course Objectives

(Objective 3) Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
(Objective 6) Trace the execution of a program and predict the results of the execution

Lecture Notes

Reading

Sections 3.1 - 3.5 of the textbook

Notice: No classes scheduled

Topics: basics about loops; while loop;

Course Objectives

(Objective 3) Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
(Objective 6) Trace the execution of a program and predict the results of the execution
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Sections 5.1 - 5.2 of the textbook
Sections 5.3 - 5.5 of the textbook

Topics: using the char data type; using the String type;

Course Objectives

(Objective 1) Understand the concept of a program (i.e., a computer following a series of instructions)
(Objective 2) Declare a variable with an appropriate data type (either character or numeric), initialize the variable's value, and change the value when appropriate

Lecture Notes

Individual Programming Project

Programming Project 3 (on CodeLab) (Due: October 12)

Reading

Sections 4.3 - 4.4 of the textbook
Sections 4.5 - 4.6 of the textbook

Topics: using Math methods; String Formattinga; printf;

Course Objectives

(Objective 1) Understand the concept of a program (i.e., a computer following a series of instructions)
(Objective 2) Declare a variable with an appropriate data type (either character or numeric), initialize the variable's value, and change the value when appropriate

Lecture Notes

CodeLab

Reading

Sections 4.1 - 4.2 of the textbook
Sections 4.3 - 4.4 of the textbook
Sections 4.5 - 4.6 of the textbook

Notice: No classes scheduled

Notice: College closed

Topics: do-while loop; for loop; break; continue; nested-loops; pitfalls and errors; alogoritms and examples (computing sum; root finding; checking palindromes; checking prime numbers)

Course Objectives

(Objective 3) Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
(Objective 6) Trace the execution of a program and predict the results of the execution
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Individual Programming Project

Programming Project 4 (on CodeLab) (Due: October 24)

Reading

Sections 5.1 - 5.2 of the textbook
Sections 5.3 - 5.5 of the textbook
Sections 5.6 - 5.8 and 5.10 of the textbook
Sections 5.9 - 5.11 of the textbook
Sections 5.12 - 5.14 of the textbook

Topics: loops; alogoritms and examples (computing sum; root finding; checking palindromes; checking prime numbers)

Course Objectives

(Objective 3) Use control structures, including a loop to repeat the execution of a series of statements and a conditional statement to select one from a series of alternatives
(Objective 6) Trace the execution of a program and predict the results of the execution
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Sections 5.1 - 5.2 of the textbook
Sections 5.3 - 5.5 of the textbook
Sections 5.6 - 5.8 and 5.10 of the textbook
Sections 5.9 - 5.11 of the textbook
Sections 5.12 - 5.14 of the textbook

Topics: Q & A for Midterm Exam.

Lecture Notes

Reading

all chapters discussed

Topics: Calling and defining methods; formal and actual parameters; passing parameters and pass-by-value; return type;

Course Objectives

(Objective 4) Write a function to perform a subtask and use the function as part of a larger program
(Objective 6) Trace the execution of a program and predict the results of the execution

Lecture Notes

Reading

Sections 6.1 - 6.4 of the textbook

Topics: The instructor will hold a midterm exam in class (or online depending on course modality)

Topics: calling and defining methods; formal and actual parameters; return type; pass by value; using methods

Course Objectives

(Objective 4) Write a function to perform a subtask and use the function as part of a larger program
(Objective 6) Trace the execution of a program and predict the results of the execution

Lecture Notes

Individual Programming Project

Programming Project 5 (on CodeLab) (Due: November 9)

Reading

Sections 6.1 - 6.4 of the textbook
Sections 6.5 - 6.6 of the textbook

Topics: method overloading; scope of local variables;

Course Objectives

(Objective 4) Write a function to perform a subtask and use the function as part of a larger program
(Objective 6) Trace the execution of a program and predict the results of the execution

Lecture Notes

CodeLab

Reading

Sections 6.1 - 6.4 of the textbook
Sections 6.5 - 6.6 of the textbook
Sections 6.7 - 6.9 of the textbook
Sections 6.10 - 6.11 of the textbook

Topics: stepwise-refinement using methods; using methods; example programs;

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Sections 6.10 - 6.11 of the textbook

Topics: stepwise-refinement using methods; using methods; example programs;

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Individual Programming Project

Programming Project 6 (on CodeLab). (Due: November 16)

Reading

Sections 6.10 - 6.11 of the textbook

Topics: concept of arrays; 1-dimensional array; declare array reference variable; create array; initialize array; accessing array size; accessing array elements; displaying arrays; summing all elements; finding minimum and maximum; random shuffling and shifting elements

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Sections 7.1 - 7.2 of the textbook

Topics: passing 1-Dimensional Arrays to Methods; return 1-Dimensional Array from Methods

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

CodeLab

Reading

Sections 7.3 - 7.5 of the textbook
Sections 7.6 - 7.9 of the textbook

Topics: sorting 1-dimensional arrays; searching 1-dimensional arrays;

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Individual Programming Project

Programming Project 7 (on CodeLab). (Due: November 28)

Reading

Section 7.10 of the textbook
Section 7.13 of the textbook

Topics: sorting 1-dimensional arrays; searching 1-dimensional arrays;

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Section 7.11 of the textbook

Topics: 1-dimensional arrays; text/character files; File; Scanner; PrintWriter

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Section 12.11 of the textbook

Topics: 1-dimensional arrays; text/character files; File; Scanner; PrintWriter; Demo and exercises (sorting, searching, using arrays to process files; command line applications)

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Individual Programming Project

Programming Project 8 (On CodeLab). (Due: December 7)

Reading

Section 12.12 of the textbook

Topics: 2-dimensional and multi-dimensional arrays

Course Objectives

(Objective 5) Use an array to store multiple pieces of homogeneous data, and to use a simple class to store multiple pieces of heterogeneous data
(Objective 7) Write an algorithm for a simple task

Lecture Notes

Reading

Sections 8.1 - 8.8 of the textbook

Topics: Q & A for Final Exam.

Lecture Notes

Individual Programming Project

(Optional) Programming Project 9 (On CodeLab). (Due: December 14)

Reading

Relevant chapters in the textbook; lecture notes; all labs; all projects; review guides and tests

Topics: Q & A for Final Exam.

Lecture Notes

Reading

Relevant chapters in the textbook; lecture notes; all labs; all projects; review guides and tests

Notice: Reading Day

Topics: The final exam is scheduled at RA-115RE, 1:00 - 3:00PM, December 20, 2022.