| CSc 345 | Analysis of Discrete Structures |
| Time and place | Lectures: Tuesdays and Thursdays 2:00-3:15am,
Chavez 110 Section: Friday 11:00-11:50am, Chavez 110 | ||
| Instructor |
Stephen Kobourov, Gould-Simpson 715![]() | ||
| Office hours | Tuesday 3:30-4:30pm, Thursday 3:30-4:30pm, and whenever my door is open. | ||
| Teaching Assistants |
Jay Patel, GS 710 phone: (520) 621-4089 email: jaypatel@cs.arizona.edu Office Hours: Monday 4:30-5:30pm, Wednesday 4:30-5:30pm Shirley Palani, GS 710 phone: (520) 621-4089 email: shirley@cs.arizona.edu Office Hours: Thursday 9:00am-10:00am, Friday 9:00-10:00am | ||
| Updates |
Announcements and updates
| ||
| Description |
The emphasis of this course is on data structures and efficient
implementations of algorithms that use them. In the process of
learning and practicing methods of data structures and algorithm
design, we will see many examples of important algorithms.
Some of the data structures we will study are stacks, queues, trees, tries, and heaps. Algorithms considered will include sorting, searching, and hashing. We will also learn about graphs, graph algorithms, asymptotic notation, and algorithm analysis. | ||
| Prerequisites | Grade of C or better in CS 245, or MATH 243, or permission of the instructor. | ||
| Required text | Algorithm Design
by Goodrich and Tamassia, Wiley, 2002.
(While $90 at Amazon.com, this textbook is also available used for about $35 at places like ABEBooks.com.) | ||
| Optional text | There are lots of data structures textbooks out there. If you plan to take CS445, I suggest "Introduction to Algorithms" by Cormen, Leiserson, Rivest and Stein. | ||
| Homework Assignments | Homework Assignment 1 Assigned 08/27/09; Due 09/08/09. Solutions | ||
| Homework Assignment 2 Assigned 09/08/09; Due 09/17/09. Solutions | |||
| Homework Assignment 3 Assigned 09/17/09; Due 09/28/09. Solutions | |||
| Homework Assignment 4 Assigned 09/29/09; Due 10/07/09. | |||
| Homework Assignment 5 Assigned 10/13/09; Due 10/22/09. Solutions | |||
| Homework Assignment 6 Assigned 10/22/09; Due 11/03/09. Solutions | |||
| Homework Assignment 7 Assigned 11/03/09; Due 11/17/09. Solutions | |||
| Homework Assignment 8 Assigned 11/17/09; Due 12/01/09. | |||
| Syllabus |
The course is organized into eight parts. After each topic below are the relevant chapter numbers from the text. Not all material covered in class will be in the textbook (e.g., Bloom Filters). The syllabus below is only an outline and very likely to change.
I Background
II Trees and Heaps
III Balanced Search Trees
IV Sorting
V Hashing
VI Advanced Data Structures
VII Graphs
VIII Graph Algorithms
| ||
| Exams |
There will be one midterm exam and one comprehensive final exam:
| ||
| Grading |
| ||
| Homework Assignments |
There will be about 8 homework assignments. A written description of each homework assignment will be posted on the class webpage.
Late homework will not be graded for credit. Written homework
is due at the start of class on the designated date and programming
assignments are due at 11:59pm on the designated date. Assignments
turned in after the deadline are not accepted and result in a zero for
that assignment. Yes, this lateness policy is harsh. Why? Because in
the past, those who have fallen behind have had a devil of a time
catching up. So we are trying to prevent you falling behind. In the
past, I have had students complain that they could have handed in
something substandard on time and gotten more points than if they had
handed in something really good a little late. Too bad. It is up to
you to plan your time carefully and get your work in on time! You have
been warned. I will not entertain complaints. If you have extenuating
circumstances, talk to me as early as possible. If you speak with me
well before the due date, requests will be considered reasonably. The
closer to the due date it gets, the less likely I am to give you extra
time. Writing guidelines for the homework assignments should be observed. Neat and concise solutions are required in order to receive full credit for your solutions. If you cannot solve a particular problem, state this clearly in your write-up, and write down only what you know to be correct; rambling at length about ideas that don't quite work may cause additional points to be deducted. Programming guidelines should also be observed. Instructions for the turnin program.
Extra credit:
Most homework assignments will suggest extra credit work. Extra credit
in this course will be tallied separately from regular scores. If you
end up on the borderline between two grades at the end of the course,
extra credit will count in your favor. However, failure to do extra
credit will never be counted against you, as grades are assigned on
the basis of regular scores. You should do extra credit if you find it
interesting and think that it might teach you something. On the other
hand, it is not wise to skimp on the regular assignment in order to do
extra credit. |
||
| Academic Integrity |
Any work that is submitted by a student for credit is expected to be
that student's, and that student's alone. You may discuss your
homework assignments with your classmates, the tutor available during
tutorial hours, and with me. In fact, I recommend discussing ideas and
approaches to problems with your classmates. However, you should
write up your own written homework solutions and should not read or
copy the solutions written by others (in this or previous terms). For
more details, see the Computer
Science Departmental Course Policy on Collaboration and the University of
Arizona Code of Academic Integrity.
Any attempt to pass off someone else's work as one's own is considered to be cheating. Using material from a textbook, journal, or other such "external" source without proper acknowledgment, is considered to be cheating. Cheating will not be tolerated: cheating or helping another student cheat will result in a failing grade for this course. If you have any questions about academic integrity and how it relates to CSs 345, please come speak with me. |
||
| Attendance | Attendance will be expected, but not recorded. Students are fully responsible for all material presented or assigned in class. For this reason, attendance is strongly recommended. | ||
| Newsgroup | Check the newsgroup cs.course345 on the server news.cs.arizona.edu frequently, as this is where the class personnel will post assignment clarifications, due date changes, etc. In addition, students are allowed and encouraged to post (and answer) questions. Information on configuring mail clients (e.g., Thunderbird) to access the CS news server can be found here. | ||
| Communications | Every day of the week, either the instructor or the TAs have office hours -- stop by if you have questions about lectures, homework, etc. If the question is about grading, please see the person who did the grading (TAs for homework, instructor for exams). When emailing us use the cs345@cs.arizona.edu alias to ensure that all of us get the message. We will attempt to reply to email and newsgroup postings from students within 24 hours. This means that if you ask a question in the evening before an assignment is due you may not get a reply before the due date and time. | ||
| Students with Disabilities | I encourage students with disabilities, including "invisible" disabilities such as chronic diseases and learning disabilities, to discuss with me any appropriate accommodations that I might make on their behalf. | ||