CIS 261: Data
Structures Programming
Course Syllabus
Instructor Contact Information
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
- 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% |
- The Projects and Exercises portion of the grade encompasses:
programming assignments, written homework, in-class exercises, and other
work assigned throughout the semester.
- 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.
- 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.
- 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.
- 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%.
- 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
- 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.
- 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.)
- 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:
- Demonstrate the ability to create non-trivial programs in a
modern, professional level programming language.
- Describe and use language features for advanced data types:
advanced pointers, structures, unions and classes.
- Demonstrate and explain the use of common data structures:
arrays, sets, stacks, queues, lists, trees and files.
- Explain the similarities and difference between array and
dynamic memory implementation of data structures.
- Explain and use basic algorithmic analysis techniques.
- Describe the phases of the software development life cycle.
- Demonstrate and explain techniques for organizing complex
projects.
- Describe Object Oriented analysis and programming
techniques
- Explain debugging techniques suitable for use with large
software projects
Go to Top of Syllabus