CSCI-261: Computer Science II

Fall 2009

Contact Info

Instructor: Brad Richards
Lectures: TH 391 — MTThF 2:00-2:50
Phone: 879-3579
Email: brichards@ups.edu
Office: Thompson 401
Office Hours: MTTh: 3:00-3:50, F: 1:05-1:50 and by appt.
Tutors: Sun, Tue, Wed, Thurs 7-9:00pm; Mon 7-10:00pm in Th409

Contents

Resources:

Schedule:

Week Topic Reading Assignment
8/31 Intro & Review TBA (from Ch. 2 & 3) Assignment 1 (soln)
9/7 More review
(No Class Monday)
Chapter 2 & 3  
9/14 Complexity Chapter 3 Assignment 2 (solns)
9/21 Design, ADTs Chapter 1, Chapter 4  
9/28 Stacks Chapter 5 Assignment 3 (solns)
10/5 Queues Chapter 6 Exam Friday (old exam)
10/12 More Queues, Recursion Chapter 6, 7 Assignment 4
10/19 More recursion, Searching.
(No Class Mon, Tue)
Chapter 7  
10/26 Trees Chapter 8 Assignment 5 (solns)
11/2 Sets & Maps Chapter 9  
11/9 Sorting Chapter 10 Exam Friday (old exam) (solns)
11/16 More Sorting Chapter 10 Assignment 6
11/23 Graphs
(No Class Th, Fri)
Chapter 12  
12/7 Slack    
12/8 Wrap-up & review
Wednesday is last day
   

Background:

This course is a continuation of the topics introduced in CSCI 161. It provides an introduction to the study of fundamental data structures and their associated algorithms. Students will learn will learn about lists, stacks, queues, trees, sorting, searching, abstract data types, and object-oriented programming using Java, and learn how to choose appropriate data structures and algorithms for particular problems. We will address the following learning objectives:

CSCI 261 satisfies the Mathematical Approaches category of the university's core curriculum by developing an appreciation of the power of Computer Science and formal methods to provide a way of understanding a problem unambiguously, describing its relation to other problems, and specifying clearly an approach to its solution. A student in this course will develop a variety of mathematical skills, an understanding of formal reasoning, and a facility with applications. Specifically, this course will provide the student with the ability to analyze a problem, to design a systematic way of addressing that problem (an algorithm), and to implement that algorithm in a computer programming language.

This course builds progressively on previously covered material. Therefore, it is essential to attend all classes and keep up with the reading and the assignments. Students are expected to attend all lectures, with exceptions permitted in case of illness and family emergencies, and should do the assigned readings before the relevent class. The assigned readings listed in the schedule are all from Objects, Abstraction, Data Structures and Design Using Java.

Students will be given homework assignments involving the design, implementation, and testing of computer programs of increasing complexity and sophistication. These assignments form a crucial part of the course, and students are required to work on them individually where specified. Collaboration with other students is not permitted on these individual assignments, and will be subject to severe penalties. I encourage you to interact with each other and discuss possible implementation approaches, but any sharing of code or other solutions will be considered cheating. Please review the Academic Honesty policy in The Logger and ask me if you have any questions regarding its application to this course.

Lectures will begin and end on time, so do your best to get to class before the start of the lecture. Use of cell phones is extremely disruptive — please remember to turn your phones off while in the classroom. Academic accommodations are available for students with disabilities who are registered with the Office of Disability Services. Please schedule an appointment with the instructor early in the semester to discuss any accommodations for this course which have been approved by the Disability Services Coordinator as indicated in your accommodation letter.

Grading:

Homework for this class will be submitted electronically, and must be turned in by class time on the due date for full credit (unless the assignment explicitly states otherwise). Late homework will be penalized 5% per day, and will not be accepted more than one week late. The following grade cutoffs are upper bounds — they might come down, but will not be set higher: A = 95, A- = 90, B+ = 88, B = 83, B- = 80, C+ = 77, C = 73, C- = 70, D+ = 67, D = 64, D- = 60, F = <60. Your overall grade is composed as follows: