CS206: Data Structures, Bryn Mawr College
Douglas Blank
Computer Science Department
Spring 2013
Overview
This course provides an introduction to the fundamental algorithms and
data structures of computer science: sorting, searching, recursion,
lists, stacks, queues, trees, graphs, and dictionaries. It also
provides an introduction to the analysis of algorithms. Prerequisite:
CMSC 205 or 110, or permission of instructor.
General Information
Course URL: cs.brynmawr.edu/cs206
Instructor: Douglas Blank, 248 Park Science Building, 526-6501
Email: dblank (at) cs (dot) brynmawr (dot) edu
Web: cs.brynmawr.edu/~dblank
Office hours: Monday and Wednesday, 1-2pm and by appointment
Course Meetings: Tues and Thursdays, 2:15-3:45pm
Lab: Park Science Building, room 349
On-line course materials: moodle.brynmawr.edu
Lab Assistants:
- Sundays, 3-5 PM (Maggie)
- Mondays 7-9 PM (Esther)
- Tuesdays 8-10 PM (Esther)
- Thursdays 4-6 PM (Maggie)
Texts
Software
We will be using the language Java for
this course. In addition, we will be using a series of environments
for accessing Java, including:
We will be doing much of our work in Linux, and will gain
understanding of the underlying mechanisms of compiling Java. For
this, you will need a Linux account that I will provide. You (and the
world) will also be able to access Java applets that you will write
through a computer science computer (TBA).
Schedule (approximate, schedule may change)
Week | Dates | Topic | Assignment |
1 |
Tue 01/22/2013, Thu 01/24/2013 |
Introduction, Lecture 1
Variables, Functions, and Loops, Lecture 2
|
Assignment #1 |
2 |
Tue 01/29/2013, Thu 01/31/2013 |
Object-Oriented Programming, Lecture 3
Finding things, Lecture 4
| Assignment #2 |
3 |
Tue 02/05/2013, Thu 02/07/2013 |
Binary Trees, Lecture 5 |
Assignment #3 |
4 |
Tue 02/12/2013, Thu 02/14/2013 |
Review, and introduction to Graphs, Interactive Fiction |
Assignment #4: type in game code, and design a game |
5 |
Tue 02/19/2013, Thu 02/21/2013 |
Abstractions, Lecture 6. Arrays and HashMap. |
Assignment #5: remove linked list data structures from game, and allow loading a game from a file |
6 |
Tue 02/26/2013, Thu 02/28/2013 |
Files, Exceptions, and Abstractions: Lecture 7 Sorting Algorithms |
Finish Assignment #5 Sample Code from class, #1 |
7 |
Tue 03/05/2013, Thu 03/07/2013 |
Games, Review and Midterm |
8 |
Tue 03/12/2013, Thu 03/14/2013 |
Spring Break! |
9 |
Tue 03/19/2013, Thu 03/21/2013 |
Graphics, Applets, Unix, the Web, Compiling Java |
Assignment #7: Turn your game into an applet, like this. Additional details: Moving your game to the web. Also, if you have trouble with appletviewer, see these hints. |
10 |
Tue 03/26/2013, Thu 03/28/2013 |
Applets, a review, Java Security |
Event-driven algorithms; Sample Applet |
11 |
Tue 04/02/2013, Thu 04/04/2013 |
Final Text Adventure Games
- http://bubo.brynmawr.edu/~amastriann/
- http://bubo.brynmawr.edu/~bklewis/
- http://bubo.brynmawr.edu/~blin/games
- http://bubo.brynmawr.edu/~ebaelenkin/
- http://bubo.brynmawr.edu/~eschroeter
- http://bubo.brynmawr.edu/~ewilliam03/game.html
- http://bubo.brynmawr.edu/~jcoles01/Slendergame.html
- http://bubo.brynmawr.edu/~jserota/index.html
- http://bubo.brynmawr.edu/~kholladay/index.html
- http://bubo.brynmawr.edu/~kkury/index.html
- http://bubo.brynmawr.edu/~kshrestha/play.html
- http://bubo.brynmawr.edu/~kvenugopal/index.html
- http://bubo.brynmawr.edu/~lobrien/GameApplet.html
- http://bubo.brynmawr.edu/~mkasahun/index.html
- http://bubo.brynmawr.edu/~mneuburger/game/textadventure.html
- http://bubo.brynmawr.edu/~plu/public.html
- http://bubo.brynmawr.edu/~yhuang/index
- http://bubo.brynmawr.edu/~yzhang03/index.html
Stacks and Queues (Lafore, chapter 4)
Workflow
|
Assignment #8 |
12 |
Tue 04/09/2013, Thu 04/11/2013 |
Stacks, Queues, and Deques (Part 1)
Stacks, Queues, and Deques (Part 2) |
ExprCompute.java - example code using a Stack to implement an postfix expression evaluator
Node.java
DoubleLinkList.java
|
13 |
Tue 04/16/2013, Thu 04/18/2013 |
Graph Theory
Designing Objects
|
Chapter 13; Work on project |
14 |
Tue 04/23/2013, Thu 04/25/2013 |
- Implementing and Extending Class Hierarchies
- Inheritance, Abstractions, and Interfaces
|
Work on project |
15 |
Tue 04/30/2013, Thu 05/02/2013 |
- Common Errors
- Review
|
Projects |
Other dates of interest in Spring 2013:
Classes Begin |
Tuesday, January 22, 2013 |
PE Classes Begin |
Monday, January 28, 2013 |
Last day to drop a fifth class |
Friday, February 8, 2013 |
Last day to sign up for Credit/No Credit for Semester classes |
Friday, March 1, 2013 |
Spring Vacation Begins (after last class) |
Friday, March 8, 2013 |
Spring Vacation Ends (at 8:00am) |
Monday, March 18, 2013 |
Preregistration begins |
Monday, April 8, 2013 |
Preregistration ends |
Friday, April 19, 2013 |
Last Day of Classes |
Friday, May 3, 2013 |
Review Period Starts |
Saturday, May 4, 2013 |
End of Review Period |
Monday, May 6, 2013 |
Examination Period (Start) |
Tuesday, May 7, 2013 |
Final examinations end for seniors (@ 12:30pm) |
Saturday, May 11, 2013 |
Examination Period (Ends at 12:30pm) |
Friday, May 17, 2013 |
Commencement | Saturday, May 18, 2013 |
Grading
Final grades will be calculated as a weighted average of all grades
according to the following weights:
Written work: 50%
Midterm Exam: 20%
Final Exam: 20%
Project: 10%
dblank (at) cs (dot) brynmawr (dot) edu
|