Computer Science II
CISP 1020-P70 - Spring 2014
Lecture & Lab: TR 6:15 PM-9:15 PM; MC254
Instructor: Robert Lowe <
[email protected]> or <
[email protected]>
Office Hour: R 5:00-6:00 MC254
Class Gopher Page:
gopher://sdf.org/1/users/pngwen/courses/cs2
Course Description
==================
Advanced problem solving and algorithm development, structured
programming, data structures, and applications, I/O techniques,
lists, queues, trees, algorithms, and files. Program development
using Unix operating system. This course is intended for University
Parallel students.
Entry Level Standards
=====================
The student is expected to be proficient in programming components
taught in CISP 1010. These include functions, arrays, string
handling, argument passing, indirect addressing and elementary file
I/O. the student is also expected to have a working knowledge of
the Unix operating system, a Unix-based editor such as vi or Emacs
and program development in the UNIX environment. The student must
have math, writing, verbal and English language skills at the
college level.
Prerequisite
============
CISP 1010 or department approval
Textbooks (Recommended)
=======================
Goodrich, Michael, Robert Tamassia & David Mount, "Data Structures
and Algorithms in C++, 2nd Edition" Wiley, 2011,
ISBN 13:978-0-470-383277-8
Savitch, Walter, "Problem Solving with C++. 8th Edition", 2012,
Addison Wesley. ISBN: 978-0-13-216273-9
Other Recommended Reference
===========================
Stroustrup, Bjarne, "The C++ Programming Language. 3rd Edition",
1997, Addison-Wesley ISBN: 978-0-201-88954-3
Topics
======
1. Introduction, Review of C++: Arrays, Strings, Pointers,
Functions, Arguments, and Scope of Variables, Program Structure,
I/O
2. I/O, Pointer Arithmetic, Indirection, Double Indirection,
Prototypes, Program Structure, Make Files
3. Command Line Arguments, Classes
4. Elementary File I/O, Strings
5. Structures, Typedef, Dynamic Memory Allocation
6. Lists, Stacks, Queues, Static and Dynamic Lists
7. Doubly Linked Lists, Custom Classes
8. Overview of Algorithm Complexity, Mid-term Exam
9. Binary trees, Tree Traversals, Insertions and Deletions
10. AVL Trees
11. AVL Trees, Splay Trees
12. Hashing, Binary Heaps, Priority Queues
13. Sorting, Pointers to Functions
14. Enumerated Data Types, Unions, Bitwise Operators
Grading
=======
There will be 9 programming assignments, each are weighted evenly.
Each assignment has two parts, a guided part and a challenge part.
The guided part will count less than the challenge part.
In addition to the main programming problems, there will be
additional small programming assignments which will be given as
homework.
There are two exams, each worth 100 points. The final exam is not
cumulative.
Assignments in each category will be averaged, and the final course
average will be the weighted sum of these averages. The
distribution of points is as follows:
Point Distribution Grading Scale
---------------------- ------------
Exams 50% 93-100 A
Guided Labs 10% 88-92 B+
Challenge Labs 30% 83-87 B
Homework 10% 78-82 C+
73-77 C
65-72 D
Below 65 F
Policies
========
1. Students are expected to do their own work. It is your
responsibility to request help from me prior to the assignment's
due date. Copying another student's work will not be tolerated
and may result in a grade of F for all parties involved.
2. I will take attendance each day. You are expected to attend all
scheduled meetings. You must be present for at least 75 percent
of meetings in order to receive credit for the course. It is your
responsibility to obtain information you may have missed.
3. Maintaining continuous attendance in your classes is very
important. If you are considering dropping or withdrawing from a
course, please check with the Financial Aid Office before doing
so. Dropping or withdrawing fr om a class can adversely affect
your financial aid and/or lottery eligibility.
4. All exams are required. In the event of an emergency, notify me
in advance if at all possible. Failure to do so may result in a
grade of zero.
5. Extra time will not be granted to individuals on lab assignments.
6. Calculators may not be used during exams unless I authorize them
in advance.
7. Cell phone ringers must be turned off during class.
8. Surfing the Internet, reading email, texting, working on
assignments and other such activities are not permitted during
lecture.
9. The college has defined an extended closure as lasting more than
one week. In the event of an extended closure, the class will
continue using the class web page and the college's online system
as the primary method for distribution of assignments and
material. The email system will be the primary method of
communication