Analysis of Algorithms

CSE373: Analysis of Algorithms

Course Info

Instructor: Prof. Jihoon Ryoo  (jihoon.ryoo@sunykorea.ac.kr, https://sites.google.com/site/jihoonryoo/ ), C413

When: 5:00-6:20 PM Tuesday/Thursday

Where: B205

Class website for HW and QUIZ submission:  CSE373 Analysis of Algorithms for SUNY Korea at Google classroom ( rur5won

Office hours: Tuesday/Thursday 4:00 - 5PM or by appointment if necessary 

Textbook: Skiena, The Algorithm Design Manual, second edition, Springer-Verlag, 2008. Free PDF version available online. 

Note to the class: This CSE373 is designed by Steven Skiena – Distinguished Teaching Professor of Computer Science at SBU; I am following his philosophy on teaching this class.

Grading Policy

Grades will be assigned based on the following formula, with cut-offs determined by my opinion of students on the boundary. 

Programming Assignments –10% (1% points of 10 practices) 

Programming Tests –15% (5% points of 3 tests) 

Midterm 1 – 20% 

Midterm 2 – 20

Final Exam – 30

Participation - 5% This course would be successful only when it's interactive. Students are highly encouraged to ask questions, present their opinion, and lead discussions. 

Quizzes – extra points 

*The weights are approximate and subject to change 


Programming Assignments

There will be ten programming practices over the course of the semester. All practices should be done by only you. Practices will be graded based on your effort (PASS/MARGINAL/FAIL), incorrect answers will be accepted but copied submission will consider as violation. Please try and practice. You must submit your solution at Google classroom before the deadline. No late acceptance.

 Programming Tests

There will be three programming tests at the end of the month (September/October/November). Test will be graded based on your score, one problem is drawn from given practices, and the other one is the new case with the same level of PP. Please try and practice. The test will be conducted in a closed room without Internet connection.  

Exams

My exam strategy is as follows.  Programming practices and midterm exam problems will be drawn from the coursework. Thus the correct way to study for this course is to review these problems and figure out how to solve them. The more you work, the better your grade will be. The midterm will be closed book, but there is no need to memorize solutions. Once you have solved them once you should be able to reconstruct them on demand. A page of (you can use front and back of the A4 or equivalent paper size) cheating sheet is allowed in the exams. If the exam must be done online it will be time limited online exam.

 

Rules of the Games

1. We will use Google classroom as a question and answer platform this semester. That said, I will be doing as little as possible with it, so students will have to fill the void. The Google classroom link is given above. 

2. The best way to learn the material is by solving problems. You are encouraged to work in pairs, for the best way to understand the subtleties of the homework problems are to argue about the answers. Each of you should look at all the problems independently, and not just divide the list in two parts each time. Don't be a leech and let your partner do all the work. Unless you learn how to solve problems, I promise that you will get burned on the exams and thus for your final grade. 

3. The partner system relies upon a certain maturity among the students. If you don't have a partner, tell me and I will hook you up with one. If you are having trouble with your partner and want a divorce, tell me and I will set you up with a new one. I will act as a broker but not as a counselor. I do not want to hear what a louse your old partner is, and you will get a dirty look from me when you demand a divorce regardless of who was at fault. Your solution to the assignment must be turned in individually. Unless announced otherwise in class, any solution to a part of a homework problem which takes more than one side of a sheet of paper will not be graded. This is to save you the ordeal of trying to impress with volume instead of quality.  

4. Even if you discuss them with your classmates, you should turn in your own code and write-up. Do not share your code! The late submission will be 10% penalty per day. 

5. If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disability Support Services office. They will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential. Students who require assistance during emergency evacuation are encouraged to discuss their needs with me. 

6. Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at: http://www.stonybrook.edu/uaa/academicjudiciary  Adopted by the Undergraduate Council September 12, 2006


Intended Audience

This course is intended for undergraduate students with interests in all areas of Analysis of Algorithm. Prerequisites include a foundation in Linear Algebra and Calculus, and the ability to program. We will be programming in Python (NumPy, SciKit).