Computer Science II CISP 1020-P70 - Spring 2014 Lecture & Lab: TR 6:15 PM-9:15 PM; MC254 Instructor: Robert Lowe or 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