CS 250: Data Structures

Course Description

This course will cover the basic concepts and techniques of data structures and algorithms to manipulate them, in order to be able to compare the efficiency of various operations that you will find in computer programs. C++  will be used as the programming language. After a review of basic C++ syntax and class concepts in object-oriented programming, the course will discuss such topics as abstract data type (ADT) and their implementations of vector, stack queue, linked list, and trees. Techniques for analyzing data structures and algorithm efficiencies will be introduced in the early part of the course. You should have a programming experience with C++, or similar compiled programming language.

The format of the class will include a combination of lectures, programming exercises, programming demonstrations, and periodic quizzes on your readings.

Course Objectives

The course is intended to help the students to: 

  • Understand the purpose and meaning of the following basic data structures: vectors, stacks, queues, priority queues, binary trees, and hash tables
  • Implement these data structures in C++
  • Implement and test basic operations associated with these data structures, including insertion, deletion, searching, and sorting.
  • Analyze the efficiency of algorithms for the operations associated with the various data structures in terms of the Big O notation
  • Be able to discuss how the choice of data structure and design of an algorithm can impact the performance of programs.

Return to: [Top of Page] 

Instructor

Bro. Robert K. Maruyama, S.M.
email: [email protected]
office: Kieffer 14
tel: 739-4605

Text Book

Data Structures & Other Objects Using C++, 4th Edition, by Michael Main and Walter Savitch, Addison-Wesley. ©2011

The  following titles are also recommended for your reference.

Topics

The following topics will be covered in this course.

Requirements

The following are class requirements. Refer to the section on Grading for further details.

·         Quizzes

·         Tests

·         Programming Assignments (in Lab class)

·         Project Assignments (PA)

·         Class Attendance

·         Final Exam

Return to: [Top of Page]

Lab Exercises

The main goal in this class is to understand the various types of data structures and to implement them to write appropriate algorithms for efficient processing of operations. The best way for you to learn them is actually writing programs while studying examples of well written code. You will be responsible for 10 to 13 programming assignments which are to be completed in the accompanying lab class. They will be based on the examples explained in the class. The deadline for each assignment, which will be available from the class Schedule page on the Web, will be due at the end of the week in which it is assigned.  The details for the deadline and submission of the assignments will be announced in the class.

Late Submissions

Any exercise or project turned in after the due date deadline is considered late. Assignments which are late will incur penalty.

Thus, a 10-pt project which is late by 1 day may receive a maximum of 7 pts; a 20-pt lab, a maximum of 14 pts. It is always better to submit a late assignment, no matter how late.

If you foresee a valid reason that could cause you to turn in your assignments late--e.g., TDY, special work assignments, hospitalization, etc.--you must get permission for special arrangements before the programming assignment is due.

Test

There are a number of tests scheduled for the term, in addition to the final exam. Their dates are indicated in the Class Schedule. (The format for the final exam will be announced later in the term.) In general, there will be no make-up tests or quizzes. Special cases will be considered when there are valid reasons, but arrangements must be made before the test or quiz dates.

Return to: [Top of Page]

USB Flash Drive

All work in the class using the computer needs to be saved on a USB flash drive (thumb drive, pen drive, etc.).  You will need a dedicated USB drive for the class.

Eating and Drinking in the Classroom

As a general rule on campus, eating and drinking in the classroom are not allowed, especially in the computer labs.

Academic Honesty

The University Student Handbook defines plagiarism as follows: "Plagiarism is the offering of another as one's own. Plagiarism is a serious offense and may include, but is not limited to, the following:

    1. Complete or partial copying directly from a published or unpublished source without proper acknowledgement to the author. Minor changes in wording or ayntax are not sufficient to avoid charges of plagiarism. Proper acknowledgment of the source of a text is always mandatory.
    2. Paraphrasing the work of another without proper author acknowledgment.
    3. Submitting as one's own original work (however freely given or purchased) the original exam, research paper, manuscript, report, computer file, or other assignment that has been prepared by another individual."

Each student is expected to complete his or her own assignments.  Although modern work environments require extensive teamwork, one of the main goals in this class is that each student learn the basic skills in computer usage through individual practicing. You are encouraged to consult each other in your class work.  But you must distinguish between consulting your friends and discussing problems with them from copying other people's work.

Whatever you submit for grading must be your own work.  The penalty for copying in tests, project assignments, or lab exercises is, for the first offense, a grade of 0 for all parties involved; for the second offense, an F for the course. 

Attendance

Regular class attendance is important since you are responsible for all materials covered in the class. Attendance will be taken at all class sessions. Generally speaking, there will be no make-up tests or quizzes, except in cases of excused absences for which prior arrangements are required . Be sure to inform the instructor when you foresee that you cannot be present for a scheduled test. A missed test  receives a grade of 0.

Return to: [Top of Page]

Grading

The semester grade will be based on the following elements of your course responsibilities: (Points in various categories and total points are subject to change.) 

          CS 250

Quizzes

5 x 12 = 60

Tests

70 x 3 = 210

PA

30 x 2 = 60

Attendance

50

Finals

100

Total

*480

          CS 250 Lab

Lab Exercises

20 x 12 = *240

*These numbers may change depending on various circumstances.

The following guidelines will be used in determining the final grades.
A: >= 90%; B: >= 80%; C: >= 70%; D: >= 60%; F: < 60%

Return to: [Top of Page]

Getting Help

For "quick" questions the email is the simplest way to contact me. Feel free to drop in at my office during office hours or to set up an appointments outside those hours. It would be better to let me know when you are coming to insure that I will be in my office when you come.

Return to: [Top of Page]