ECS 60 - Data Structures and Programming

ECS 60 - Data Structures and Programming

CS 302 – Introduction to Algorithms
Spring 2018
Course Information

Instructor: Ananya Das Christman
InstructorEmail:
Office Hours: Mondays2:45pm – 3:45pm & Wednesdays/Fridays 11:00am – 12:00pm, (and by appointment)
Office: McCardell Bicentennial Hall (MBH) 637

Lectures:
MWF 10:10am - 11:00am, MBH 219

Course Objective:
This course will focus on the design and analysis of algorithms. Topics include divide and conquer, randomized algorithms, dynamic programming, graph algorithms, and NP-completeness. We will also cover basic techniques for analyzing the efficiency of algorithms.

Learning Goals:

  • Have the tools needed to design an efficient algorithm for a problem(if such an algorithm exists)
  • Determine whether an algorithm you wrote solves a problem correctly
  • Have the wisdom and ability to determine when most likely a problem cannot be solvedefficiently
  • Appreciate the creativity and beauty involved in designing efficient algorithms

Course Webpages/Resources:

  • http://www.cs.middlebury.edu/~achristman/cs302/index.html: This is the primary course webpage. It will contain course information and materials. You are responsible for regularly checking this site to stay updated.
  • go.middlebury.edu/canvas: This site will be used for posting solutions.
  • email: Course announcements will be made through Middlebury email. You are responsible for regularly checking your email to stay updated.

Textbook:
No required text but the following is a good reference and on reserves at Armstrong Library:

Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein (CLRS). 3rd edition, Addison Wesley, 2009.

Some homework problems may come from this book.

Course Grading:

Homework / 33%
Midterm / 27%
Class Participation/
Attendance / 5%
Final / 35%

Tutors:

Assignments will be due on Mondays, Wednesdays, and Fridays so evening tutors will be available (at least) on Sundays, Tuesdays, and Thursdays.

More info will also be posted at go/cstutors.

Homework:

Much of what is learned in this course will be from trying to solve the homework problems, so make a conscientious effort to complete them well. Some of the problems may be quite challenging so do not be surprised if some of them stump you; you are not expected to solve every homework problem perfectly.

Your solutions should be concise, correct, and legible. Understandability of the solution is as necessary as correctness. Expect to lose points if you provide a "correct" solution with an unclear write-up. As with an English paper, do not expect to turn in a first draft: it takes refinement to describe something well. If you can't solve a problem, briefly indicate what you've tried and where the difficulty lies. Don't try to pull one over on us. :)

Problem sets will be assigned roughly every 1 ½ weeks, due by the first 5 minutes of class,typically using the following schedule: if an assignment is out on Monday, it will be due the following Wednesday; if out on Wednesday, due the following Friday; if out on Friday, due the Monday after the following Monday. You are encouraged to discuss homework problems with classmates, but you must write up your solutions independently. I encourage you to use LaTex, but you may use any editor. Some assignments may include short programming problems that you can complete in either Java or Python.

Homework Submission:

Written homework submissions must:

  • Be typed
  • Be stapled (points will be deducted for non-stapled submissions)
  • Be submitted as a hardcopy (I will NOT accept any electronic copies). If you are unable to submit a hardcopy in class due to illness, travel, etc., then make sure you either ask a friend or submit it to me before the due date (otherwise your submission will be counted as late). There are no exceptions – please don’t ask.
  • Be submitted within the first 5 minutes of class on the due date.
  • Include the honor code with your signature on the top of the first page.
  • (If the submission is late) include the day/time of the submission on the top of the first page.

(Optional) Reflections:

After each homework solution is posted (three days after the assignment’s due date), you will have the opportunity to earn back a portion of the points that you may have lost on the assignment. After reading and understanding the homework solutions, you may submit a reflection identifying and explaining your errors. Your reflection will be graded by one of your peers using a simple rubric to earn 50% (excellent), 30% (good), 15% (so-so), or 0%(gibberish/garbage) of the points back. (I will provide more details on both the reflection and the grading rubric).

Exams:

There will be one midterm and one final.

Final Exam: Thursday, May 17, 9:00am-12:00pm

Class Attendance/Participation:

Since many of the topics covered in this class will not be directly from the textbook, it is extremely important for you to attend the lectures. Class attendance and participation will also make up a small but important portion of your grade. Your attendance/participation grade will be based on your attending class regularly and showing evidence that you are actively engaged in the class.

Please keep in mind that if you do miss class, you are responsible for any missed material. I will not reiterate material that has already been covered solely for students who missed the original lecture. If you miss class, you are certainly welcome to review topics with me during my office hours, but please do so only after reviewing the notes on line and discussing them with a classmate who was present during the lecture.

Lateness Policy:

You will be allowed three late days (including weekends/holidays) for the semester. You must notify me before the due date if you are planning to use a late day (no exceptions). After the three late days, no late assignments will be accepted.

Computer and Cell Phone Policy:

You may use desktop or laptop computers (quietly) during lecture to take notes. You should not use computers during lecture for any other purposes (e.g. email, web browsing, games, work for other classes, etc.). You may not use cell phones during lecture or exams.

Disabilities Accommodations
Students with documented disabilities who believe that they may need accommodations in this class are encouraged to contact me as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. Assistance is available to eligible students through the ADA Office. Please contact Jodi Litchfield, the ADA Coordinator, at or 802-443-5936 for more information. All discussions will remain confidential.

Academic Honor Code:

Any form of plagiarism, including copying others’ solutions or solutions posted on the web, is considered a violation of the honor code and will be heavily penalized. Note that allowing someone else to copy your solutions also violates the honor code. Any assignment that shows signs of plagiarism will be investigated and reported if necessary. Violations will result in a homework grade of 0 and will be reported to the academic judicial board.

This information sheet serves solely as a tentative guideline for the course and maybe modified.