CSCI325: Data Structures

Updated 2017.12.11

Syllabus        Java Tutorial        Java Collections Tutorial        Book source code        Academic Calendar      Finals Schedule

Final Test is Monday, 12/11/2017 from 10:00 to 11:50.

 

Useful web sites: Interpreting Java compile errors, Java Tutorial

30 days in 2015   29 in 2017

Monday, 12/11/2017. Final Test

·         Program Shell

 

 

 

 

 

 

 

 

 

Earlier classes are below…

 

 

 

 

 

 

 

 

 

 

Day 29. Thursday, 12/07/2017

·         76 years ago today

·         The joy of the craft

·         Topological sort solution

·         Review for test

·         Practice test

·         Complete online evaluations

Day 28. Tuesday 12/05/2017

·         Chapter 11: Inheritance and Polymorphism. Notes.

·         Data files: SimpleGeometricObject, CircleFromSimpleGeometricObject

Homework due next class:

·         Write the Triangle subclass program.

Day 27. Thursday, 11/30/2017

·         Chapter 30: Graphs, part 2. Notes.

·         Discuss Liang's graph implementation. GraphDemo program.

·         Discuss topological sort program.

Homework due Tuesday, 1/05/2017

·         Topological Sort. Zipped project shell. The Graph, AbstractGraph, and UnweightedGraph files are all included. The main file (empty) is there, too. Part 2: Finish the program by implementing the topological sort algorithm

Day 26. Tuesday, 11/28/2017

·         Chapter 30: Graphs. Notes.

Homework due Thursday, 11/30/2017

·         Topological Sort. Zipped project shell. The Graph, AbstractGraph, and UnweightedGraph files are all included. The main file (empty) is there, too. Part 1: Write the code in main to create the graph from the data file.

Day 25. Tuesday, 11/21/2017. Sorting, binary search trees

·         Sorting: Notes. Demo.

·         Visualization 1. Visualization 2. Visualization 3 (15 in 6 minutes). Visualization 4

·         Search trees: Notes

Assignment due Tuesday, 11/28/2017 at 9:00 a.m.

·         Read chapter 30: Graphs.

·         TreeMaps, TreeSets: a Java cross-referencer. Java reserved words. Short Java program. Answers. Long Java program. Answers.

Day 24. Thursday, 11/16/2017

·         How to code like a NASA programmer.

·         Chapter 24. Developing Efficient Algorithms. Notes. Sort demo.

·         Linear search code. Binary search code. 1,000,000 sorted. 1,000,000 unsorted.

Homework due next class:

·         Read Liang chapter 25: Sorting.

Day 23. Tuesday, 11/14/2017

·         Test #2. Program shell.

Day 22. Thursday, 11/09/2017

·         Chapter 23. Sets and Maps. Notes.

Homework due the class AFTER the test (11/16/2017)

·         Test will be next class. Things to know. Practice test.

·         Program #20: Counting word frequencies in text. Description. Data file. Java file.

·         Read chapter 24: Developing Efficient algorithms.

Day 21. Tuesday, 11/07/2017

·         Test next Tuesday through chapter 22

·         Chapter 22. Comparators, Queues, Priority Queues. Notes

·         Sample programs:

·         22.7 TestQueue.java

·         22.8 PriorityQueueDemo.java

·         22.9 EvaluateExpression.java

Homework due next class:

·         Program #19: Queue simulation.

·         Read chapter 23: Sets and Maps.

Day 20. Thursday, 11/02/2017

·         Chapter 22. Java Collections, Lists and Stacks. Notes.

·         Listing 22.3 TestArrayAndLinkedList

Homework due Tuesday:

·         Mazes, robots, and stacks, part 2. Part 2 involves writing the stack of Direction class and writing the algorithm for stepping through the maze. Instructions. Data file. Maze and Robot classes.

Day 19. Tuesday, 10/31/2017

·         Chapter 22. Java Collections, Lists and Stacks. Notes.

·         TestCollections: Listing 22.1

·         TestIterator: Listing 22.2

·         Abstract class explanation

·         Interface explanation

Homework due Thursday:

·         Mazes, robots, and stacks, part 1. Part 1 involves writing the Maze class and the Robot class. Part 2 is the remainder of the program. It will be due one week from today. Instructions. Data file.

Day 18. Thursday, 10/26/2017

·         Chapter 21. Generics: Notes. Arraylists: Notes.

·         Create an IntStack class, a StringStack class, and an ObjectStack class.

·         Create an ArrayList of strings.

·         Create a generic stack class.

Homework due next class:

·         Program #16: Write a generic removeDuplicates to return a new ArrayList that has all of the elements in the original ArrayList, but with no duplicate elements. Problem description.

·         Read chapter 22: Lists, Stacks, Queues, and Priority Queues

Optional (Fun) Extra Credit due next class:

·         Mersenne primes.

Day 17. Tuesday, 10/24/2017

·         Chapter 20: Recursion. Notes.

·         Problem that lends itself to a recursive solution: Towers of Hanoi

·         Examples of recursion (videos): Flood-fill, fractal

·         Examples of recursion (Java code): Directory size, Sierpinski triangles, Towers of Hanoi

Homework due Thursday, 10/26/2017

·         Program #15: Recursion.

·         Read chapter 21: Generics.

Day 16. Thursday, 10/19/2017

·         Jobs in IT: Guest speaker from Interstates

