BIT 143:Programming - Data Structures (2006 Fall)

Lessons

Table of Contents
Lesson 01

Lesson 02

Lesson 03 Lesson 04
Lesson 05 Lesson 06 Lesson 07 Lesson 08
Lesson 09 Lesson 10 Lesson 11 Misc. / Unused
HOMEWORK ASSIGNMENTS

 

Lesson 01
 

Individual Pre-Class Exercises:
<Due: 9/29 (Friday)>

  1. Get Visual Studio
  2. Orient yourself to BIT 143
  3. Single-file Demo for PCE's (updated - now 1 class per exercise)
  4. Create a simple console application     (Demo Video)
  5. Console I/O, Operators (Chapter 3)
  6. Fahrenheit to Celsius  (Hand-In)
  7. Nested Loops: Rectangles
  8. Nested Loops: Hollow Rectangles (Hand-In)
  9. Fibonacci numbers in an array (Hand-In)
  10. Designing a class: Circle (Hand-In)
  11. Circle class: Overlap method (Hand-In)
  12. How to hand in pre-class exercises  and homework

In-Class Exercises:

<For 9/25: Start working on the PCEs, and then work through as much of these ICEs as possible>

<Class Date: 9/27>

  1. Create a simple console application
  2. Basic Console I/O
  3. Single-file Demo for PCE's  (You need use this (or something similar) as the 'template' for the other PCEs)
  4. How to use a debugger

Preview:

  1. Linked List Of Ints: Basics (Sect. 24.3, 24.4)
Instructor's Materials:
Notes
 

