COM212: Course Description



Course COM212 Data Structures:

MW 11:50-1:05 Fanning 301 / Unix Lab

Professor:

Gary Parker
Winthrop Annex (ext. 5208)
parker@conncoll.edu

Text and Software:

Text: Java Concepts, 5th Edition, by Cay Horstmann
Software: Our primary Java programming environment will be Sun Microsystems JDK 6, which will be available on all Sparc workstations and Linux PCs and can be downloaded for use on Windows PCs from: http://java.sun.com/javase/downloads
For program editing we will primarily use Emacs, which will be installed on all Sparc workstations and Linux PCs. Emacs can be obtained from GNU Software at: ftp://ftp.gnu.org/gnu/emacs/
Web Page: http://cs.conncoll.edu/com212

Office Hours:

Winthrop Annex: Monday, Wednesday: 10:00-11:00, 4:00-5:30

Course Description:

Abstract data structures such as lists, stacks, queues and trees will be studied as well as programming techniques using recursion and pointers. Principles of software design will be explored by constructing major programs.

Discussion:

This class will be oriented toward the thoughtful use of data structures to solve problems in programming. It will be taught in three parts. In the first part of the course, which will be primarily in the classroom, several abstract data types will be introduced using problem solving learning techniques. You will be presented with the desired properties for abstract data types and will be expected to come up with theoretical solutions. In the second part of the course, which will have heavy emphasis on work in the lab, you will learn and write Java class descriptions to implement many of the data structures previously introduced. The last part of the course, also having significant lab time, will concentrate on software engineering and expanding your Java programming abilities. A group project will allow students to experience how to plan and coordinate larger programming assignments.


Grading:

Exam
20%
Data Structures Notebook
15%
Homework
+/- 10%
Programming Assignments
35%
Class Participation
10%
Project
20%

Exam: There will be an exam covering data structures and recursion. Preparation for the test can be accomplished by doing the homework and participating in the discussions during the first part of the course and writing programs for each of the data structures during the second part.
Data Structures Notebook: To assist you in putting together a few key issues concerning data structures, you will complete a data structures notebook. In addition to giving an explanation for each of the data structures covered, you are to answer these two questions:
1. What are some common applications for this data structure and what makes it particularly applicable to these applications?
2. How do the alternative implementations of this data structure compare with respect to performance?
These issues will be covered in class, but can be overlooked because of the emphasis on the nature and implementation of each data structure. The writing of this notebook is to be done individually, but you are free to discuss it with others (students, teaching assistants, professors) as desired. This data structures notebook is due during the next class after the exam. I'm assuming that everyone will have these all correct since the answers will be covered in class and you can converse with others concerning them. The point is to force you to make sure that the data structures concepts are clear in your mind and give you a short summary of data structures for future use.
Homework: There will be homework due for every class during the first part of the course. It should take about 2 to 3 hours of thought and 30 minutes to write down. Homework is to be done individually. The emphasis will be on the thoughtfulness of your response rather than its correctness. It is essential that HWs be turned in on time.
Programming Assignments: Several small assignments (one per topic) will be due during the second part of the course. The programming assignments can be done in teams of up to two students.
Class Participation: A large part of the learning experience will come from discussion of problems presented in class and from the homework. The participation grade will be determined by your participation in these discussions. The best way to get the maximum points is to come to every class ready to present/defend your ideas from the homework due that day. Good ways to reduce your participation grade include skipping class, consistently coming late, causing distractions in the classroom, and not paying attention.
Project: There will be a team project (up to 4 students). It will require an abstract data structure implementation for a given problem. In addition, it will require file storage capability and an interface to make it user friendly. Projects will be done in groups and presented to the instructor upon completion.

Note:

If you have a physical or mental disability, either hidden or visible, which may require classroom, test-taking, or other reasonable modifications, please see me as soon as possible. If you have not already done so, please be sure to register with Susan L. Duques, Ph.D., in the Office of Student Disability Services, at Extension 5428.
 
 

Return to the COM212 Home Page