Mon - December 18, 2006

CISC-235 Course Information 


Home page
This page provides information on the course. It tells you about the instructors, teaching assistants, course schedule, and method of grading.
It also contains a course description, textbook title, and important dates for our quizzes.

WebCT
There is a WebCT page set up for this course. The WebCT page will function as a
means for you to keep track of your grades and for a class discussion bulletin board.

Course Instructor
David Rappaport
GOODWIN HALL Room 532
E-MAIL: daverATcs.queensu.ca
Office Hours: Please see me after class, or arrange a meeting through e-mail.

Tutorials
There will be two hour tutorials every week in Jackson Hall JAC-302.
The tutorial schedule is listed below, along with the TA that is responsible for it.

Tutorial update: There will be no Monday tutorial. I would also like to move students from tutorial A on Thursday morning. If this causes a scheduling conflict then please let me know. The Thursday morning tutorial has not been cancelled yet. NOTE: I have shuffled the TA responsibilities so if you printed or saved the old list make sure you update it.


Course Teaching Assistants
Yurai Nunez (email: yuraiATcs.queensu.ca) TUT A Thursday 8:30-10:30
Fengpeng Dong (email: dongATcs.queensu.ca) TUT B Tuesday 2:30-4:30
Michael Xiao TUT C Monday 8:30-10:30 CANCELLED
Henry Xiao (email: xiaoATcs.queensu.ca) TUT D Thursday 2:30-4:30

In lieu of the tutorial Michael Xiao (e-mail: huaxiaoATcs.queensu.ca) will hold office hours on Monday afternoons from 2:00-3:30 in room 304, Walter Light Hall.


Course Description
Data structures provide an important and fundamental view of the process of algorithm and program design. Quite often the choice of a data structure influences the logic of a program very deeply. Thus, a rich palette of data structure knowledge equips the programmer, algorithms designer, and systems analysts to make informed decisions. In this course we will cover a standard collection of fundamental data structures.

The following quote is taken from a Data Structures book by T.A. Standish:

"While an operating system course might delve deeply into concurrent programming in Java, and a computer graphics course might delve deeply into how to write graphical user interfaces using the Java AWT, the basic mission of a data structures course is to convey the important ideas about data structures and algorithms that every literate computer scientist should know about. To a large extent, these key ideas can be conveyed using any contemporary programming language as a vehicle."

This term C++ is the language that will be used in CISC-235.The programming assignments are not intended to mimic the activities of an application programmer. Rather, the purpose of the assignments is to support the data structures material, and provide a hands on way to discover how the data structures work, and how they are used.



Data Structures Text (required)
Adam Drozdek Data structures and algorithms in C++, Course Technology 2005 (3rd ed.)

Programs to support the text are available from the author's web-site.

C++ Text (optional)
Walter Savitch Absolute C++, Addison-Wesley Pub. Co., 2005 (2nd Edition)
This is the book that was used in CISC-124, so most of you should have it. I will not lecture on any of the material in this book. Nevertheless, you should find it useful for doing the programming excercises. There are lots of goodies available online for this book.

Course Outline (tentative)
I intend to cover most of the topics listed below. I listed the topics I intend to cover with the most relevant chapter in our text. This does not mean that you have to read all of the material listed below, nor does it mean that I will cover the topics in the given order. This is just a preliminary road map to give you an idea of where this course is going.
A detailed reading list will be updated every week.

Complexity Analysis Chapter 2
Stacks and Queues Chapter 4
Recursion Chapter 5
Binary Trees Chapter 6
Multiway Trees Chapter 7
Graphs Chapter 8
Sorting Chapter 9
Hashing Chapter 10

Some applications I may cover this term are found in the following chapters.

Data Compression Chapter 11
String Matching Chapter 13

Course Evaluation

C++ programming 10%
There will be 10 short programs worth 1% each. Programs will be assigned every week. Students must demonstrate a working program to the TA at their designated tutorial to obtain the point credit.

For C++ programming, we will use the same environment as in CISC-124. That is, we will be using the Jens' file editor together with GCC. This environment is installed in the CASLab for your use, and can also be downloaded for home use:
• Jens and GCC can be downloaded from Packman
• There is some limited documentation here
The Jens/GCC combination is unfortunately only available for Windows. If you are a Linux user, GCC is probably already installed on your system and can be used from the command line. You may find this Linux intro page to be helpful for getting started. If you are a Mac user you can obtain Xcode directly from Apple. Xcode includes a GCC compiler.

The teaching assistants will check your work using GCC, so you should use this as well. If you do use a different C++ compiler, be sure to test all of your assignments with GCC before submitting them.

Data Structures 90%
There will be weekly assigned data structures homework. No homework will be handed in, rather, students will write quizzes that examine their knowledge of the assigned problems There will be 5 quizzes in all, each worth 18%. Quiz dates will be Monday January 29, Wednesday February 14, Wednesday March 7, Wednesday March 21, and Wednesday April 4. All quizzes will be written in class.  

Posted at 03:30 PM    


©