CIS 261: Data Structures Programming

Course Syllabus

Instructor Contact Information

Instructor: Mr. Alan Collard
Office: AJT 110c
Phone: 810.989.5620
E-mail: acollard@sc4.edu

I will be available to students outside of class by appointment or during my posted Office Hours.

Course Description

CIS 261. Data Structures Programming. This course explores the techniques and data structures used in the development of complex software projects. Through lectures and programming projects, this course will cover elementary data structures, dynamic memory allocation, sorting and searching, recursion, algorithmic analysis and object oriented programming techniques.

Prerequisites

CIS 260 Introduction to C++ Programming

MTH113 or higher is not required, but is strongly recommended

Textbook

  1. C++ plus Data Structures, Third Edition, Nell Dale, Jones and Bartlett Publishers - 2003 

Course Materials

64MB+ USB Storage Device (preferred) or 1 - 100MB ZIP Disk
Additional materials may be required by the instructor

Requirements

Final Grades for this course will be calculated as follows:

Projects & Exercises  50%
Examinations 50%
  1. The Projects and Exercises portion of the grade encompasses: programming assignments, written homework, in-class exercises, and other work assigned throughout the semester.
  2. Programming assignments must be submitted in "presentation" format, including: cover sheet, problem description, design documents (flowchart, psuedocode, etc.), source code listing, sample printed output or screen printout. Program code must be neat and display coding style and structural coding methods taught in class.
  3. Written tests will be given during the semester. These closed book tests will consist of some combination of Matching, True/False, Multiple Choice, Fill-In, Short Answer and Essay type questions.
  4. Participation in class discussions and group exercises is an important part of this course, therefore all students are expected to attend class having read the textbook section for that day's lecture, and prepared to contribute to the discussion of course material.
  5. Completed assignments must be submitted by the due date for full credit. Late assignments will be marked down 25% for every week (or part of a week) they are late. For example: a program turned in two weeks late would be marked down 50%.
  6. All work must be submitted by the last regular class day to be considered for final grade evaluation.

Grading Scale

Grades will be determined according to a standard grading scale.

A 92 - 100 % B- 80 - 81 % D+ 68 - 69 %
A- 90 - 91 % C+ 78 - 79 % D 62 - 67 %
B+ 88 - 89 % C 72 - 77 % D- 60 - 61 %
B 82 - 87 % C- 70 - 71 % E 59 %

Policies

  1. This course contains a number of hands-on assignments and projects which require use of the computer. Though some class time will be given for these assignments, students should plan to attend the computer lab during open hours, as there will not be sufficient time to complete the assignments in class.
  2. There are three scheduled written tests and a comprehensive written final exam. The lowest test score will be dropped. Make up tests will only be given with prior permission of the instructor, otherwise, missed tests will receive a grade of zero. Make up tests must be taken within one week of the original scheduled test date. (NOTE: The final exam is scheduled at a different time than the regular class time.)
  3. Students are expected to keep current with all course work. Students who, for whatever reason, fall behind and are unable to complete the course requirements before the end of the semester are encouraged to withdraw and re-take the course at a later date. Incomplete grades are extremely rare, and will only be given if 90% of the course material prior to the final exam has been completed satisfactorily.

Course Objectives

A number of topics will be addressed in this course. Students achieving satisfactory performance should complete the following:

  1. Demonstrate the ability to create non-trivial programs in a modern, professional level programming language.
  2. Describe and use language features for advanced data types: advanced pointers, structures, unions and classes.
  3. Demonstrate and explain the use of common data structures: arrays, sets, stacks, queues, lists, trees and files.
  4. Explain the similarities and difference between array and dynamic memory implementation of data structures.
  5. Explain and use basic algorithmic analysis techniques.
  6. Describe the phases of the software development life cycle.
  7. Demonstrate and explain techniques for organizing complex projects.
  8. Describe Object Oriented analysis and programming techniques
  9. Explain debugging techniques suitable for use with large software projects

 

Go to Top of Syllabus