Saint Mary’s University

Department of Mathematics and Computing Science

CSC 342.2: Data Structures and Software Engineering II

WINTER 1999-2000

Note: I am going to be in Washington D.C. for a conference from Jan 8th to 13th. There will be no classes for CSC 342 during that time. There will be a makeup class on Friday, Jan 14th immediately after the regular class.

Instructor: Dr. Pawan Lingras

Class time: Monday, Wednesday, Friday 1:30-2: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)

Link to Calendar Description

Brief Description

This is the second part of a two-part introduction to Data Structures and associated algorithms. Students will build on the programming skills developed in CSC 226/227 and CSC 341 (which are pre-requisites for this course) through a systematic study of some of the fundamental computer science concepts. The course will use the basis for evaluating the algorithms, established in CSC 341 to continue the study of various data structures and related operations. The data structures that will be studied in this course include . 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

Sahni, S. (1998) The Data Structures, Algorithms and Applications in C++, WCB McGraw-Hill, Toronto, First edition.

Topics

Week

Topics

Chapter

1

Introduction to Standard template library
Recursion, recursion trees, time analysis of recursive functions

1.2.6
14.3

2

Review of Merge and Quick sorts and their time requirements

14.4
14.2

3

Hash Tables

7

4

Hash Tables (continued)

7

5

Binary and other trees

8

6

Binary and other trees (continued)

8

7

Heap sort

9

8

Binary Search Tree

11

9

AVL Tree, B-Tree

11

10

Graphs

12

11

Graphs (continued)

12

12

Greedy method, Divide and conquer

13, 14

Laboratory Work

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

2

Sorting

1

3

Merge sort (Assignment 1)

14.2

4

Hash Tables

7

5

Hash Tables (Assignment 2)

7

6

Binary and other trees

8

7

Binary and other trees (Assignment 3)

8

8

Midterm review

9

9

Binary Search Tree

11

10

AVL Tree, B-Tree

11

11

Graphs

12

12

Graphs (continued)

12

13

Final Review

NA

 

Evaluation scheme

Method of Evaluation

Marks

In-lab Assignments

10

Class Assignments

18

In-class quizzes (approx. one per week)

10

Midterm

22

Final

40

Total

100

 

Assignments

Assignment 1 (Due Date: January 20, 2000)

Assignment 2 (Due Date: February 3, 2000)

Assignment 3 (Due Date: February 17, 2000)

Assignment 4 (Due Date: March 9, 2000)

Assignment 5 (Due Date: March 23, 2000)

Assignment 6 (Due Date: April 6, 2000)

Midterm

The midterm examination will be held on Monday, March 6, 2000. A link to the guide for the midterm will be available here.

Final Examination

The final examination will be scheduled by the Registrar’s office during the examination period from April 8-26, 2000. A link to the guide for the final examination will be available here.