CS 360 - Analysis of Algorithms
Spring 2019
Class times:
- Section 101, MWF 10:00 - 10:50AM in KEC 124
- Section 102, MWF 11:00 - 11:50AM in KEC 124
Instructor:
David Babcock, dbabcock@ycp.edu, KEC111 (815-6442)
Office hours: M 9-10AM, T 8:30-9:30AM, W 1-2PM, R 1-3PM, or by appointment
Course Description
This course studies fundamental algorithms, strategies for designing algorithms and mathematical tools for analyzing algorithms. Fundamental algorithms studied in this course include graph algorithms; algorithms for sorting and searching; hashing; integer arithmetic; and selected combinatorial tasks. Mathematical tools include asymptotic notations and methods for solving recurrences. Algorithm design strategies include the greedy method, divide-and-conquer, dynamic programming, and randomization.
Prerequisites
CS201 – Fundamentals of Computer Science II - with a grade of 2 or higher
CS350 – Data Structures - with a grade of 2 or higher
MAT235 - Discrete Math OR ECE335 - Computations in Discrete Mathematics OR MAT280 - Mathematical Structures - with a grade of 2 or higher
Textbook
Cormen, Leiserson, Rivest, and Stein. Introduction to Algorithms: 3rd Edition , MIT Press, 2009.
Supplemental Reference
Knuth. The Art of Computer Programming: Vol 1-3 .
Course Structure and Expectations
Class meetings will be primarily a discussion of various algorithmic analysis concepts illustrated through pseudocode implementations. It is important to come to class prepared to ask questions related to the topic and/or work on practice exercises which are designed to reinforce the concepts from the lecture notes. There will be a series of written homework assignments to be completed individually.
All the programming assignments are cross platform so you may use either Visual Studio (Windows), XCode (Mac), or command line (Linux).
There will be written homework assignments, a midterm empirical comparison report, four midterm exams, and a final project.
We will be covering a significant amount of material in the course at a rapid pace, so it is imperative that you keep up by participating in the class meetings.
Learning Outcomes
By the end of this course, you will be able to:
- To apply asymptotic notation for the analysis of algorithms
- To derive the efficiency of insertion, merge, heap, and quicksort sorting algorithms
- To solve problems using the techniques of dynamic programming and greedy algorithms
- To implement graph algorithms for solving BFS, DFS, MST, shortest path, and maximal flow problems
- To gain a basic understanding of the concept of NP-completeness and several approximation algorithms applied to NP-complete problems
Policies
Grades
Your overall grade for the course will be determined as follows:
- Homework assignments: 10%
- Midterm empirical comparison report: 10%
- Midterm exams: 65%
- Final project: 15%
Grades are assigned on a 100-point scale:
Numeric Range Letter Grade 90-100 A (4.0) 87-90 B+ (3.5) 80-87 B (3.0) 77-80 C+ (2.5) 70-77 C (2.0) 60-70 D (1.0) 0-60 F (0.0)
Course website
Please check the course web page, regularly for important announcements.
Reading Assignments
Reading assignments are posted on the course schedule. I expect you to do the reading before class. Class time will be for asking questions about parts of the reading you did not understand to your satisfaction.
Homework assignments
Programming assignments will consist of written questions along with occasional implementation of pseudocode algorithmic solutions to the problems. Collaboration on homework assignments is encouraged, but each student must submit their own solutions that demonstrate their understanding of the material.
Homework assignments will be collected at the beginning of class. Late assignments will be marked down 20% per day late. No credit will be given for assignments that are more than three (3) days late.
Empirical Comparison Report
Several homework assignments will include a sort implementation question to generate empirical data for different size inputs. The comparison report will require students to examine the fit of the empirical data to asymptotic bounds, and then provide a detailed discussion of how the different sorting algorithms compare with each other. Further details will be provided later in the semester.
Exams
No make-up exams will be given without approval of the instructor prior to class unless proof of extreme emergency or illness is provided.
You must receive a score of 70+ on AT LEAST ONE exam to earn a passing grade for the course.
Exams will consist of an in-class portion and a take-home portion. The in-class portion will be closed book. The take-home portion will be open book, lecture notes, and homework solutions.
Final Project
The project will be on a topic of interest not covered in class. The intent is to provide an opportunity for the student to investigate current research. The project will consist of a short written report and an oral presentation. Further details will be provided later in the semester.
Academic Integrity
York College’s mission statement stipulates that strict adherence to principles of academic honesty is expected of all students. Therefore, academic dishonesty will not be tolerated at York College. Academic dishonesty refers to actions such as, but not limited to, cheating, plagiarism, fabricating research, falsifying academic documents, etc., and includes all situations where students make use of the work of others and claim such work as their own.
The following policy pertains to all graded work in this course:
All graded (individual) assignments are to be completed individually. I encourage you to discuss high level concepts with other students, but any work you submit must be yours alone.
Direct copying of solutions or work from other students, web sites, or other sources is absolutely forbidden under any circumstances.
Any sources (books, websites, articles, fellow students, etc.), except for the course textbook and lecture notes, that you consult in completing an assignment must be properly acknowledged. In general, I strongly discourage you from using any resource not explicitly listed in the course syllabus or on the course web page but rather asking the instructor for assistance.
When a faculty member believes a student has committed an act of academic dishonesty, the faculty member must inform the student in writing and then has ten business days from that written notification to the student to report the incident to the Dean of Academic Affairs and the Department Chair. Documentation related to instances of academic dishonesty will be kept on file in the student’s permanent record. If the academic dishonesty is the student’s first offense, the faculty member will have the discretion to decide on a suitable sanction up to a grade of 0 for the course. Students are not permitted to withdraw from a course in which they have been accused of academic dishonesty.
Attendance
Students are expected to attend all scheduled classes and read the appropriate text material prior to class. If you must miss a class, it is your responsibility to notify the professor prior to class. Students are responsible for all material covered in class.
You may work ahead and submit any assignments early, but you must not fall behind. Class time is intended to be used for answering questions about the reading, labs, and assignments. You are responsible for keeping up with the reading assignments as described in the schedule.
Professionalism
I expect you to conduct yourself as a professional in this course. Professionalism includes:
- Respect for and courteous interaction with peers, faculty and facilities;
- Integrity, which includes at its core honesty, responsibility and accountability for one’s own actions;
- Sensitivity and appreciation for diverse cultures, backgrounds, and life experiences;
- Constructive evaluation, which means that criticism is offered and accepted in a productive manner;
- Self-reflection and identification of one’s own strengths and weaknesses;
- Responsibility for one’s own education and learning;
- An attitude that fosters professional behavior in colleagues and peers;
- Punctuality at meetings and class sessions;
- Attentive behavior during class sessions, avoiding personal or social use of cell phones, laptops, or other electronic devices;
- Acknowledgement of the Kinsley Engineering Center as a professional workplace, and treatment of this facility as a business or office space, not as an informal space.
I reserve the right to enforce this code through the York College Code of Student Conduct.
Use of Personal Technology in the Classroom
While York College recognizes students’ need for educational and emergency-related technological devices such as laptops, PDA’s, cellular phones, etc., using them unethically or recreationally during class time is never appropriate. The college recognizes and supports faculty members’ authority to regulate in their classrooms student use of all electronic devices.
Communication Standards
York College recognizes the importance of effective communication in all disciplines and careers. Therefore, students are expected to competently analyze, synthesize, organize, and articulate course material in papers, examinations and presentations. In addition, students should know and use communication skills current to their field of study, recognize the need for revision as part of their writing process, and employ standard conventions of English usage in both writing and speaking. Students may be asked to further revise assignments that do not demonstrate effective use of these communication skills.
Disability Support Services
If you had an IEP or 504 plan in high school or if you have a disability or health condition that impacts you in the classroom, please contact Linda Miller, Director of Disability Support Services, at 815-1785 or lmille18@ycp.edu to discuss obtaining the accommodations for which you may be eligible. If you already have an accommodation memo and wish to access your accommodations in this class, please see me confidentially to discuss.
Disclaimer
This syllabus is subject to change by the instructor.