# BuCS 238 Computer Programming II

# After Class

**Welcome to Computer Information Technology at Hesston College!**

**This page contains reading assignments, additional assignment or exam
information, and frequently asked questions organized with the latest
at the top. Check here often!**

### Finals Week

#### Week of 2 May 16

**Monday, 8 May 17 is Reading Day - no class.**

**The Final Exam is on Tue, 9 May 2017, 1:00-2:50pm.** - Good luck!

### Week 16

#### Week of 1 May 17

Covered Chapter 10, Sorting and Searching Algorithms. Discussed and analyzed straight selection sort. Discussed and analyzed bubble sort, insertion sort, merge sort, heap sort, and sorting efficiency considerations. Reviewed searching topics including linear searching, high-probability ordering, key ordering, and binary searching.

Also discussed and analyzed hashing function and radix sort.

The **Final Exam** is due on Tue, 9 May 17 at 2:50pm.

Handout: none

Reading assignment: 569-609

__Homework__: Assignment 6

### Week 15

#### Week of 24 Apr 17

Discussed sets. Defined set terminology and looked at set union, intersection, and difference. Discussed the explicit and implicit implementation of ADT Set.

Discussed the **Final Exam** due on Tue, 3 May 16 at 3:00pm.

Also discussed ADT Graph and implemented it as an adjacency matrix to represent the edges. Discussed and implemented depth-first search, breadth-first search, and shortest-path.

Handout: none

Reading assignment: 569-609

__Homework__: Assignment 6

### Week 14

#### Week of 17 Apr 16

Finished Chapter 8, Binary Search Trees. Discussed tree class constructor and destructor, copying a tree, and traversals (inorder, postorder, preorder).

Also discussed iterative insertion and deletion, comparing binary search trees and linear lists, and looked at a nonlinked representation of a binary tree.

Discussed Chapter 9, Priority Queues, Heaps, Graphs, and Sets. Discussed ADT Priority Queue and implemented it using a heap as an inclass exercise. Compared implementations of ADT Priority Queue using a linked list, binary search tree, and heap.

Handout: none

Reading assignment: 523-567

__Homework__: Assignment 6

__Homework__: Chapter 8 Exercises (in class)

### Week 13

#### Week of 10 Apr 17

Finished Chapter 7, Programming with Recursion. Discussed how recursion works in terms of activation records and the run time stack. Traced the execution of several recursive functions, discussed debugging recursive routines, removing recursion, and how to decide whether to use a recursive function. Looked at how recursion can be used to solve a maze.

Started Chapter 8, Binary Search Trees. Discussed tree terminology and abstract, logical, and implementation of binary search trees. Discussing recursive binary tree operations including GetLength, RetrieveItem, InsertItem, Print (inorder traversal).

**No class on Good Friday, 14 Apr 17. Happy Easter weekend!**

Handout: none

Reading assignment: 450-523

__Homework__: Assignment 5

### Week 12

#### Week of 3 Apr 17

Discussed and implemented a linked list as an array of records. Also discussed specialized lists.

Started Chapter 7, Programming with Recursion. Introduced recursion by coding simple recursive examples and discussed verifying recursive functions. Discussed writing recursive functions and using recursion to simplify solutions. Implemented recursive linked list processing (revprint, insert, delete) and recursive binary search as inclass exercises.

Handout: none

Reading assignment: 389-449

__Homework__: Chapter 6 Exercises (14, 15)

### Week 11

#### Week of 27 Mar 17

Started Chapter 6, Lists Plus.

Discussed templates by looking at ADT QueueLL rewritten using templates.

Discussed circular linked lists and doubly linked lists with header and trailer nodes.

Discussed shallow and deep copying and started implemented deep copying as an inclass exercise. Also implemented a copy function as a friend function and overloaded the assignment operator to provide deep copy support.

Handout: none

Reading assignment: 357-389

__Homework__: Chapter 5 Exercises (4-7, 24-29)

### Week 10

#### Week of 20 Mar 17

Continued Chapter 5, ADTs Stack and Queue. Introduced queues. Discussed ADT Queue and looked at different implementation methods including dynamic array, linked, and circular. Used a queue to determine a palindrome.

Also derived ADT CountedQueue and compared the efficieny of the various queue implementations.

Handout: none

Reading assignment: 301-355

Exercise(s): review the associated chapter exercises

