Algorithmic Problem Solving studies the implementation and application of algorithms to a variety of problems. Topics covered will include:
Evaluation is based on participation in programming contests, quizzes, and exams.
Students who would like to develop their programming and algorithmic skills by having a new set of programming challenges presented to them in each class. Basic algorithms and comfort with Java or C++ is a prerequisite.
Students can expect to be challenged and practice understanding and implementing algorithmic ideas outside their skillset. Each class, a new set of problems will be presented to the students and they will be asked to solve the problems. The problems will then be discussed as a class, and each student is expected to contribute to the discussions.
Tuesday and Thursday, 3:30PM-4:45PM, CIWW 101
Friday, 5:10PM-7:10PM, CIWW 101
For John: Wednesdays from 9am to 10am in WWH 328 and Mondays from 7:30pm to 8:30pm in the 13th floor lounge. Please email me in advance just to give me a heads up.
Codebooks are allowed for standard algorithms, but all of the submitted code must be your own. Collaboration is allowed on all assigments except the midterm and final, but each student must submit his/her own code. Programming assignments will be submitted through Virtual Judge. More information will be posted here for each assignment. If you are enrolled in the course, please register an account on Virtual Judge with username netid_CS480S16. If you are just following the course but are not enrolled, any username will do, but please do not suffix it with _CS480S16.
Each week there will be a programming homework hosted on the Virtual Judge, with links given below. As stated above, please register an account on Virtual Judge with username netid_CS480S16. Your grade will be based on the number of problems solved correctly.
All programs must take their input from standard input, and must write their output to standard output. Java programs must be contained in a public class entitled Main, and they must be in the default package. C++ programs must have a function main, and Java programs must have a method main. If you get Judging Error 1, it means the judging queue is backed up, and you can simply click refresh to be rejudged. If you get Judging Error 2, it means their are server-side communication errors, and your submission should be automatically rejudged when the communication problems are fixed. On Judging Error 2, if you see other people getting submissions through, you may want to resubmit. The student ranking (not used to determine your HW grade) is determined by how quickly you submit each problem (measured from the start of the competition), and how many incorrect submissions you have made (penalized 20 minutes for each incorrect submission).
Lectures and assignments will be posted here. Based on material used with permission from Bowen Yu, Brett Bernstein and Sean McIntyre.