Saint Marys University
Department of Mathematics and Computing Science
CSC 341.1: Data Structures and Software Engineering I
FALL 1998-99
Instructor: Dr. Pawan Lingras
Class time: Monday, Wednesday, Friday 12:30-1:20 p.m.
Lab time: Tuesday and Thursday, 11:30 a.m.-12:45 p.m. (Section A)/1:00-2:15 p.m. (Section B)
Brief Description
This is the first part of a two-part introduction to Data Structures and associated algorithms. Students will build on the programming skills developed in CSC 226/227 (which are pre-requisites for this course) through a systematic study of some of the fundamental computer science concepts. The course will introduce the basis for evaluating the algorithms, followed by a study of various data structures and related operations. The data structures that will be studied in this course include contiguous and linked lists, ordered lists, stacks, and queues. The operations on these data structures include creation, destruction, insertion, deletions, searching, and sorting. The students will compare the pros and cons of using these data structures. The programming will be done using C++.
Textbook
Topics
Week |
Topics |
Chapter |
1 |
Introduction. Review of C++ | 1 |
2 |
Templates, protections, operator overloading | 1 |
3 |
Program performance | 2 |
4 |
Mathematical Analysis of Algorithms | 2 |
5 |
Linear list - contiguous representation | 3 |
6 |
Linear list - linked representation | 3 |
7 |
Linear list continued, Midterm | 3 |
8 |
Arrays and Matrices | 4 |
9 |
Arrays and Matrices | 4 |
10 |
Stacks | 5 |
11 |
Stacks, Queues | 5, 6 |
12 |
Queues | 6 |
Each student registered in the course should also be registered for a lab section. There are two 1.5-hour lab-periods every week for each lab section. The lab work is designed to facilitate the programming aspects of the course. Typically first period will be used to introduce a new concept and related programs. Students will try out these programs and will modify them during the next lab period. The lab assignments will usually be related to the class assignment assigned for the upcoming week. They are not designed in advance. Students' needs for information and hands-on-experience will form the basis for the lab assignments. Detailed instructions for the second period (Thursday) of the week will appear on this web site after the first period (Tuesday evening).
Tentative Lab Schedule
Week |
Topics |
Chapter |
1 |
Introduction to the environment. Accessing web for downloading information from the instructor and the book author. Use of compiler and running sample programs. | 1 |
2 |
Templates of functions, classes and operator overloading. | 1 |
3 |
Run-time analysis of programs | 2 |
4 |
Mathematical Notations | 2 |
5 |
Working with the list type - contiguous representation | 3 |
6 |
consultation for the midterm | 1-3 |
7 |
Working with the list type - linked representation | 3 |
8 |
Arrays and matrices | 4 |
9 |
Stacks | 5 |
10 |
Queues | 6 |
11 |
Review of the programming skills | 1-6 |
12 |
Review and consultation for the final examination | 1-6 |
Evaluation scheme
Method of Evaluation |
Marks |
In-lab Assignments | 15 |
Class Assignments | 20 |
Midterm | 25 |
Final | 40 |
Total |
100 |
Assignments
Assignment 1 (Due Date: September 23,1998)
Assignment 2 (Due Date: October 7,1998)
Assignment 3 (Due Date: October 21,1998)
Assignment 4 (Due Date: November 4,1998)
Assignment 5 (Due Date: November 18,1998)
Assignment 6 (Due Date: November 30,1998)
Midterm
The midterm examination will be held on Monday, October 19, 1998. A link to the guide for the midterm will be available here.
Final Examination
The final examination will be scheduled by the Registrars office during the examination period from December 2-17, 1998. A link to the guide for the final examination will be available here.