CPSC 211 (Sec 201-203): Data Structures and Implementations, Honors
Spring 2004


[Announcements] [Syllabus] [Calendar] [Programs] [Culture Reports] [Useful Links]


Announcements

Back to beginning


Syllabus

Instructor: Prof. Jennifer Welch
Office: 415 H.R. Bright Bldg
Office Hours: Tuesdays 2:00 - 3:30 PM and Fridays 1:30 - 3:00 PM; other times by appointment
Email: welch@cs.tamu.edu
Office Phone: 845-5076
Home Phone: 774-0680 (please don't call after 9:00 PM)

Teaching Assistant: Lidia Onica
Office: 514E H.R. Bright Bldg
Office Hours: Mondays and Wednesdays 1:00 - 2:30 PM (*updated 2/2*); other times by appointment
Email: lonica@cs.tamu.edu
Office Phone: 862-3411

Peer Teacher: Daniel Delwood
Office Hours:

Email: ddelwood@tamu.edu

Peer Teacher: Jim Griffin
Office Hours:

Email: jegriffin@neo.tamu.edu

Prerequisite: CPSC 111, Computer Science Concepts and Programming, and honors eligibility.

Lecture: Mondays, Wednesdays, Fridays, 10:20 - 11:10 AM, ZACH 105B.

Labs: All sections meet in HRBB 232.
Section 201: Mondays and Wednesdays 9:00 - 9:50 AM (Daniel)
Section 202: Tuesdays and Thursdays 10:00 - 10:50 PM (Jim)
Section 203: Tuesdays and Thursdays 11:00 - 11:50 PM (Jim)

Textbooks:

  1. Data Structures in Java , Thomas A. Standish, Addison Wesley, 1998.
  2. C By Dissection, Fourth Edition, Al Kelley and Ira Pohl, Addison Wesley, 2001.

Course URL: http://faculty.cs.tamu.edu/welch/teaching/211.s04


Course Overview: The course will cover the basic data structures -- linked lists, priority queues, stacks, FIFO queues, trees, tables -- and their associated algorithms. We will study the performance tradeoffs of different implementations of the data structures. We will continue to use Java and will also introduce C, which will be compared and contrasted with Java, in the context of these data structures. We will also touch on a few more advanced topics that you will meet later in the undergraduate curriculum. Throughout the semester, we will continue the important themes of modularity, information hiding, and good software practice that were introduced in CPSC 111, Computer Science Concepts and Programming.

At the end of the semester you should:

Tentative Schedule: The course will cover the following topics.

week of topic Standish Kelley/Pohl
1/19 Introduction; Java OOP review Chs 1-2, App A-B .
1/26 Linked lists Ch 3 .
2/2 Recursion Ch 4 .
2/9 Abstract data types Ch 5 .
2/16 C basics . Chs 1-6
2/23 Objects and pointers in C . Chs 7-9, 12
3/1 Misc C (strings and file I/O) . Chs 10, 13
3/8 Stacks and queues Ch 6 .
3/15 Spring Break . .
3/22 Lists and dynamic memory allocation Ch 7 .
3/29 Trees Ch 8 .
4/5 Hashing Ch 9 .
4/12 Sorting Ch 10 .
4/19, 4/26, 5/3 Advanced topics . .

Assignments and Grading: All assignments will be announced in class and posted on the web page calendar. If you miss class for any reason, it is your responsibility to find out what assignments you missed.

Your grade will be based on five components:

Some assignments may be done in groups. No more than 20% of your total course grade will be based on group work.

No late assignments will be accepted. There will be no make-up exams or quizzes. Discuss unusual circumstances in advance with the instructor. All excused absences must also be cleared with the instructor.

Course grades will be assigned according to this scale:

percent of total points 90 - 100 80 - 89 70 - 79 60 - 69 < 60
letter grade A B C D F

Collaboration: Discussion of concepts with others is encouraged, but all assignments must be done on your own, unless otherwise instructed. If you use any source other than the text, reference it/him/her, whether it be a person, a book, a solution set, a web page or whatever. You MUST write up the solutions in your own words. Copying is strictly forbidden. Every assignment must be turned in with this cover sheet, which lists all sources you used. More information on academic integrity, plagiarism, etc. is available at the TAMU Plagiarism web site.

University Regulations define scholastic dishonesty to include acquiring answers from any unauthorized source, working with another person when not specifically permitted, observing the work of other students during any exam, providing answers when not specifically authorized to do so, informing any person of the contents of an exam prior to the exam, and failing to credit sources used. Disciplinary actions range from grade penalty to expulsion.

Back to beginning


Calendar

This calendar lists all due dates as they become known for Follow the links to get
Monday Tuesday Wednesday Thursday Friday
1/19
MLK Holiday
1/20
1/21
Introduction
Read Standish Chs 1-2, App A-B
1/22
1/23
Java Review
Quiz 1
1/26
More Java Review
Read Standish Ch 3
1/27
1/28
Linked Lists
Quiz 2
1/29
1/30
Recursion
Read Standish Ch 4
2/2
Recursive Parsing; Priority Queue ADT
2/3
2/4
Generic Priority Queue
Quiz 3
Program 1 due
2/5
Henning Distinguished Lecture
2/6
Intro to C
Read Kelley/Pohl Chs 1-6
2/9
Programming 2 Assignment Discussion
Culture 1 due
Subramanian AWICS Distinguished Lecture
2/10
2/11
More on C
Quiz 4
2/12
2/13
Pointers in C
Read Kelley/Pohl Chs 7-13

Monday Tuesday Wednesday Thursday Friday
2/16
Dynamic Memory Allocation in C
2/17
2/18
Strings in C
Quiz 5
Program 2 due
Golub Distinguished Lecture
2/19
2/20
Stack ADT
Read Standish Ch 6
2/23
Stack Implementations; Queue ADT
2/24
2/25
Queue Implementations; Deq ADT
Quiz 6
2/26
2/27
General Lists
Read Standish Ch 7
Culture 2 due
3/1
More General Lists
3/2
3/3
Review
Program 3 due
Program 4 due
3/4
3/5
Exam 1
3/8
Memory Management
3/9
3/10
Binary Trees
Read Standish Ch 8 (through Sec 11)
Quiz 7
3/11
3/12
Exam 1 Solutions

Monday Tuesday Wednesday Thursday Friday
3/15
Spring Break
3/16
Spring Break
3/17
Spring Break
3/18
Spring Break
3/19
Spring Break
3/22
Binary Heaps
3/23
3/24
Tree Traversals
Quiz 8
Culture 3 due
3/25
3/26
Binary Search Trees
3/29
More Binary Search Trees;
Balanced Search Trees
3/30
3/31
More Balanced Search Trees
Quiz 9
Program 5 due
Program 6 due
(Note new due date)
4/1
4/2
Hashing
4/5
More Hashing
4/6
4/7
Skip Lists
Quiz 10
4/8
4/9
Reading Day - No Class

Monday Tuesday Wednesday Thursday Friday
4/12
Review
Culture 4 due
4/13
4/14
Exam 2
4/15
4/16
Software Engineering
4/19
Files and Databases
4/20
4/21
Artifical Intelligence
4/22
4/23
More Artificial Intelligence
Quiz 11
Program 7 due
(note even newer due date)
Course evaluations
4/26
Tips for Program 8
4/27

4/28
Complexity Theory
4/29
4/30
Computability Theory
Culture 5 due
5/3
Concurrency and Parallelism
Quiz 12
5/4
Attend Friday classes
Last day of classes
5/5
Reading Day - No class
5/6
Reading Day - No class
Program 8 due 5:00 PM
5/7
Finals start
5/10
5/11
FINAL EXAM 8:00 AM - 10:00 PM
5/12
5/13
5/14

Back to beginning


Programs

There is much more to writing a good program than writing a program that compiles and runs. Thus your programs will be graded equally on four components:

Back to beginning


Culture Reports

There is a lot more to Computer Science than you will be exposed to through your normal coursework. The purpose of the CS culture activities is to give you an opportunity to learn about current trends in computing. Keeping up with industry trends and learning to evaluate critically what you read are valuable professional skills.

You are to find, read, and write short reports on five technical papers in computer science journals. Articles in the following two journals are usually at about the right level:

Both are in the library and available on the web. Each article must have been published after May 2003.

Each report is to be one to two pages long, typed, and must include

Attach a photocopy of the original article and the cover page of the journal.

DO NOT PLAGIARIZE! You must write up your summary in your own words. See collaboration policy in syllabus.

Report due dates are indicated in the calendar and are summarized here:

On occasion, a culture assignment may be substituted by attendance at and a report on a Distinguished Lecture. These opportunities are:

Each report is to be one to two pages long, typed, and must include

Back to beginning


Useful Links

Computing-Related at TAMU

Careers and Mentoring

Back to beginning