·         Chapter 14: Exceptions and text I-O. Notes.

Homework due Tuesday, 10/24/2017

·         Program #14: Text files and exceptions.

·         Read Chapter 20--Recursion.

Day 15. Tuesday, 10/17/2017

·         Validating an ISBN number. Data file.

·         Finish the MyInteger class.

·         Chapter 14: Exceptions and text I-O. Notes.

Homework due Tuesday, 10/24/2017

·         Program #14: Text files and exceptions.

·         Read Chapter 20--Recursion.

·         NOTE: We are skipping chapters 11-13, 15-19 for now.

Thursday, 10/12/2017—No class. Fall break.

Day 14. Tuesday, 10/10/2017

·         What employers want.

·         Chapter 10: Thinking in Objects. Notes.

·         Write in class: MyInteger class.

Homework due next class:

·         Calendar Date object. CalendarDate class.

·         Read chapter 10 in Liang9 (Thinking in Objects).

Optional Extra credit homework due Friday, 10/13/2017 at midnight

·         Numeric palindromes. Put in the Numeric Palindromes drop box.

Day 13. Thursday, 10/05/2017

·         Chapter 9: Strings. Notes.

·         The Character class

·         Input files

Homework due Tuesday, 10/10/2017 30 minutes before class begins

·         Program #12: Strings and files: Hangman. 3000-word data file.

·         Read chapter 10: Thinking in Objects

Day 12. Tuesday, 10/03/2017

·         Chapter 9: Strings. Notes.

·         Converting int to hex

·         The Character class

Homework due Thursday, 10/05/2017 30 minutes before class begins

·         Program #11: Strings: ISBN numbers. Put in the drop box.

·         Read chapter 10: Thinking in Objects

Day 11. Thursday, 9/28/2017

·         Test #1.

Day 10. Tuesday, 9/26/2017

·         Objects, part 2: Create the Huge integer class. Notes. Project.

·         Test #1 will be class, 9/28/2017. Objectives. Practice test. Solution. Video 1. Video 2.

Homework due AFTER the test (next Tuesday)

·         Program #10: More objects: a thermostat class.

·         Read about strings Liang9, chapter 9.

Day 9. Thursday, 9/21/2017

·         Objects!!! Notes.

·         NOTE: to add JavaDocs to a method that you write, you must put a comment on the line above the method that begins with the three characters: /**

Homework due next class

·         Program #9: Create an Account class.

Day 8. Thursday 9/14/2017

·         2D arrays (Liang9, chapter 7). Notes

·         2D array practice

Homework due next class

·         Program #8 (Chapter 7—2D arrays): Connect Four

·         Read Chapter 8 (Objects and classes).

Tuesday, 9/19/2017

·         NO CLASS TODAY.

Day 7. Tuesday, 9/12/2017

·         Java interview questions

·         Arrays (Liang9, chapter 6). Notes

·         Watch the sorting algorithms. Another

Homework due next class

·         Read chapter 7 (2D arrays)

·         Program #7: Write a solution to problem 6.27 in Liang9, identical arrays.

Day 6. Thursday 9/07/2017

·         Source of programming problems: Project Euler

·         Programming language popularity

·         Arrays in Java. Array notes

Homework due next class

·         Program #6 (for chapter 6—arrays): Bean Machine

Optional extra credit (also due next class)

·         School Lockers

Day 5. Tuesday 9/05/2017

·         Methods. Chapter 5 notes: methods.

·         Parameter passage in Java

Homework due next class

·         Program #5 (for chapter 5—methods): Print a full-year calendar

·         Read chapter 6. Be prepared for a quiz.

Day 4. Thursday 8/31/2017

·         ISU Hackathon is October 6-8.  ACM Programming Contest is October 28.

·         Chapter 4 notes. Loops

·         In class: Fizz Buzz

Homework due next class

·         Read chapter 5 (methods). Be prepared for a quiz.

·         Program #4 (for Chapter 4--loops): Loan Comparison

Day 3. Tuesday 8/29/2017

·         Chapter 3 Notes. Selection.

Homework due next class

·         Read chapter 4. Be prepared for a quiz.

·         Program #3 (for Chapter 3--selections): Day of Week. Zip the folder and put it in the drop box.

Day 2. Thursday 8/24/2017

·         Chapter 2 Notes

Homework due next class

·         Read chapter 3 of Liang. Be prepared for a quiz.

·         Program #2 (for Chapter 2--elementary programming): Wind chill. Zip the project folder and put it in the drop box.

Day 1. Tuesday 8/22/2017

·         Book example programs source code. We will probably look at these frequently.

·         Java program structure, console output, variables, identifiers, data types: Notes

Homework due next class

·         Program #1: Gross pay and net pay.

·         Read chapter 1 (Introduction) and chapter 2 (Variables/Assignments) of textbook.

Read, sign, and turn in: Assignment, Test, and Homework policies

Day 8. Thursday, 9/14/2013

Optional extra credit due next class

Day 26. Tuesday, 11/28/2017

Homework due next class

Day 27. Thursday, 11/30/2017

Homework due next class:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Homework

 

 

 

 

Homework due Monday, 10/28/2013

Optional (Fun) Extra Credit

Notes. Notes

 

Day 26. Tuesday, 11/24/2017

Homework due Friday, 11/08/2013

Day 29. Tuesday, 12/08/2017

Homework due 38

Day 30. Thursday, 12/10/2017

EXTRA.