Course description: This course is for students interested in advanced design and programming methods for solving complex algorithmic problems. We will study problems in data mining, machine learning, combinatorial search, puzzle games, graph queries, program analysis, distributed computing, and security. We will study advanced languages and optimizations for rapid programming of efficient solutions to these problems. We will also use powerful tools and efficient solvers in implementing the solutions and evaluating the results through solving complex real-world problems.
Prerequisites: an algorithm course, a programming language principles or compiler course, a database course, and skills for programming in a high-level language such as Python or Java; or permission of the instructor. | Credits: 3.
Instructor: Annie Liu | Email: firstname.lastname@example.org | Office: New CS 237 | Phone: 631-632-8463 | Office hours: Mon 2:20-3:20PM, Tue 9:40-10AM, 11:20AM-12:40PM, Thu 9:40-10AM, email for an appointment, or stop by any time I'm around.
TA: Saksham Chand | Email: email@example.com | Office:New CS 234 | Office hours: Thu 2:30-3:15PM.
Lectures: Tue Thu 10:00-11:20AM, in New CS 115.
Textbook: There is no required textbook for this course; relevant materials and additional references will be given as the course proceeds.
Grading: Lecture critiques, lecture notes, in-class exercises, reading and homework assignments, 2 exams, and a project, each worth 5%, 5%, 10%, 20%, 2 x 20%, and 20%, respectively, of the grade. Reduced credit for late submissions, 20% per day.
Course homepage: http://www.cs.stonybrook.edu/~liu/cse591
08/30 Introduction. Questionnaire
09/01-09/15 Unit 1: Overview of a systematic method. Assignment 1. 09/06 no class, Labor day
09/20-09/29 Unit 2: Data mining and machine learning. Assignment 2
10/04-10/13 Unit 3: Graph queries and program analysis. Assignment 3
10/20 Exam 1: In-class exam. 10/18 no class, Review day:)
10/25-11/03 Unit 4: Combinatorial search and puzzle games. Assignment 4
11/08-11/17 Unit 5: Distributed algorithms and security protocols. Assignment 5
11/22 Project discussion. 11/24 no class, Thanksgiving day
11/29,12/1 Project presentations. 12/6,8 no class, Project days:). 12/9 Project report due
12/16 Exam 2: First part of final exam time: 11:15AM-12:35PM
Assignment 1: Graph reachability
Assignment 2: Bayes and Viterbi
Assignment 3: Complex relations
Assignment 4: Combinatorial games
Assignment 5: Paxos for distributed consensus
Interactive Site of This Course, for students in the class
Computer Science Department Computing Labs
Learn all information on the course homepage. Check the homepage periodically for announcements and other dynamic contents.
Attend all lectures and take good notes. This is the most efficient way to learn the course materials, because we will both distill and elaborate paper materials and discuss other important materials. We will start promptly on time, with quick reviews every time, followed by exercises or quizzes. We will have every student participate in solving problems and presenting solutions in class.
Do all course work. The readings are to help you preview and review the materials discussed in the lectures. The assignments and project are to provide concrete experiences with the basic concepts and methods covered in the lectures. The exercises and quizzes are to help check that you are keeping up with the lectures and the assignments. The exams will be comprehensive.
Ask questions and get help. Ask questions in class, in office hours, and in the Q&A forum. Talk with your classmates, and share ideas (but nothing written or electronic).
Academic Integrity: All course work must be done individually, unless specified otherwise; you may discuss ideas with others and look up references, but you must write up your solutions independently and credit all sources that you used. Any plagiarism or other forms of cheating discovered will have a permanent consequence in your university record.
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. Faculty are required to report any suspected instances of academic dishonesty 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/
Americans with Disabilities Act: If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disability Support Services, ECC(Educational Communications Center) Building, Room 128, (631)632-6748. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential.
Critical Incident Management: Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.