COP 3503C-01 – Computer Science II - Fall 2010 Syllabus

Course Prerequisites: COP 3502C

Class Time: Monday, Wednesday 4:30 – 5:45pm

Class Location: MAP-260

Course Web Page: and Webcourses.

Lecturer: Sarah Buchanan

Office: HEC – 201

Email:

Phone Number: 727-742-8035

Office Hours:MW 2 – 3:30-pm, or by appointment

Teaching Assistant: Amber Cheng

Email:

Office: HEC 231

Office Hours: Tuesday 2-3:30

Recitations:

Section 13 Recitation: W 2:30-3:20 MAP-108

Section 14 Recitation: W 3:30-4:20 MAP-108

Teaching Assistant: Remo Pillat

Email:

Office: HEC 308

Office Hours: Wednesday, 9:30am – 11:15am

Recitations:

Section 11 Recitation: W 11:30-12:20 MAP-108

Section 12 Recitation: W 12:30-1:20 MAP-108

Teaching Assistant: Chris Rees

Email:

Office: HEC 308

Office Hours: Thurs 10:30am-12:30pm, Fri 12-2pm, or email for appointment

Course Objective: This course explores specific algorithmic techniques in more detail than CS1 and applies these to some new problems not explored in CS1. Also, more technical algorithmic analysis will be done in order to verify the efficiency of the algorithms discussed. Finally, a couple new data structures will be introduced.

Textbook: Data Structures and Algorithm Analysis in Java by Mark Allen Weiss (ISBN: 0-321-37013-9)

Grading: The final letter grade will be based upon the five items listed below. Homework assignments will be due over WebCourses. There will be five assignments that will contain written problems and programs. Each assignment will be introduced in class and then posted on the class web page and WebCourses. All homework assignments are to be done in java. Collaboration is not allowed on any homework assignment (excluding lab assignments). The grading scale will be based on the class average, standard deviation and overall difficulty of the assignments and exams. Note: plus/minus grades will be issued, when deemed appropriate.

Item / Percentage
Exam #1 / 20
Exam #2 / 20
Final Exam / 20
Homework Assignments / 25
Lab Participation/Programs / 15

In order to pass the class (get a C or higher) you must earn at least 40% on the final exam.

All sections listed in this chart refer to sections of the textbook. Typically, lectures will follow the material in the text, but occasionally material will be added into lectures that is NOT in the text. For this reason, class attendance is important. This is a general time frame only and is subject to the needs of the class. It will be altered without notice, but will generally follow the same progression. At the end of each class you will be told what we will be discussing during the next class period. We will attempt to place notes on the course web site (prior to each day’s class) which will be the basis for that day’s lecture.

Recitations

You are required to attend one recitation per week. Unless there are complications, please attend the recitation for which you are signed up. Each week you will either have a worksheet with problems to work on, or a program. You will work on a worksheet or program during class and your TA will help you during the period. Each sheet/program is worth 1% of your grade, for a total of 10%. To get credit for this, you must show your work at the end of the recitation to your TA. (Please bring your laptop, if you have one to class on these days.) Two of these must be turned in over WebCourses over the semester - each of these will be worth another 2.5% of your grade. The final 2% of your recitation grade will be determined subjectively by your TA based upon your attendance AND participation in class.

Programming/Homework Assignments

All programming assignments will be turned in over WebCourses. Extensions will only be granted in unusual circumstances. (Note: The TA can’t grant you extensions, only the course instructor can.) All programs must be done in Java (no exceptions). Complete write-ups may accompany all programming assignments – details will be provided with each assignment. Details of the requirements of the homework write-ups will be given later.

Late Assignment Policy

No late recitation programs will be accepted.

Late homework assignments will be accepted for the first four homework assignments, but will be assessed a late penalty. In particular, assignments will be accepted up to 48 hours after the due date of the assignment. If an assignment is less than 24 hours late, a 10% penalty will be assessed. If an assignment is in between 24 and 48 hours late, a 20% penalty will be assessed.

No late assignments will be accepted on the last homework assignment.

Tentative Lecture Schedule

Week / Monday Class / Wednesday Class
Aug 23-27 / Algorithm Analysis, Ice Breaker, Syllabus
(2.1-2.3) / MCSS + Math Review (1.2, 2.4)
Aug 30-Sep 3 / Algorithm Analysis (2.4), Amortized Analysis (11.1) / Hashing+Binary Heaps (Cht 5, 6.1-6.3)
Sep 6-10 / No Class - Labor Day / Disjoint Sets +AVL Trees
(Ch.8, 4.4)
Homework #1 Due
Sep 1-17 / 2-4 Trees -- Sorting (4.7, 7.6-7.8) / Sorting (7.9-7.10)
Sep 20-24 / Graphs, DFS, BFS / Graphs, Topological Sort, Dijkstra’s
Sep 27 – Oct 1 / Exam #1 Review / EXAM #1 – OUT of Town
Oct 4–8 / Greedy – General Background, Dijkstra’s
Homework #2 Due / Greedy: Huffman Coding (10.1.2), MST’s
Oct 11-15 / Divide+Conquer: Introduction, Integer Multiplication, Tromino / Divide+Conquer: Strassen's, Skyline Problem (10.2)
Withdrawal Deadline
Oct 18-22 / More Divide+Conquer(10.2) / Homework #3 Due
Dynamic Programming: Introduction + Change(10.3)
Oct 25-29 / Exam #2 Review / EXAM #2
Nov 1- 5 / Dynamic Programming: LCS and Edit Distance / Dynamic Programming: 0-1 Knapsack (10.3)
Nov 8-12 / Dynamic Programming: Floyd-Warshall / DP: Matrix Chain Multiplication, World Series
(10.3)
Nov 15-19 / Network Flow
Homework #4 Due / Backtracking (10.5)
Nov 22-26 / Backtracking (10.5) / No Class - Thanksgiving
Nov 29 - Dec3 / Coordinate Geometry (Notes) / String Matching or Number Theory (Notes)
Dec 6-10 / Last Day of Class – Exam Review – HW #5 Due / No Class
FINAL EXAM / Monday, Dec 13
4pm – 6:50pm