Loyola College in Maryland

CS 301 - Data Structures and Algorithms I
Fall 2003


Loyola College > Department of Computer Science > CS 301
Homework Assignments | Programming Projects | Examples | Lectures | Reference Information

News

12/9/2003: The practice final is available.

12/9/2003: If you need help with removing non-alpha-numeric characters for the beginning and end of strings, code is now available in the project description for Programming Assignment 6

11/4/2003: The description of Programming Assignment 4 has been updated to include an example of a sample run.

11/3/2003: The due date for Programming Assignment 4 has been changed to Friday, November 7.

10/21/2003: The first part of Programming Assignment 4 is available.

10/3/2003: Homework 8 will not be due until Wednesday because the final midterm question about Binary Search will be completed in class on Monday.

9/26/2003: Programming Assignment 3 is available.

9/18/2003: Class has been cancelled for tomorrow. Please use any extra time to begin work on Programming Assignment 2.

9/9/2003: Practice 1 is available. Here are some more problems on memory addresses. I recommend you go over these problems if you are still unsure about addresses. I will post the answers in a few days.

9/9/2003: Homework 2 is available. Due 9/12/03.

9/8/2003: Office hours for this Friday only will be 10-11.

9/7/2003: Homework 1 is available. Due 9/10/03.

9/5/2003: Please note my office hours have changed.

9/5/2003: Please look at the Reference Information where I have added a link to the page to download putty which will enable you to access the linux machines from your PCs.

9/5/2003: Programming assignment 1 is available. Please look it over before Monday and come to class with questions.


Instructor: Dr. Dawn Lawrie
Office: DS 125b
Work Phone: (410)617-2140
Office Hours: M 12:00-1:00, T 10:00-12:00, W 10:00-11:00, F 1:00-2:00
e-mail: lawrie<at>cs<dot>loyola<dot>edu

Course Home Page: http://www.cs.loyola.edu/~lawrie/CS301/F03/index.html

Class Meeting: Lecture MWF 9-9:50 in KH 006

Prerequisite: CS 202
Corequisite: CS/MA 295

Required Text: C++ plus Data Structures (3rd ed.) by Dale and Teague
Optional Text: LINUX Desk Reference (2nd ed.) by Hawkins (not in the bookstore)

The C Programming Language (2nd ed.) by Kernighan and Ritchie

Course Description:
How does a search engine process a query and return results in less than a second? In this course you will learn the answer to this question through the exploration of methods of storing data using data structures. We will design and build these data structures using an object-oriented approach and the C++ programming language. We will also analyze the algorithms for efficiency in order to understand why the choice of a particular data structure is such an important decision in the design of software, especially for search engines. This course also introduces you to a UNIX-based platform for programming.

Specific Educational Objectives of the Course:

Conduct of the Course:
Lectures will be used to introduce, explain, and practice using UNIX, new features of C++, and new data structures and algorithms. Reading from the textbook and handouts will enhance your understanding of those lectures. Daily homework assignments (not necessarily done at a computer) will reinforce the concepts discussed in lecture. Those concepts will be put into use in programming projects. Two midterm exams and a final exam along with homework assignments and programming projects will be used to evaluate students’ progress.

Academic Integrity:
Loyola College Honor Code Statement:

“The Honor Code stats that all students of the Loyola Community have been equally entrusted by their peers to conduct themselves honestly on all academic assignments.

The students of this College understand that having collective and individual responsibility for the ethical welfare of their peers exemplifies a commitment to the community. Students who submit materials that are products of their own minds demonstrate respect for themselves and the community in which they study.

All outside resources or information should be clearly acknowledged. If there is any doubt or question regarding the use and documentation of outside sources for academic assignments, your instructor should be consulted. Any violations of the Honor Code will be handled by the Honor Council.”

The Honor Code as it pertains to this class: All designs and code used for programming projects should be the work of only the student submitting the project. Work on exams should be solely the work of the student whose name appears at the top of the exam.

Student Athletes:
If you are a student athlete, please provide me with your travel and game schedule indicating when you will need to miss class to participate in athletic events. While travel for athletics is an excused absence, you will need to make up any missed work.

Learning Disabilities: To request academic accommodations due to a disability, please contact the Disability Support Services Office at (410)617-2062. If you have a letter from their office indicating that you have a disability which requires academic accommodations, please present the letter to me so we can discuss the accommodations that you might need in this class.

Grading:

Final Grade Distribution:
Final letter grades will be no worse that those in the following table.

A

A-

B+

B

B-

C+

C

C-

D+

D

93%

90%

87%

83%

80%

77%

73%

70%

67%

60%

Course Outline of Class Lectures:
Week Number
Date (No. classes)
Topics Text Reference
9/3-9/5 (2)
  • Welcome and course orientation; Review of software engineering principles; Introduction to Unix/Linux (Lecture Notes)
  • Comparison of C++ and Java; Editing, compiling, and running a simple C++ program in Unix; Discussion of PA 1(Lecture Notes)
Chap 1

EMACS handout
2 9/8-9/12 (3)
Chap2
3 9/15-9/19 (3) Chap 3
4 9/22-9/26 (3)

Chap 4
5 9/29-10/3 (3)
6 10/6-10/10 (3)
Chap5
7 10/13-10/15 (2) Chap 5
8 10/20-10/24 (3)
Chap 6
9 10/27-10/31 (3) Chap 7
10 11/3-11/7 (3) Chap 8
11 11/10-11/14 (3)

Chap 9
12 11/17-11/21 (3)
Chap 10
13 11/24 (1)
14 12/1-12/5 (3) Chap 9

Chap 10
15 12/8-12/10 (2)
  • Sets and Radix Sort
  • Make/Shell Scripts
16 12/19
  • Final Exam

Midterm Exams: Friday, October 3 and Friday, November 14
Final Exam: Friday, December 19

Department Picnic: Tuesday, September 16, 11-1 outside Donnelly Science near the Chapel