Course Information

Syllabus
Coding Standards
Visual Studio FAQ
Visual Studio on a Mac
Professor Ryan's Video Tutorials

Professor: 
Email Address: 
Office Location: 
Strain 201
CS300 Data Structures
Data structures are fundamental to advanced, efficient programming. Topics including asymptotic analysis, stacks, queues, linked lists, trees, and hash tables will be covered in discussions centering around more sophisticated programming concepts, problem solving techniques, and software reusability. Prerequisite: CS 250 with a minimum grade of C. 4 credits.

Schedule:


Date
Topics
Homework & Assignments
Notes
Week 1
Aug 28
Syllabus
Linux Intro

Syllabus
01 Linux
V - Linux I
Aug 30
Intro to C

02 C Intro
READING: pp. 1-35
Sept 1
Intro to Eclipse
Assign1 - WordSearch 03 Eclipse
CS300PrefsF17.xml
SUSE Admin
Week 2
Sept 4
Labor Day - No Class


Sept 6
Makefiles
Testdrivers using asserts

04 Makefiles
04 RationalMake
R - Make Basics
V - MakeI
V - MakeII
Sept 8
Finish Makefiles
Abstract Datatypes

05 ADTs

Week 3
Sept 11
Stack ADT
Discuss Assign #2

Assign2 -  Generic Stack 06 Stack ADT
READING: pp. 40-42, 79-84

Sept 13 Subversion
ArrayOfVoidStars I

07 Subversion
07 ArrayOfVoidStars
Sept 15 Advanced Poiinters

8 Adv Pointers
Week 4
Sept 18
Finish Adv Pointers


Sept 20
Dynamic Memory
ArrayOfVoidStartsII

Dynamic Memory
Sept 22
Midterm 1
Review is ready
Review
Week 5
Sept 25 Finish More Pointers
Finish Dynamic Memory
Assign3

Sept 27 Valgrind Lab
maina.c lab


Sept 29
Discuss maina.c


Week 6
Oct 2
List ADT, pointers
mainb.c lab

List ADT
ListInClass
Oct 4
Discuss Next Assign
Continue Linked Lists
Assign4

Oct 6
Fall Break - No Class


Week 7
Oct 9 List Traversing w/prev & pres
Queue ADT

Interview Problem
Queue ADT
Oct 11 Singly Linked Queue

Oct 13 Singly Linked Circular Queue / Circular Stack

Week 8
Oct 16 Handles



Oct 18
Go over assignment
Managing Multiple Projects w/ Makefiles
Rational / RationalSet
Assign5

Dependency
Graph

Oct 20
Midterm 2

Review
Week 9
Oct 23 In class exercise 1

CQInClass
Oct 25 In class exercise 2

ValgrindHandles
Lab
Valgrind
GDB
Better Debugging
Oct 27 Finish in class exercises

More Handles
Week 10 Oct 30
Complexity Analysis
Complexity
Nov 1
Discuss Airport
argv & argc
More files
Assign6

Nov 3
Finish Complexity
LAST DAY TO DROP


Week 11 Nov 6 Hash Tables 
Hash Tables I
Nov 8
Hash Tables 

Nov 10
Hash Tables
Bit Manipulation

Bits
Hash Tables II
Week 12 Nov 13 Function Pointers
Function Ptrs
Nov 15 More Function Pointers
svn callback code
Assign7

Nov 17 Midterm 3

Review
Week 13 Nov 20
Vector Lab


Nov 22
Thanksgiving - No Class


Nov 24 Thanksgiving - No Class


Week 14 Nov 27 Intro to Trees
Trees I
Nov 29
More Trees plus Recursion
Tree Lab I

Recursion
Toyota UA I
Toyota UA II
Dec 1
Tree Lab II
Trees II

Dec 4


Dec 6
Reading Day


Dec 12
Final Exam 3-5:30pm

Review