From charlesreid1

Line 119: Line 119:
===Lecture Code===
===Lecture Code===


Factoring
Removing plural words
* how to index items in a list
* how to add items to a list
* how to remove items from a list


GCD
Comparable Point
 
* implementing comparable interface
Euclid's Algorithm for GCD


===Worksheet Code===
===Worksheet Code===


NEED TO DO ALL OF THIS
Euclidian algorithm for GCD
* Walk them through the algorithm
* Show them some examples
* Have them implement it
* Find GCD between terms of a given series


==Chapter 10 Goodies==
==Chapter 10 Goodies==

Revision as of 00:27, 17 September 2016

Chapter 10: ArrayLists

Sections:

10.1 ArrayLists

10.2 Comparable interface

10.3 Case study: Vocabulary comparison

Section 10.1: ArrayLists

10.1 Definitions

Definitions:

  • Generic class
  • Wrapper class
  • Boxing
  • Unboxing

10.1 Materials

Introduce ArrayList object the way you would introduce the Python list

  • List: basic data type, very important
  • Difference between list and array - memory allocation and element insertion
  • Dynamic arrays

Array notation

  • Wrapper class, everything is an object, treat primitive types as objects

What kind of things would you want to do with an ArrayList?

Basic basic operations:

  • Get size

Other basic operations:

  • Get item at index i
  • Set item at index i
  • Add item, add item at index i
  • Remove item
  • Modify item at index i

Now that we have defined these basic operations, we can move on to examples/algorithms/implementations.

Section 10.2: Comparable interface

10.2 Definitions

Definitions:

  • Comparison function
  • Natural ordering

10.2 Materials

First, need to mention unboxing: ArrayList<Integer> vs ArrayList<int>

  • Unboxing is a really stupid side effect of Java's implementation
  • Everything is an object. Except the primitive types. But everything is an object.

Comparison of objects

  • extend idea behind o1.equals(o2) to comparisons
  • lt/lte/gt/gte
  • how to redefine comparison operator for our own objects

Section 10.3: Vocabulary comparison

10.3 Material

Some efficiency considerations

Version 1: compute vocabulary

  • Add unique words to ArrayList, and sort

Version 2: compute overlap

  • Number of matches between two sentences

Version 3: complete program

  • so far, build vocab list for 2 files, compute overlap between them
  • now, to deal with large files, print statistics (Nwords, Noverlapwords, Percent overlap)

Chapter 10 Summary

Deliverables

ArrayList

  • Notation, how to use it
  • Conceptualizing problems that can be easily resolved with ArrayList
  • Adding/removing and looping over ArrayLists
  • Wrapper classes

Comparable

  • Natural ordering and compareTo() function
  • Implementing the Comparable interface

Case study: Vocab comparison

  • Count number of unique words
  • Count overlap between two lists
  • Compute statistics

Chapter 10 Homework

HW Questions

(Recommended) Self-check problems:

(Required) Exercises:

(Required) Projects:

HW Details

Self-check:

Exercises:

Projects:

Chapter 10 Code

Lecture Code

Removing plural words

  • how to index items in a list
  • how to add items to a list
  • how to remove items from a list

Comparable Point

  • implementing comparable interface

Worksheet Code

Euclidian algorithm for GCD

  • Walk them through the algorithm
  • Show them some examples
  • Have them implement it
  • Find GCD between terms of a given series

Chapter 10 Goodies

Profiles

Puzzle 3

Caesar encoded with numbers in blocks of 8

Puzzles/Crypto Level 2/Puzzle 3

Flags