__Homework__: Assignment 4

### Midterm and Spring Break (Mar 13 - 17)

**No class. This class resumes on Mon, 20 Mar 17.**

Have a nice Spring Break!

### Week 9

#### Week of 6 Mar 2017

Finished Chapter 4, ADT Sorted List. Discussed ADT Sorted List as a linked structure. Also compared sorted list implementations, discussed bounded and unbounded ADTs, and talked more about object-oriented design methodology.

Started Chapter 5, ADTs Stack and Queue. Discussed ADT Stack and used a stack to find out if an expression is well-formed. Implemented Stack as an array-based structure and a linked structure.

Also compared the two implementations of Stack and used a stack to reverse a name.

Discussed Assignment 4.

Handout: none

Reading assignment: 243-300

Exercise(s): review the associated chapter exercises

__Homework__: Assignment 4

### Week 8

#### Week of 27 Feb 17

Started Chapter 4, ADT Sorted List.

Discussed ADT Sorted List using an array-based implementation with binary search. Also added a dynamically allocated array.

Also discussed ADT Sorted List as a linked structure.

Handout: none

Reading assignment: 213-243

Exercise(s): review the associated chapter exercises

__Homework__: Chapter 3 Exercises (Midterm)

### Week 7

#### Week of 20 Feb 17

Finished Chapter 3, ADT Unsorted List. Completed pointers.cpp.

Implemented ADT Unsorted List using a linked implementation. Compared the array-based and dynamic implementations of ADT Unsorted List.

Handout: none

Reading assignment: 165-211

Exercise(s): review the associated chapter exercises

__Homework__: Assignment 3

### Week 6

#### Week of 13 Feb 17

Discussed Programming Assignment 3 - TwoNum.

Used ADT Unsorted List in a practical application as an inclass exercise as we also learned about file input and output.

Continued Chapter 3, ADT Unsorted List. Discussed pointer type variables and operations using pointers.

Handout: none

Reading assignment: 158-165

Exercise(s): review the associated chapter exercises

__Homework__: Assignment 3

### Week 5

#### Week of 6 Feb 17

Discussed ADT Unsorted List and implementing and tested it using an array-based implementation.

Handout: none

Reading assignment: 138-157

Exercise(s): review the associated chapter exercises

__Homework__: Assignment 2

### Week 4

#### Week of 30 Jan 17

Demonstrated inheritance, composition, static and dynamic binding, and virtual functions in object-oriented programming.

Discussed exception handling, namespaces and compared algorithms using Big-O (order of magnitude notation).

Started Chapter 3, ADT Unsorted List. Introduced ADT Unsorted List at the logical and application levels.

Handout: none

Reading assignment: 97-138

Exercise(s): review the associated chapter exercises

__Homework__: Assignment 2

### Week 3

#### Week of 23 Jan 17

Started Chapter 2, Data Design and Implementation. Discussed data abstraction, data structures, abstract data types and operator categories. Reviewed built-in types from the logical, application, and implementation levels: records.

Also reviewed built-in types from the logical, application, and implementation levels: one-dimensional arrays and two-dimensional arrays. Introduced classes in C++.

Handout: none

Reading assignment: 65-97

Review: Chapter 2 exercises

__Homework__: Assignment 1

### Week 2

#### Week of 16 Jan 17

Finished Chapter 1, Software Engineering Principles. Discussed verification of software correctness, and program testing.

Finished Assignment 0 as an inclass exercise.

Continued discussing the Java to C++ transition using programming examples from the text.

Discussed Programming Assignment 1 - Package.

Handout: none

Reading assignment: 20-64

Review: Case Study and Chapter 1 exercises

__Homework__: Assignment 1

### Week 1

#### Week of 11 Jan 17 (Wed and Fri)

Introduced the course outline, syllabus, and CIT computer lab.

Started discussing the Java to C++ transition. Practiced writing and compiling a simple C++ program with the Visual Studio 2013 C++ programming IDE as an inclass exercise.

Started Chapter 1, Software Engineering Principles. Discussed the software "life cycle," goals of quality software, specifications and program design methodologies. Worked on Assignment 0 as an inclass exercise.

Handout: Syllabus

Reading assignment: 1-20

Review: Chapter 1 exercises

__Homework__: Assignment 0 (will be started during class)

`bobh@hesston.edu`