CS 112 - Introduction to CS II - Summer I, 2016


[Weekly Schedule | Lecture Schedule ]


Resources

Staff Contact Information

Instructor

Wayne Snyder
     Email: waysnyder@gmail.com

     Office: MCS 290
     Office Hours: M - R:
4:30 - 6
     Cell Phone: 617 - 966 - (210 + 41) (email vastly preferred)

Curriculum Assistants: Fempke, Sreeja, Daniel

 

 


Lecture Schedule

Back to Top

Lecture
Date
Lecture Topic
Readings (Java = "Java in a Nutshell")
Lecture Slides and Code Examples
Homeworks and Tests
Labs
1
M 5/23

Overview of Course & Course Policies; Motivational Lecture: Two algorithms for searching an array---algorithm, implementation, analysis, and experiments

Syllabus

Lecture: PDF

 

   
2
T 5/24 Introduction to Java: compiled languages (Java) vs interpreted languages (Python); types, operators, and expressions. Java statements, conditionals, and loops;

Read Chapter 2 of Java up through "Expressions and Operators"

In Java, continue to read Chapter 2 through the material on if/then, while, for, break, and continue;

At LearningJavaOnline: go through exercises for

  • Hello World
  • Variables and Types
  • Conditionals
  • Loops

Install Dr. Java from the Dr. Java Web Site and from the Help menu, read through the Tutorial on "Using Dr. Java, The Basics," OR look at the following YouTube video by Aaaron Stevens, one of our 111 instructors: YT

You could also look at the following lectures on the topics for today: Stevens YouTube videos: 10, 17,18,25

If you get the message "'Dr Java.app' is damaged and cannot be opened. You should move it to the trash," go to System Preferences > Security & Privacy and change the "Allow apps" to "Anywhere."

Lecture A: PDF

Lecture B: PDF (we will see how far we get with this)

HW 01: HTML

Solution to Part A: HTML

 
3
W 5/25 Java statements, conditionals, and loops; break and continue; arrays; methods and fields and the structure of basic Java programs. Scope of local variables, fields, and methods.

 

 

 

Used the board!

 

 
4 R 5/26

 

Java program structure continued: breaking a Java program into separate classes and separate files; more on scope (public vs private); static vs non-static members.

PlPlease read about methods in the Java text; please read about the difference between local and instance variables here: HTML

For scope of declarations, take a look at this set of notes: HTML

Read "Classes and Objects" and "Java File Structure" in the Java text.

Look at Aaron Stevens' YouTube videos 30a, 30b.

Used the board!

HW 02: HTML

HW 02 Part A Solution: HTML

 
5 T 5/31

Analysis of algorithms, "Big TOh" notation, experimental verification by timing analysis;

Interative sorting algorithms: Selection sort, Insertion sort

Complexity analysis of iterative sorts;

 

With this lecture, we will start to use our main textbook.

Please read Chapter 3.

Here is a good Youtube tutorial on Selection Sort;

Here is a good one on Insertion Sort.

There are 1000's of Youtube lectures on sorting algorithms: here is a creepy visualization of Insertion Sort, and here is a downright strange visualization of Insertion sort.

Here is a nice Youtube mini-lecture on sorting, with associated lectures on all the major sorting algorithms.

Lecture: PDF B&W: PDF

HW 03: HTML

Part A Solutions: HTML

 
6 W 6/1 OOD and Abstract Data Types; Stacks and Queues Chapter 4 of textbook. Lecture: PDF (Ignore the material on Exceptions, we will do this later).    
8 R 6/2

Queues implemented as Ring Buffers

Read the first half of the Wiki Article on Circular Buffers ("How it works" and look at the animated gif).

 

   
9 F 6/3 Deques and Priority Queues; Reference types Read the section on Reference Types (pp.74-81) CAREFULLY in the Java Text.  

HW 04: HTML

There was no Part A for this homework.

 
10 M 6/6

Linked Lists

Chapter 5 of textbook.

There are probably 1000 videos on YouTube about Linked Lists, take a look......

You might want to check out the classic Binky Pointer Fun video on YT, but bear in mind it is written for a different language (C or C++).

 

   
11 T 6/7

Stacks and Queues with LLs.

Java: Generics

 

 

Here is a very short, clear tutorial on Linked Lists: YouTube There are a number of such tutorials on YouTube, so look around a bit for others if you wish!

Lecture: PDF

HW 05: HTML

Part A Solutions: HW05ASolutions.java

Part B Solutions: HW05Solution.java

Here are some practice problems (with solutions) on pointers: PDF

 
12 W 6/8

Basics of List Processing: Iterative Algorithms;

 

Notes on Iterative LL Algorithms Used the board!    
13 R 6/9 Iterative LL algorithms; Structure of Java Programs using LLS: ADT and Static Library Examples.

 Notes on Iterative LL Algorithms

Used the board!

Midterm Study Guide: HTML

Sample Midterms:

2013: PDF

2014: PDF

WARNING: These exams are provided as samples of the FORMAT and general type of exams and the answers I would expect. Some topics covered in the exams above were not covered this year (or not yet) and so you should not use these as practice problems. For that, use the Part A solutions above.

For example, the exams cover recursion, but we will not have recursion on the exam.

 
14 M 6/13

MIDTERM EXAM

 Midterm Solution: PDF

 

 

 

HW 06: HTML

(No Part A)

 
15 T 6/14 Java: Generics, Exceptions, Recursive algorithms on LLs Chapters 6 and 7 in textbook      
16

W 6/15

Recursive algorithms on LLs;

 Chapter 6 in textbook

Notes on Recursion and LLs

Used the board!    
17 R 6/16 Recursive algorithms on LLs; Doubly-linked lists, multi-lists.

  Notes on Recursion and LLs

 

HW 07: HTML

Part A Solution: HTML

 
18 M 6/20

Binary Trees, Binary Search Trees; Searching, Insertion, and Deletion in BSTs.

 

Chapter 8 in textbook

 BinaryTreeCode.html

Lecture: PDF    
19 T 6/21 Recursive tree traversals; Iterative tree traversals using an explicit stack

Chapter 8 in textbook

BinaryTreeCode.html

Please read the following WikiP article on Tree Traversals: HTML and follow the link to read about breadth first search.

Lecture: PDF    
20 W 6/22 2-3 Trees; B-Trees and external data structures

Chapter 10 in textbook

Here is a good explaination of 2-3 Tree Insertions: YT

Here is a good animation you can play with to verify your understanding: HTML

 

Lecture: PDF    
17 R 6/23 The (nearly) Perfect Data Structure; Perfect Hashing, Hash Functions; Hash Tables with Separate Chaining; Hash Tables with

Chapter 11 in textbook, first four sections (Introduction through Hashing Efficiency)

HowToImplementHashTables.html

Used the board!

HW 08: HTML

Solution: HTML

 
18 M 6/27

Linear Probing; Performance of Hash Tables

Array representation of binary trees; Binary Heaps,

Chapter 12 in textbook

I will use the board for the lecture on heaps.

There are many videos about binary heaps, here is a good one: YT

MaxHeap.java

   
19 T 6/28

Finish Binary Heaps; Heapsort;

Graphs: Basic notions, graph traversals: depth first, breadth first

Chapter 13 in textbook

Lecture: PDF

 

Search for "undirected graph" on YouTube, if you want to see some lectures, there are 1000's!

   
20 W 6/29 Graph traversals concluded; summary and review for final exam.    

 

 
21 R 6/30 Final Exam        

Back to Top