csc1700 - Analysis of Algorithms

Instructor: Dr. Henry Carter (henry.carter 'at' villanova.edu)
Meeting Times: MWF 09:30 - 10:20 (sec 002), 11:30-12:20 (sec 001)
Location: 9:30: Mendel 290; 11:30: Mendel G86
Credits: 3
Prerequisites: (CSC 1300 or MAT 2600) and (CSC 1052 or ECE 2620)
Office: Mendel 165B, (610)519-5412
Office Hours: M 13:00-14:00; W 13:00-15:00; H 09:00-10:00; or by appointment
Webpage: http://www.csc.villanova.edu/~carterh/Courses/csc1700/f16/index.html
Schedule: click here
TA: Shruthika Vangala (svangal1 'at' villanova.edu)
TA office hours: T 13:00-15:00, Mendel 158

Overview

This course provides an introduction to the theory underlying computer algorithms. Students successfully completing this class will have a basic understanding of how algorithms for problem solving on computers are designed and analyzed, and will be prepared begin independently designing algorithms to solve new problems. The course begins with a tutorial of the basic algorithmic analysis techniques, continues with a study of basic algorithms for solving common computing problems, and concludes with a look at computational complexity and approximate solutions.

Topics covered include analysis of recursive and nonrecursive algorithms; design techniques: brute force, greedy, divide-and-conquer, dynamic programming, backtracking, branch-and-bound, space and time tradeoffs; NP-completeness; approximation algorithms; computational problems: sorting, searching, string processing, graphs, arithmetic, linear algebra.

The course objectives are:

  • Establish an understanding of the fundamental techniques for the design and analysis of algorithms.
  • Establish an understanding of efficiency classifications and mathematical analysis of recursive and nonrecursive algorithms.
  • Apply analysis techniques to important problems from various areas of computing including sorting, searching, string processing, graphs, arithmetic, and matrix algebra.

Most of the course readings will come from the required book, with possible additional papers assigned for readings and as reference material.

  • Anany Levitin, Design and Analysis of Algorithms, 3rd edition (Amazon)

A detailed list of lectures, readings, assignments, due dates (subject to change as the semester evolves) is available on the course schedule.

Grading

Students will be evaluated based on the following breakdown:

  • 25% Weekly quizzes (average of 10 best)
  • 30% Midterm
  • 40% Final
  • 5% Class Participation

Scale: F ≤ 50 < D- ≤ 54 < D ≤ 59 < D+ ≤ 63 < C- ≤ 67 < C ≤ 71 < C+ ≤ 75 < B- ≤ 79 < B ≤ 83 < B+ ≤ 87 < A- ≤ 91 < A

Exam

The course will include one midterm and one final exam. Students will be responsible for material covered both in the readings AND lectures. Attendance is therefore recommended as not all class discussions will be covered in the text. The average score of the two exams must be ≥50 to pass the course.

Quizzes

10-minute quizzes will be given in the last course period each week. It is strongly suggested that students do the reading prior class, as a good percentage of their grade will depend on them. Quizzes missed because of absences can not be made up unless arrangements are made with the instructor prior to the course meeting.

Assignments

The instructor will assign homework assignments on a periodic basis for topics associated with the class assignments. The content of these assignments will be decided over the course of the semester. While the assignments will not be graded, they provide critical practice for the course material that will allow students to perform well on the weekly quizzes and exams.

Class Participation

To do well in this course, students must take active and regular roles in discussion and demonstrate comprehension of the reading and lecture themes. Students are required to do the assigned reading before class. This will be closely monitored by the professor, thereby making a student's ability to demonstrate their comprehension of material essential to a receiving a passing grade.

Disabilities and Learning Support

It is the policy of Villanova to make reasonable academic accommodations for qualified individuals with disabilities. You must present verification and register with the Learning Support Office by contacting 610-519-5176 or at learning.support.services@villanova.edu. Accommodations cannot be made until verification is delivered to the professor, and cannot be enacted retroactively. For physical access or temporary disabling conditions, please contact the Office of Disability Services at 610-519-4095 or email Stephen.mcwilliams@villanova.edu Registration is needed in order to receive accommodations.

Academic Integrity Policy

All students are expected to uphold Villanova's Academic Integrity Policy and Code. Any incident of academic dishonesty will be reported to the Dean of the College of Liberal Arts and Sciences for disciplinary action. For the College's statement on Academic Integrity, you should consult the Enchiridion. You may view the university's Academic Integrity Policy and Code, as well as other useful information related to writing papers, at the Academic Integrity Gateway web site