Class Lectures and Reading Assignments
CS 27500-002 (MW)
Data Structures
Fall, 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.

According to the university final exam schedule, the second midterm exam is Wednesday, December 15 at 8:00 a.m. It will be based on these practice problems,

on these reading assignments,

and on these code examples.

Today we will look at applications of the Stack Abstract Data Type.

Today we will look at the Stack Abstract Data Type and three implementations of it using either an array, a linked-list, or the List ADT.

See the homework assignment page for your third programming assignment.

According to the university final exam schedule, the final exam for this course is Wednesday, December 15 at 8:00 a.m. (two weeks from today). There will be some review questions for the exam here soon.

Read the following sections about the Stack ADT.

See the homework assignment page for your third programming assignment.

We will start to look at the List Abstract Data Type and its two implementations using arrays and linked-lists.

No class: Thanksgiving break.

See the homework assignment page for your third programming assignment.

Today we will finish the linked list operations.

Here is the code that we wrote today in class.

Today we will continue the linked list operations.

Here is the code that we wrote today in class.

Today we will continue to look at linked list operations.

Here is the code that we wrote today in class.

Read the following section about the linked list implementation of the List ADT.

Here is the code that we wrote today in class.

Today we will look at linked list operations.

Today we introduce the linked list data structure using the examples in this zip files.

For Wednesday, read the following introduction to the linked list implementation of the List ADT.

Today we will look at more examples of generic classess from the following zip file.

Here is the example we did in class of an array of Object.

See the homework assignment page for your second programming assignment.

The following zip file contains a generic version of ListOfString. This generic ListOf version solves a big problem with the ListOfString version.

Read the following two part article about Java Generics.

The first midterm exam is today.

For next week, read about the "parameterized", or "generic", ArrayList.

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

According to the course syllabus, the first midterm exam is one week from today. The exam will be held in class. It will be based on these practice problems.

And on these reading assignments.

Here is the List class that we worked with in class.

Here is another reference about lists (to supplement the reading assignment from Oct 4).

Today we will discuss the differences between a "Java interface" and an "abstract class".

Read the following introduction to abstract data types and the List abstract data type.

Today we will continue with the examples of separating the interface of a class from its implementation.

Today we will begin the last folder from this zip file. These are examples of how Object-Oriented Programming can separate the interface of a class from its implementation.

Here are some Object-Oriented Programming practice problems.

Here are some Object-Oriented Programming practice problems.

Today we will continue to look at the inheritance and polymorphism examples.

Today we will to look at the polymorphism examples.

Here is a very clear explanation of inheritance and polymorphism.

Here is another explanation of inheritance and polymorphism.

Read Section 5.7 (PDF, pages 252-256) from this textbook.

Today we will continue to look at the "memory diagram" examples.

Read Section 5.6 (PDF, pages 248-252) from this textbook.

Today we will continue to look at the code in the following zip file. We will start the "memory diagram" examples.

Read Section 5.5 (PDF, pages 237-248) from this textbook.

Today we will continue to look at the code in the following zip file. We will finish the "temperature readings" examples and then start the "memory diagram" examples.

Read Section 5.4 (PDF, pages 227-237) from this textbook.

Today we will continue to look at the code in the following zip file which contains programs that review object-oriented programming ideas.

Read Sections 7.4 - 7.5 (pages 31-41) in Chapter 7, Data Structures and Objects, from these notes.

Today we will continue to look at the code in the following zip file which contains programs that review object-oriented programming ideas.

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

Read Chapter 5, Objects and Classes, Sections 5.1 - 5.3 (PDF), from this book.

Read Chapter 7, Data Structures and Objects, Sections 7.1 - 7.3, (code) from these notes.

We will begin the course by looking at the code in the following zip file which contains Java programs that demonstrate and review many object-oriented programming ideas.

Here is a collection of typical problems from CS 12300 exams.

Go to this web site, codingbat.com, and solve some Java practice problems.

If you would like a very good, challenging, review of the basics of Java programming, read Chapter 1, Elements of Programming from this textbook.

If you need a Java development environment on your home computer, install the Java 8 JDK and DrJava as described in these instructions.