Saint Mary’s 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)

Link to Calendar Description

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

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

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

 

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

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 Registrar’s office during the examination period from December 2-17, 1998. A link to the guide for the final examination will be available here.