CS206 Data Structures
This is the homepage for CS206 Data Structures Fall 2003 at Bryn Mawr College, Philadelphia, PA.
This course is the introduction to the fundamental algorithms and data structures of computer science: sorting, searching, recursion, backtrack search; lists, stacks, queues, trees, graphs, dictionaries. It also introduces the student to the analysis of algorithms.
General Information
Instructor: Douglas Blank, 246B Park Hall, (610)526-6501
Email: dblank@cs.brynmawr.edu
Web sites:
| Instructor: | http://dangermouse.brynmawr.edu |
| Edventure: | http://edventure.brynmawr.edu |
| Notes (this page): | http://wiki.cs.brynmawr.edu/?CS206 |
Teaching Assistant: Ioana Butoi (ibutoi@brynmawr.edu)
TA Lab Hours: Mon. 8-10 p.m., Tue. 9-11 a.m.
Lecture Hours: Tuesdays & Thursdays, 2:30 p.m. to 4:00 p.m.
Lecture room: Park Science Building, room 338
Laboratory Hours: TBA
CS Laboratory: Park 232 (need access code)
Materials
Texts
Objects First with Java: A Practical Introduction using BlueJ (Latest edition) David J. Barnes & Michael Kölling Prentice Hall / Pearson Education, 2003 ISBN: 0-13-044929-6
Java Structures: Data Structures in Java for the Principled Programmer Second Edition Duane A. Bailey, Williams College McGraw-Hill Publishing ISBN: 0072399090
In addition, you will need a good Java reference. Here are some recommendations:
-
Java in a Nutshell, David Flanagan, O'Reilly Publishers.
-
Java Precisely, Peter Sestoft, MIT Press 2002
Software
We will be using the Java programming language for all laboratory exercises. Software for writing and running Java programs is available on the Linux computers in Room 232. The Linux server (http://bubo.brynmawr.edu/) can be accessed via a terminal session from any networked computer on campus via a SSH client.
Schedule
This schedule may change. Please check here often.
September October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 4 1 1 2 3 4 5 6
7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31
30
| Week/Day | Dates | Topic | Assignment due |
| 1 T | Sep 1 - Sep 5 | Intro | Discuss: What is Data Structures? |
| 1 R | Sep 1 - Sep 5 | Review | Introduction to Bluej |
|
|
|||
| 2 T | Sep 8 - Sep 12 | Review | Discuss Bluej: Chapter 1 |
| 2 R | Sep 8 - Sep 12 | Class definitions | Discuss Bluej: Chapter 2.1 - 2.4. Turn in ex. 2.1 - 2.8 |
| 3 T | Sep 15 - Sep 19 | Class definitions | Discuss Bluej: Chapter 2.5 - 2.17 |
| 3 R | Sep 15 - Sep 19 | Java: Review Java syntax | Ticket Machine |
| 4 T | Sep 22 - Sep 26 | Objects | Bottles of Beer on the Wall, Smallest |
| 4 R | Sep 22 - Sep 26 | Streams | Input/Output, Try/Catch (see also Chapter BJ#11) |
| 5 T | Sep 29 - Oct 3 | Linked List | Discuss Chapter JS#8, Linked Lists |
| 5 R | Sep 29 - Oct 3 | Unique List | CS206:Project #1 due, linked list |
| 6 T | Oct 6 - Oct 10 | Analysis | Discuss JS#4 |
| 6 R | Oct 6 - Oct 10 | Analysis | Discuss JS#4 |
| 7 T | Oct 13 - Oct 17 | Fall Break | |
| 7 R | Oct 13 - Oct 17 | Fall Break | |
| 8 T | Oct 20 - Oct 24 | Graphs: class definition | CS206:Project #2 due, unique list; Discuss BJ#7; assign game |
| 8 R | Oct 20 - Oct 24 | Graphs: traversals | CS110Review#1 |
| 9 T | Oct 27 - Oct 31 | Data/Program Abstractions | CS206AdventureGame |
| 9 R | Oct 27 - Oct 31 | File IO, Hashmaps, command-line args | Project #3 due (basic world) |
| 10 T | Nov 3 - Nov 7 | Java built-in data structures; more sample recursion | Exam #1 Due |
| 10 R | Nov 3 - Nov 7 | Finding shortest path; | Project #4 due (data file world) |
| 11 T | Nov 10 - Nov 14 | In class writing assignment: something interesting | |
| 11 R | Nov 10 - Nov 14 | Turn in description of handling objects | |
| 12 T | Nov 17 - Nov 21 | Review CS110Review#2 | |
| 12 R | Nov 17 - Nov 21 | Exam #2, in class | |
| 13 T | Nov 24 - Nov 28 | Tree Processing | |
| 13 R | Nov 24 - Nov 28 | Thanksgiving Break | |
| 14 T | Dec 1 - Dec 5 | Trees | |
| 14 R | Dec 1 - Dec 5 | Trees | |
| 15 T | Dec 8 - Dec 12 | Review and Presentations | CS110ReviewFinal |
| 15 R | Dec 8 - Dec 12 | Review and Presentations | |
| Exams | Dec 15 - Dec 19 | ||
Grading
All work will receive a grade between 0.0 and 4.0 (typically the Bryn Mawr scale 4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7, 1.3, 1.0, or 0.0 will be used). At the end of the semester, final grades will be calculated as an average of all grades according to the following weights:
-
Lab homework: 55%
-
Exams: 45% (15% each)
Unless explicitly specified, all assignments are due at the beginning of the class on the date due. No credit will be awarded for any late work.
For all programming exercises, hand in a printout of your Java program file along with a printout of the screen output of your program showing an example run. On the top of every Java program include the following comment header:
/* Name: Your Name Exercise: Exercise# Date: Date assigned Purpose: A short description of the program/exercise. */
Links
Code Samples
-
Sample1 - Hello, Eliza
-
Sample1b - Getting input from users
-
Sample2 - Notes on Chapter #1 of "Data Structures and Algorithms in Java"
-
Sample3 - Try/Catch and timing
-
Sample4 - Random initialization, passing in args, timing
-
Sample5 - Random array plus Bubble Sorting
-
Sample6 - Open file; read chars
-
Sample7 - A buffer for reading in chars, converting to String
-
Sample8 - A sample hashtable
-
Sample9 - Putting file, hash, and getting a word together
