CSc 345 (Analysis of Discrete Structures) Syllabus
Summer 2014
General Catalog Information:
Description: | Introduction to and analysis of algorithms and characteristics of discrete structures. Course topics include algorithm analysis techniques, recurrence relations, structural induction, hierarchical structures, graphs, hashing, and sorting. |
Lecture: | MTWR 9:00AM-10:30AM, GS 701 |
Prerequisite(s): | CSc 127B (Introduction to Computer Science, 2nd Semester) or CSc 227 (Program Design and Development); CSc 245 (Introduction to Discrete Structures) or MATH 243 (Discrete Mathematics in Computer Science); or consent of instructor. |
In particular, you are expected to know the Java programming language; to be able to design, code, and debug programs consisting of hundreds of lines of object-oriented code; to understand and use basic common algorithms (e.g., sorting) and data structures (e.g., stacks); and to understand and write formal proofs. | |
Credits: | 4 |
Class dates: | June 9, 2014 - Start of classes
August 13, 2014 - End of classes |
Final Exam: | WEDNESDAY, August 13, 2012, 9:00 a.m. - 11:00 a.m. at GS 701.
The final is comprehensive, required, and will be given on
this date at this time. Schedule your travel plans accordingly.
Do note that the final exam will be two hours instead of the regular one and a half hour the class usually takes. |
Class Personnel:
Name | Office | Email (.arizona.edu) | Office Hours | |
---|---|---|---|---|
Instructor | Qiyam Tung | GS 710 | qwvako@email | MTR 2PM - 3PM, W 3PM - 5PM |
TA | Sankar Veeramoni | GS 721 | sankar@email | TW 1:30PM - 2:30PM |
If you cannot make it to office hours, then you can contact me to make an appointment.
Information Resources:
Homepage: | http://www.cs.arizona.edu/classes/cs345/summer14/ |
Textbook: | A Practical Introduction to Data Structures and Algorithm Analysis,
Edition 3.2 (Shaffer, self-published), 2012. Note that this book is
free for downloading (follow that link).
Your CSc 245 textbook would be a useful reference (for proofs, in particular). Most likely, you used the Rosen book, Discrete Mathematics and its Applications |
Discussion: | We will use Piazza
to discuss concepts and high-level questions about assignments.
Piazza is useful for keeping everyone on the same page (e.g. an ambiguous requirement in an assignment is clarified in the post). As such, you are responsible for keeping up-to-date with Piazza posts. Failure to take a clarification into account for an assignment is not a valid excuse. You may use it to discuss high-level ideas or ask for clarification from your peers about a particular homework problem. You may NOT use it to ask or post solutions to homework assignments. Additionally, it may prove useful as a place to prepare for an exam. While posting solutions to homework problems is not permitted, you are free to post your own problems and solutions in preparation for an exam. If you are unsure whether your post is OK to post to everyone or not, e-mail me first. |
Grade Record: | We will use D2L for recording and calculating grades.
D2L has many features, but we will only use it to store grades and submit assignments. I will not check my D2L inbox so please do not send me any e-mail through D2L. Use Piazza to contact us. |
Lecture Recordings: | I will be using Panopto to record lecture videos. You can find the link by by logging in to D2L -> clicking on "Content" -> clicking on "Link to Recordings". This will open the Panopto page. Note that you will need Silverlight to run it, so it will not work on a Linux machine. |
Course Objectives and Expected Learning Outcomes:
Topics and Subtopics | Sections In Text | Sample Learning Objectives | Date |
---|---|---|---|
1. Review | Week 1 and 2 | ||
a. Mathematics and Proofs | 2 | • Know summation, sequence, and logarithmic identities | |
and knowing the basics of proofs. | |||
b. Basic Data Structures | 4 | • Identify basic operations and efficiencies. | |
• Implement to solve basic tasks. | |||
2. Algorithm Analysis | 3 | Week 1 and 2 | |
a. Step counting | • Understand efficiency on an operation-by-operation basis. | ||
b. Asymptotic Analysis | • Understand definitions for Big-O and related function sets. | ||
• Be able to prove whether a function belongs to a particular set of functions. | |||
3. Sorting and Searching | 7 | Week 3 and 4 | |
a. Internal Sorting | • Know the most common sorting algorithms, including insertion, | ||
selection, shell, quicksort, and merge sort | |||
b. External Sorting | • Know how to sort large sets of data | ||
c. Linear Searching and Hashing | • Compare searching ordered and unordered sequences | ||
• Describe the characteristics of a good hashing function | |||
• Describe efficient implementations of hash tables and operations | |||
4. Search Trees | 5 and 13 | Week 5 and 6 | |
a. Binary Search Trees | • Summarize basic properties of BST | ||
• Compare and contrast implementations | |||
b. AVL and Splay Trees | • Learn operations and efficiencies of AVL and splay trees | ||
• Distinguish from BSTs | |||
c. 2-3 Trees | • Understand how to balance a 2-3 tree | ||
• Be able to compare and contrast with other trees | |||
5. Heaps | 5.5 | Week 6 | |
• Understand how the node are added and removed | |||
• Be able to sort using a heap | |||
6. Graphs | 11 | Week 7 and 8 | |
a. Structure | • Understand basic operations and implementations | ||
b. Common algorithms | • Understand how to find the minimum cost spanning tree (MCST) | ||
and solve the single source shortest path (SSSP) problems. | |||
7. Introduction to Algorithms | 16 | Week 8 | |
• Be able to categorize algorithms by their families | |||
8. Computation and its Limits | 17 and lecture | Week 8 and 9 | |
a. Uncountability and the Halting Problem | • Be able to describe the relation between uncountability and the halting problem. | ||
b. Complexity classes and P vs. NP | • Name algorithms for each category | ||
c. Finite State Machines (Automata) | • Be able to express languages as regular expression and as FSMs. |
Topics may be added, removed, or reordered as time and circumstances dictate.
Important Dates (rough schedule):
Date | Assigned | Due |
June 9 | Homework 1 | |
June 10 | Participation 1 | |
June 12 | Participation 1 | |
June 16 | Homework 2 | Homework 1 |
June 17 | Participation 2 | |
June 19 | Participation 2 | |
June 23 | Homework 2 | |
June 26 | Day of Midterm 1 | |
June 30 | Homework 3 | |
July 1 | Participation 3 | |
July 3 | Participation 3 | |
July 7 | Homework 4 | Homework 3 |
July 8 | Participation 4 | |
July 10 | Participation 4 | |
July 14 | Homework 5 | Homework 4 |
July 15 | Participation 5 | |
July 17 | Participation 5 | |
July 21 | Homework 6 | Homework 5 |
July 24 | Day of Midterm 2 | |
July 28 | Homework 7 | Homework 6 |
July 29 | Participation 6 | |
July 31 | Participation 6 | |
August 4 | Homework 8 | Homework 7 |
August 5 | Participation 7 | |
August 7 | Participation 7 | |
August 11 | Homework 8 | |
August 13 | Day of Final |
Academic Dishonesty (i.e., Cheating):
See Also: | • The Department of Computer Science Course Policy on Collaboration: http://www.cs.arizona.edu/policies/collaboration.html |
• The University of Arizona Code of Academic Integrity: http://deanofstudents.arizona.edu/codeofacademicintegrity | |
• The Arizona Board of Regents list of Prohibited Conduct: https://azregents.asu.edu/rrc/Policy%20Manual/5-303-Prohibited%20Conduct.pdf | |
• The Arizona Board of Regents Student Code of Conduct: https://azregents.asu.edu/rrc/Policy%20Manual/5-308-Student%20Code%20of%20Conduct.pdf |
Grades and Grading:
Homeworks | = | 40 | % | total |
Participation | = | 10 | % | total |
Midterm 1 | = | 15 | % | total |
Midterm 2 | = | 15 | % | total |
Final | = | 20 | % | total |
Total | = | 100 | % |
A := | 90 <= x <= 100 |
B := | 80 <= x < 90 | C := | 70 <= x < 80 |
D := | 60 <= x < 70 |
E := | 50 <= x < 60 |
I am expecting to assign 8 homeworks (that's roughly one homework every week). Keep in mind that these are estimates and we may have less depending on the material covered.
The homeworks will be assigned on Mondays and due in one week (9 AM Arizona time).
In this class, you will be expected to turn in an electronic copy of
all assignments, including written homeworks.
Make sure that your homework is clean and easy to follow. If it is not legible, then it may be marked as incorrect.
You may use programs such as Word, OpenOffice Writer, or LaTeX to write your solutions, but the file you turn in
should be a pdf.
Each assignment will have a clearly stated due date and
time. Assignments will not be accepted after 9:00 AM (Arizona time).
The reason for this policy is that we have a tight schedule and allowing students to turn in after class would
encourage missing the lecture, which I certainly would not wish to happen.
Each assignment will be worth a certain number of points. We will award partial credit to incorrect and/or semi-legible submissions when appropriate. If you feel that your assignment was graded improperly, first talk to the TA. If after talking to the TA you still feel that you did not get the appropriate score, e-mail me, see me at office hours, or set up an appointment.
Online section
Miscellaneous Class Policies:
The TA and I will attempt to reply to email and Piazza postings from students within 24 hours.
I will not be offering extra credit for the course.
See Also: | • Accommodation of Religious Observance and Practice: http://deanofstudents.arizona.edu/religiousobservanceandpractice |
All holidays or special events observed by organized religions will be honored for those students who show affiliation with such religions. Absences pre-approved by the UA Dean of Students office will be honored. No matter the reason for missing class, the student is always responsible for the missed material.
See Also: | • Audit Policy: http://catalog.arizona.edu/2013-14/policies/audit.htm |
If you are auditing this class, you may attend lecture. If you are considering changing it to a graded course, contact me and I will grade your assignments and exams. Otherwise, I will not grade assignments or exams (for the sake of time).
Miscellaneous University Policies:
See Also: | • 2014 Dates and Deadlines: Important Drop Dates. |
Nevertheless, if you find yourself thinking about dropping this (or any other) class, first make sure that that's what you really want to do. Chatting with me or your academic adviser may help. But
See Also: | • Office of Curriculum and Registration Grading Policy Manual: http://www.registrar.arizona.edu/gradepolicy/incomplete.htm |
• UA General Catalog's Grades and the Grading System: http://catalog.arizona.edu/2011-12/policies/grade.htm |
The university's course catalog contains all of the details about incompletes, but here's the key sentence:
The grade of I may be awarded only at the end of a term, when all but a minor portion of the course work has been satisfactorily completed. |
To qualify for an incomplete, a student must have maintained a passing grade for the class until the term is nearly complete, and then, due to an unusual and substantiated cause beyond the student's control, the student is unable to complete the class work. In short, you can't get an "I" just because you aren't happy with your grade.
See Also: | • Requesting Services from the UA Disability Resource Center: http://drc.arizona.edu/students/requesting-services |
• UA SALT Center: http://www.salt.arizona.edu |
The university and the Disability Resource Center (DRC) have asked all instructors to include the following text in class syllabi:
If you anticipate barriers related to the format or requirements of this course, please meet with me so that we can discuss ways to ensure your full participation in the course. If you determine that disability-related accommodations are necessary, please register with Disability Resources (621-3268; drc.arizona.edu) and notify me of your eligibility for reasonable accommodations. We can then plan how best to coordinate your accommodations. |
Additional help is available from the UA Strategic Alternative Learning Techniques (SALT) Center. SALT provides fee-based services for students with various learning disabilities.
Under the guidelines of the Rehabilitation Act of 1973 and the Americans with Disability Act of 1990, students are obligated to notify the school that they need accommodation.
See Also: | • UA Policy on Threatening Behavior by Students: http://policy.web.arizona.edu/threatening-behavior-students |
Caveat:
The above schedules, policies, and procedures are subject to change. Whenever possible, changes will be announced to the class before the on-line version of this document is altered.