SYLLABUS
FOR CS 2410
(CS Il - Introduction to Data
Structures and Algorithms)
Spring 2009 (CRN: 20190, 3
credit hours)
Catalog description:(4-3-1) Multi-dimensional arrays, records (C++ structs), arrays of records, elementary searching and sorting algorithms, classes, data abstraction, object-oriented software development, pointers, dynamic data, reference types, linked structures, C++ templates, exceptions and recursion are required. Topics on time and space complexity, abstract one-d and two-d tables, stacks and queues, trees and graphs, powerful sorting and search methods may be introduced selectively.
Course prerequisites: CS 1410 and credit or enrolment in MATH 2305 or MATH 2401.
TEXTBOOK: Programming and Problem Solving with C++, 4th Edition
(Chapter 11-18), by Nell Dale and Chip Weems. Jones and
INSTRUCTOR: Dr. Hong Lin, Office: S-717, Phone: 713 221 2781, Office hours: MTWR 1:00-3:30pm, or by appointment, Website: http://cms.dt.uh.edu/faculty/linh/courses/cs2410
Course grade: The course average is determined by at least two major
tests, and a comprehensive final exam (at least 25% of the total), 4 major
programming projects and graded lab assignments which thoroughly cover all
required topics. The course grade is determined by the standard college formula
based on the course average: "A" (90 100), "B" (80-89),
"C" (70-79), "D" (60 69), or "F' (0-59). Major tests
are close book and performed in class. Test dates are announced in course
schedule. The student must have a passing average (60+) on both test and
programming projects to pass this course, otherwise he or she should receive at
best a "D".
Grading Scale: There will be two tests (20% each), and a comprehensive final exam (25%). Programming
projects (25%), In-Class exercises (10%).
A -- 90 above, B -- 80-89, C -- 70-79, D -- 60-69, F -- below 60
Programming projects: One of the key objectives of this course is to help the students to understand the modern programming concepts and methodologies, and to be able to use the knowledge and experience in upper-level courses, and solving application problems. Therefore, programming projects must be assigned throughout the semester, and a single project should consist of multiple components. Laboratory sessions should be used for students to master simple required components of the course. These components include arrays, structs, arrays of records, searching and sorting algorithms, classes, data abstraction, object-oriented software development, pointers, dynamic data, reference types, linked structures, C++ templates, exceptions and recursion. Selected topics on time and space complexity, abstract one-d and two-d tables, stacks and queues, trees and graphs, powerful sorting and search methods may be covered, according to the course proceeding. Projects must be completed by individual work. No group projects are permitted. If students turn in programs with similarity that indicates plagiarism, all involved students will be given a zero. Projects should be turn in on due date. Exceptions can only be made for emergency cases. In any cases, late submission will entail grade penalty on 10 points per day basis; and no submission late more than 1 week will be accepted.
Educational objectives: Upon successful completion of this course, a student should:
i) Be able to use multidimensional arrays, record, arrays of records (structs), and hierarchical records in practice.
ii) Be able to apply fundamental sorting and searching algorithms such as Selection Sort, Bubble Sort, Insertion Sort, Linear Search and Binary Search to sort and to search objects in an array of simple data type as well as structured data types.
iii) Have some idea on comparing different algorithms with big O notation.
iv) Be able to define an abstract data type (ADT) with class specification and implementation, and use class objects to solve basic application problems (including private/public members, friend function and operator overloading).
v) Understand fundamental concepts of object oriented software developments, such as base class, subclass, virtual functions containment, encapsulation, and inheritance with actual examples in C++ or Java.
vi) Be able to use pointers and new, delete operations to allocate and to de-allocate memory space dynamically, to use ->, &, * operators, and to access dynamic data correctly.
vii) Be able to use linked structure to solve basic application problems with insertion and deletion of a node anywhere in the list.
viii) Understand recursive algorithms and functions, and be able to implement recursions in high level languages as a problem solving tool.
ix) May have some knowledge of high level abstractions of ADT definitions of the lists, tables, stacks and queues, as well as their implementations with C++ classes and templates.
x) May be introduced
to topics selected from trees and graphs, powerful sorting algorithms such as Shell
Sort, Merge Sort, Quick Sort, Heap Sort , hashing, time-space complexity
or others.
Course and lab content:
UNIT (Text Chapter) |
Topic |
Lab Assignment (Lab Manual Chapter) |
UNIT I (Chap 11) |
Data Abstraction, Records and Class |
C++ records, hierarchical records, C++ classes. (chapter 11) |
UNIT II (Chap 12) |
One- and Multi-dimensional arrays, arrays of records. |
Selected Lab exercises from Chapter 12 |
UNIT III (Chap 13) |
Array-based lists, sorted and unsorted lists, sequential binary search, character strings |
Unsorted and Sorted array-based lists, character strings (Chapter 13) |
UNIT IV (Chap 14) |
Fundamentals of object oriented software development |
Classes, subclasses, inheritence, virtual methods (Chapter 14) |
UNIT V (Chap 15) |
Pointers, dynamic data, reference type, classes and dynamic data. |
Pointer variables, dynamic data, classes and dynamic data (Chapter 15) |
UNIT VI (Chap 16) |
Linked structure |
Unordered linked lists, linked lists of objects, sorted lists of objects (Chapter 16) |
UNIT VII (Chap 17) |
Templates and Exceptions |
Template functions and classes, exceptions (Chapter 17) |
UNIT VIII (Chap 18) |
Recursion |
Recursive algorithms with simple variables and structured variables, recursion using pointer variables, comparison between recursion and iteration (Chapter 18) |
General University Policies and
Procedures: All students are subject to UH-Downtown's Academic
Honesty Policy and to all other university-wide policies and procedures as they
are set forth in the UH-Downtown University Catalog and Student Handbook. The
Academic Honesty Code is embraced by all members of the
CHEATING: Instances of cheating will be handled according to departmental policy. Cheating covers any case in which a student has received unauthorized aid in his/her performance that contributes to a course grade or submits material contributing to a course grade with the intent to deceive the instructor or grader. If the unauthorized aid includes help from another student, then that student is considered to have cheated as well. Students are expected to submit assignments that are entirely their own work. A common example of cheating is to copy another person’s program or homework assignment. If a student cheats on a homework assignment, then he/she will receive a grade of zero (a grade of F) for that item as will anyone assisting him/her in an unauthorized way. If a student cheats on an exam or the final, he/she will receive a failing grade for the class. All cases of cheating will be reported to the Department Chairman and follow university policy on academic honesty issues.
Class Policies: Students are required to attend all classes on time. Absence, tardiness and early withdraw will be recorded and sanctioned in the "In-class Exercises" part of the course work. Late submission will be evaluated according to the policy set forth in the "Programming Projects" section. No makeup exams will be given. With the presence of the proof of emergency, the grade for one missing exam will be replaced by the grade of the final exam.
Statement on reasonable accommodations: UHD adheres to all applicable federal, state, and local laws, regulations, and guidelines with respect to providing reasonable accommodations for students with disabilities. Students with disabilities should be notified to register with Disabled Student Services and contact the instructor in a timely manner to arrange for appropriate accommodations.
CS2410 Spring 2009 - Course Schedule
(This schedule contains class contents, assignments, updates, etc. You are supposed to check it regularly throughout the semester)