Slides (Lecture #1) 

Slides (Lecture #2)

 

Lesson 02
 

Individual Pre-Class Exercises:
<Due: 10/2 (Monday)>

  1. Figure out what an enum is  (Demo Video   VS Project Used in the Video)

  2. Define the ErrorCode Enum (Hand-In)

  3. Using the ErrorCode Enum
     

  4. Linked List Of Ints: Basics (Sect. 24.3, 24.4)
  5. Linked List Of Ints: Traversing (Sect. 24.4 - 'Print' ) (Hand-In)
  6. Linked List Of Ints: Add to the Front (Sect. 24.4) (Hand-In)
  7. Linked List Of Ints: Remove From Front (Sect. 24.4) (Hand-In)
  8. LL: Printing at a specific location (building off previous knowledge) (Hand-In)
    2006Fa Originally: LL: Printing at a specific location 
  9. LL: Finding a particular node (building off previous knowledge) (Hand-In)
    2006Fa Originally: LL: Printing at a specific location 

In-Class Exercises:
<Class Date: 10/4 (Wednesday)>

Review (Basic Linked List Topics) :
  1. Objectifying the Linked List Code

Preview (Advanced Linked List Topics):

  1. Test-Driven Development
     
  2. LL: Insert by location/index
  3. LL: Remove by location/index
     
  4. LL: Running time
     
  5. How to use a debugger
     
  6. LL: Insert by value, in order
  7. LL: Remove by value, in order
Instructor's Materials:
Notes
Slides

 

Lesson 03

Assignment 1 (Due Weds, Oct 11th)

Individual Pre-Class Exercises:
<Due: 10/9 (Monday)>

  1. Weekly Groupwork: Finding Info (online & otherwise)
     

  2. Figure out what an enum is

  3. Define the ErrorCode Enum (Hand-In)

  4. Using the ErrorCode Enum

  5. enums in detail
     
  6. Objectifying the Linked List Code (Hand-In) - not required for 2006 Fall
  7. LL: Insert by location/index
  8. LL: Remove by location/index
     
  9. LL: Insert by value, in order (Hand-In) - not required for 2006 Fall
  10. LL: Remove by value, in order (Hand-In) - not required for 2006 Fall
     
  11. LL: Running time

GROUP WORK: Post to Yahoo Groups!

In-Class Exercises:
<Class Date:
10/11>

Review:

  1. Test-Driven Development
  2. TDD: Checklist
     
  3. Linked Lists: Running time
     
  4. Slideshow: Stack ADT
  5. Using A Stack: Detecting Palindromes
  6. Stacks: Running Time
  7. Stack of Simple Types vs. Reference Types

Preview:

  1. Binary Search Tree: Class Definitions
     
  2. BST: Find, Add by hand
Instructor's Materials:
Notes
Slides

 

 

Lesson 04

Assignment 2 (Due Wednesday, Oct 25th)

Individual Pre-Class Exercises:
<Due:
10/16>
  1. Slideshow: Stack ADT
    Figure out what a stack is  (Hand-In)
  2. Using A Stack: Detecting Palindromes (Hand-In)
  3. LL: Refactor into a Stack class (Hand-In)
  4. Additional StackLL Features (Optional)
  5. Stacks: Running Time (Hand-In)
     
  6. Specifying the Queue ADT
  7. Queue implemented via Linked List (Hand-In)

  8. Stacks: Running Time (Hand-In)
     

  9. Binary Search Tree preview
  10. Binary Search Tree: Class Definitions (Hand-In)
     
  11. Nested Classes (CAP?)
     
  12. BST: Add/Insert   (coded in C#) (Hand-In)
  13. BST: Find  (coded in C#) (Hand-In)
     
  14. Review: Big "Oh" Notation  (Hand-In)

GROUP WORK: Post to Yahoo Groups!!

In-Class Exercises:
<Class Date:
10/18>

Review:

  1. Queues
  2. Using A Stack: Detecting Palindromes
     
  3. BST: Find next smaller (coded in C#)      ( Starter Project )
  4. BST: Find next larger (coded in C#)

Preview:

  1. Recursion Warm-up #1 (What does it print?)
  2. Recursion Warm-up #2: (What does it print?)
  3. Recursion Warm-up #3  (What does it print?)
  4. Recursion Warm-up #4 More Complicated
     
  5. BST: Print  (coded in C#)
Instructor's Materials:
Notes
Slides  

 

Lesson 05

Individual Pre-Class Exercises:
<Due:
10/23>
  1. Review: Big "Oh" Notation  (Hand-In)
     
  2. Recursion By hand: Warm-up #3 (Hand-In)
  3. Recursion Warm-up #4 More Complicated
     
  4. BST: Print  (coded in C#)
     
  5. The following items left here for future versions of the class, but the 2006 Fall class doesn't need to (i.e., shouldn't :) ) do the following, greyed-out items:
    Compare & Contrast Two Pow implementations (Hand-In)
  6. LL/Recursion: Print a singly linked list recursively
  7. LL/Stack:  Print a singly linked list iteratively, backwards (Hand-In)
     
  8. References  (C# For Programmers: Sect 3.7 (Memory concepts), 4.8 (Value vs. Ref), 5.11 / Appendix L (Simple types), 7.11 (scope of declarations), 24.2 ( (un)boxing) )
    References: Sample C# Project
  9. Arrays of Simple Types
     
  10. SmartArray Class (Hand-In)

GROUP WORK: Post to Yahoo Groups!!

In-Class Exercises:
<Class Date:
10/25>
  1. Midterm Exam: Q+A & Review
     
  2. Recursion Warm-up #3  (What does it print?)
  3. Recursion Warm-up #4 More Complicated
     
  4. BST: Print  (coded in C#)
     
  5. Discuss the SmartArray class
     
  6. Discuss the Pow implementation
Instructor's Materials:
Notes
Slides  

 

Lesson 06

DUE: Assignment 3 (Due: Weds, Oct 25th)

Individual Pre-Class Exercises:
<Due:
10/30>
 

  1. Basic (Crashing) Recursion
  2. Basic Recursion (Hand-In)
  3. What does this code print? Parameters, Return values
  4. What does this code print? Parameters, Return, multiple calls (Hand-In)
     
  5. Recursively Printing Even Numbers (Hand-In)
     
  6. SmartArray: Alloc on demand (Hand-In)

GROUP WORK: Post to Yahoo Groups!!

In-Class Exercises:
<Class Date: 11/1>
  1. BST: Remove preview
  2. BST: Remove By Hand
  3. BST Remove (in lecture)
    Demo: BST Remove

     
  4. SmartArray: Resizing the array (Hand-In)

Instructor's Materials:
Slides  

 

Lesson 07

DUE: Assignment 4 (Due: Weds, Nov 8th)

Individual Pre-Class Exercises:
<Due: 11/6>
  1. Write Factorial (Hand-In)
  2. Write recursive binary search
     
  3. SmartArray: Resizing the array (Hand-In)
     

  4. BST: Remove preview
  5. BST: Remove (coded in C#) (Hand-In)
GROUP WORK: Post to Yahoo Groups!!

In-Class Exercises:
<Class Date: 11/8>

  1. <Midterm Exam>
Instructor's Materials:
Notes
Slides

 

Lesson 08

Individual Pre-Class Exercises:
<Due: 11/13>
  1. Basic Exception Handling  (Hand-In)
  2. EH: Centralized Error Handling (Hand-In)
  3. EH: Multiple trys;  finally (Hand-In)
  4. EH: Throwing an exception
     
  5. Sorting & Searching: Setup for the class
GROUP WORK: Post to Yahoo Groups!!
In-Class Exercises:
<Class Date: 11/15>

Review:

  1. Exception Handling

  2. SmartArray: KDP preview
     

Preview:

  1. SlideShow: QuickSort

  2. QuickSort: By Hand

  3. Implementing QuickSort

Instructor's Materials:
Notes
Slides   

 

Lesson 09

DUE: Assignment 5

Individual Pre-Class Exercises:
<Due: 11/20>
  1. KeyedSmartArray (structs vs. classes) (Hand-In)
     
  2. Doubly-linked list (Hand-In)
     
  3. Preview: QuickSort

  4. QuickSort: By Hand

  5. Implementing QuickSort (Hand-In)
GROUP WORK: Post to Yahoo Groups!!
In-Class Exercises:
<Class Date: 11/22>
  1. Worksheet: Summary of algorithm running times
     
  2. MergeSort: By Hand
Instructor's Materials:
Notes

Slides   

 

Lesson 10

 

Individual Pre-Class Exercises:
<Due: 11/27>
  1. Preview: MergeSort
  2. Implementing MergeSort (Hand-In)
     
  3. Use which algorithm when?
GROUP WORK: Post to Yahoo Groups!!
In-Class Exercises:
<Class Date: 11/29>

ON JUNE 5th, AT THE BEGINNING OF THE LECTURE, ALL HOMEWORKS, AND REVISIONS TO HOMEWORKS MUST BE HANDED IN.  THEY WILL NOT BE ACCEPTED AFTER THAT POINT IN TIME.

Instructor's Materials:
Notes

Slides   

 

Lesson 11
 
Individual Pre-Class Exercises:
<Due:
12/4>
  1. Review for the exam
GROUP WORK: Post to Yahoo Groups!!
In-Class Exercises:
<Class Date:
12/6>
  1. <Final Exam>

 

Instructor's Materials:
Notes
Slides

Back to BIT 143's homepage

Unused Material

BIT 142's Lessons Page