CS 212: Data Structures and Algorithms II

Spring 2001

Course Syllabus

Course Objectives

In this course, students will review fundamental data structures and many common problems and algorithms at a level about the programming level. Emphasis will be placed on matching the appropriate data structures and algorithms to application problems. Analysis of algorithms is crucial to making proper selections.

In this course, students will study

Textbook

Thomas A. Standish, Data Structures, Algorithms & Software Principles in C

Class

Computer Science Students. Sunday, Tuesday 12:30 - 2:00.

 

Prerequisite

Passing grade in CS211 Data Structures and Algorithms I

 

Instructor

Dr. Badie Sartawi, sartawi@science.alquds.edu

Office: Virtual and by appointment.

Communication: A class mailing list cs212@science.alquds.edu will be created for announcements and distribution of notes, assignments, etc.

 

Grading

30% homeworks & review exams, 15% 1st hour Exam 1, 15% 2nd hour exam, 40% final exam (The final will be all-inclusive).

 

Home works, Labs, Programming Projects

There will be reading assignments, Problem solving homeworks/labs/programming projects over the course of the semester, each contributing % of your final grade. On each homework assignment, only a subset of the problems may be graded.

The best way to learn the material is by solving problems. You are encouraged to work in groups of two or three; the best way to understand the subtleties of the homework problems is to argue about the answers. Each of you should look at all the problems independently, and not just divide the problems up each time. Don't be a leech and let your partners do all the work; unless you learn how to solve problems, I promise that you will get burned on the exams and thus for your final grade.

For the written portion of the homework, only one solution should be turned in, with the partners alternating who writes it up. The scribe for each assignment must label himself or herself as such. Unless announced otherwise in class, any solution to a part of a homework problem that takes more than one side of a sheet of paper will not be graded. This is to save you the ordeal of trying to impress with volume instead of quality.

Some homeworks will have a problem that requires a program to be coded. These programs must be written individually; you may not share source code even within your group. The programming portion of the assignment must be e-mailed to me before the class in which the homework is due.

I understand that everyone gets into a time bind now and then, and that accidents and troubles befall even the most dedicated student. Thus every student will get one free extension on homework for up to a week without a late penalty. You do not have to ask for this - just write that you are using your free extension when you turn it in. Don't waste this extension or feel obligated to use it, since you will get a very dirty look if try to get another one even with a good excuse.

Re-grades: Requests for re-grading can go in either direction; I'm often quite generous when I first grade something, so please be sure that I did make a mistake before you submit your request. On the other hand, I'll always be willing to explain to you how to do any problems that you have trouble with. All requests for re-grades must come within one week of the return of the graded item. Thereafter, no requests will be considered, so be sure to pick up your returned homeworks and exams on time.

 

Grading

Your scores on the homeworks and exams as described above shall determine your numeric grade. Beyond the grade you receive on your homeworks and exams, several other factors can affect your final grade.

Extra Credit: Throughout the course, you will have a variety of opportunities to receive extra credit points: homeworks will have difficult questions labeled as extra credit, exams will contain extra questions on special topics that I cover in class, and in general I reserve the right to reward particularly clever answers with extra credit points. Extra credit is not required, and I will construct the grade curve ignoring extra-credit points. Once grades are assigned, I will consider the extra credit to boost grades up one rank. If your grade is borderline, its always good to have some extra credit to sway my decision to your advantage.

 

Participation

Simply put, those who participate frequently in class provide me with another source of information as to how well they are learning the material, and how much effort they are putting into the course. I can use this information to help counterbalance a difficulty with exams or homeworks. So please, lets have an active class! Class participation will never harm your grade; always ask any questions you may have about the material.

 

Academic Dishonesty

Because a primary goal of the course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved, and will be grounds for receiving a failing grade.

 

Tentative Class Schedule, Fall 2000

 

Date Class Reading Topic
  1-7
Review
Chapter 1
Chapter 6
Chapter 2

Chapter 7
Chapter 7

Chapter 3
Chapter 9


CS211: Data Structures & Algorithm I
Introduction
Introduction to Analysis of Algorithms
Linked Data Representation
Quiz 1
Linear Data Structures - Stacks and Queues
Lists, Strings, and Dynamic Memory Allocation
Quiz 2
Introduction to Recursion
Trees
Quiz 3

  8 - 9 Chapter 4 Modularity and Data Abstraction
  10-11 Chapter 5 Introduction to Software Engineering Concepts
  12-16 Chapter 10 Graphs
  17   1st hour exam
  18-20 Chapter 11 Hashing and the Table ADT
  21-22 Chapter 12 External Collection of Data
  23-26 Chapter 13 Sorting
  27   2nd hour exam
  28-30 Chapter 15 Object-Oriented Programming

 



copyright © 1999 - Computer Science Department
Al-Quds University
- Jerusalem