{"ModuleCode":"CS3233","ModuleTitle":"Competitive Programming","Department":"Computer Science","ModuleDescription":"This module aims to prepare students in competitive problem solving. It covers techniques for attacking and solving challenging computational problems. Fundamental algorithmic solving techniques covered include divide and conquer, greedy, dynamic programming, backtracking and branch and bound. Domain specific techniques like number theory, computational geometry, string processing and graph theoretic will also be covered. Advanced AI search techniques like iterative deepening, A* and heuristic search will be included. The module also covers algorithmic and programming language toolkits used in problem solving supported by the solution of representative or well-known problems in the various algorithmic paradigms.","ModuleCredit":"4","Workload":"2-1-0-3-3","Prerequisite":"At least grade 'A-' in (CS2010 or its equivalent) or special permission.","Types":["Module"],"CorsBiddingStats":[{"AcadYear":"2011/2012","Semester":"2","Round":"1A","Group":"Lecture 1","Quota":"8","Bidders":"5","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"2000","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"1A","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"1B","Group":"Lecture 1","Quota":"3","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"1B","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"2A","Group":"Lecture 1","Quota":"5","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students and New Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"2B","Group":"Lecture 1","Quota":"5","Bidders":"1","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"School Of Computing","StudentAcctType":"Returning Students and New Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"3A","Group":"Lecture 1","Quota":"4","Bidders":"1","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2011/2012","Semester":"2","Round":"3B","Group":"Lecture 1","Quota":"3","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"1A","Group":"Lecture 1","Quota":"15","Bidders":"7","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"399","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"1A","Group":"Lecture 1","Quota":"3","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"1A","Group":"Lecture 1","Quota":"3","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"1B","Group":"Lecture 1","Quota":"8","Bidders":"1","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"1B","Group":"Lecture 1","Quota":"3","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"1B","Group":"Lecture 1","Quota":"3","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2A","Group":"Lecture 1","Quota":"7","Bidders":"2","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"2","Faculty":"Engineering","StudentAcctType":"Returning Students and New Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2A","Group":"Lecture 1","Quota":"6","Bidders":"5","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"5000","Faculty":"School Of Computing","StudentAcctType":"Returning Students and New Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2A","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [G]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2B","Group":"Lecture 1","Quota":"7","Bidders":"1","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"Engineering","StudentAcctType":"Returning Students and New Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2B","Group":"Lecture 1","Quota":"1","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students and New Students [P]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2B","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [G]"},{"AcadYear":"2009/2010","Semester":"2","Round":"2C","Group":"Lecture 1","Quota":"10","Bidders":"1","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P, G]"},{"AcadYear":"2009/2010","Semester":"2","Round":"3A","Group":"Lecture 1","Quota":"9","Bidders":"4","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P, G]"},{"AcadYear":"2009/2010","Semester":"2","Round":"3B","Group":"Lecture 1","Quota":"5","Bidders":"2","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P, G]"},{"AcadYear":"2007/2008","Semester":"1","Round":"1B","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2007/2008","Semester":"1","Round":"1B","Group":"Lecture 1","Quota":"10","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1A","Group":"Lecture 1","Quota":"15","Bidders":"2","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"500","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1A","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1B","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1B","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1C","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1C","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"1C","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"2A","Group":"Lecture 1","Quota":"26","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"2A","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"2B","Group":"Lecture 1","Quota":"26","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"2B","Group":"Lecture 1","Quota":"2","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"3A","Group":"Lecture 1","Quota":"28","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"3B","Group":"Lecture 1","Quota":"28","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2006/2007","Semester":"1","Round":"3C","Group":"Lecture 1","Quota":"28","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1A","Group":"Lecture 1","Quota":"15","Bidders":"2","LowestBid":"3","LowestSuccessfulBid":"1","HighestBid":"100","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1A","Group":"Lecture 1","Quota":"10","Bidders":"2","LowestBid":"1","LowestSuccessfulBid":"1","HighestBid":"1","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1B","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1B","Group":"Lecture 1","Quota":"8","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1C","Group":"Lecture 1","Quota":"13","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"Engineering","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1C","Group":"Lecture 1","Quota":"8","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"1C","Group":"Lecture 1","Quota":"5","Bidders":"1","LowestBid":"3","LowestSuccessfulBid":"1","HighestBid":"3","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"2A","Group":"Lecture 1","Quota":"21","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"2A","Group":"Lecture 1","Quota":"4","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"2B","Group":"Lecture 1","Quota":"21","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"Returning Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"2B","Group":"Lecture 1","Quota":"4","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"New Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"3A","Group":"Lecture 1","Quota":"25","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"3B","Group":"Lecture 1","Quota":"25","Bidders":"1","LowestBid":"10","LowestSuccessfulBid":"1","HighestBid":"10","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"3C","Group":"Lecture 1","Quota":"24","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"3D","Group":"Lecture 1","Quota":"24","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"3E","Group":"Lecture 1","Quota":"25","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"},{"AcadYear":"2005/2006","Semester":"1","Round":"3F","Group":"Lecture 1","Quota":"26","Bidders":"0","LowestBid":"0","LowestSuccessfulBid":"0","HighestBid":"0","Faculty":"School Of Computing","StudentAcctType":"NUS Students [P]"}],"AcadYear":"2014/2015","History":[{"Semester":2,"Timetable":[{"ClassNo":"1","LessonType":"Lecture","WeekText":"Every Week","DayText":"Wednesday","StartTime":"1800","EndTime":"2200","Venue":"COM1-B109"}],"IVLE":[{"Announcements":null,"Forums":[],"Workbins":[],"Webcasts":[],"Gradebooks":[],"Polls":[],"Multimedia":[],"LessonPlan":[],"ID":"d5dc9fdb-e130-4606-88f2-aefb8e6044fc","CourseLevel":"1","CourseCode":"CS3233","CourseName":"COMPETITIVE PROGRAMMING","CourseDepartment":"","CourseSemester":"Semester 2","CourseAcadYear":"2014/2015","CourseOpenDate":"/Date(1417536000000+0800)/","CourseOpenDate_js":"2014-12-03T00:00:00","CourseCloseDate":"/Date(1431187140000+0800)/","CourseCloseDate_js":"2015-05-09T23:59:00","CourseMC":"4","isActive":"N","Permission":"S","Creator":{"UserID":null,"Name":"Steven Halim","Email":null,"Title":null,"UserGuid":"18a81690-4c97-4248-adc4-99b5278fa616","AccountType":null},"hasGradebookItems":false,"hasTimetableItems":true,"hasGroupsItems":false,"hasClassGroupsForSignUp":false,"hasGuestRosterItems":false,"hasClassRosterItems":true,"hasWeblinkItems":true,"hasLecturerItems":true,"hasDescriptionItems":true,"hasReadingItems":true,"hasAnnouncementItems":false,"hasProjectGroupItems":false,"hasProjectGroupsForSignUp":false,"hasConsultationItems":false,"hasConsultationSlotsForSignUp":false,"hasLessonPlanItems":false,"Badge":0,"BadgeAnnouncement":0,"WebLinks":[{"ID":"4dcd51e8-0a72-4b69-be1b-2c12e59ecf05","URL":"http://sites.google.com/site/stevenhalim","Description":"Companion website for our main text book","Order":1,"Rating":4,"SiteType":"Educational Website"},{"ID":"b9bd2634-dc7c-4d39-9195-2415ca680191","URL":"http://www.comp.nus.edu.sg/~stevenha/cs3233.html","Description":"CS3233 \"IVLE\" page for this semester. You can keep track of your (and your competitor's) scores and LIVE UVa progress week by week. You can also see the lesson plan there.","Order":2,"Rating":4,"SiteType":""},{"ID":"f2aa2df6-3a51-4cf6-a454-a6ab54b916aa","URL":"https://www.facebook.com/groups/236210576509653","Description":"This is CS3233 Facebook Group 2009-present","Order":3,"Rating":3,"SiteType":"Facebook"},{"ID":"453aa5c1-2f0d-4959-a09e-c5dce45dee02","URL":"http://uva.onlinejudge.org","Description":"University of Valladolid Online Judge (open with Google Chrome incognito mode to avoid unpleasant cache error!)","Order":4,"Rating":4,"SiteType":"Online Judge"},{"ID":"fba538d5-a7f6-462a-9bda-c53532667b62","URL":"https://icpcarchive.ecs.baylor.edu","Description":"ACM ICPC Live Archive","Order":5,"Rating":4,"SiteType":"Online Judge"},{"ID":"5da6547a-e949-4d48-b1ad-9ce8435cc7d7","URL":"http://uhunt.felix-halim.net/","Description":"Felix's UVa tools","Order":6,"Rating":4,"SiteType":"Educational Website"},{"ID":"4b31040f-b831-4dc1-8f85-ca87380ac3df","URL":"http://www.comp.nus.edu.sg/~stevenha/programming/acmoj.html","Description":"Methods to Solve UVa Problems (old one, hopefully I can update this soon)","Order":7,"Rating":4,"SiteType":"Educational Website"},{"ID":"c01a5984-64a6-4a2d-866d-432942525595","URL":"http://algorithmics.comp.nus.edu.sg","Description":"Information about our School programming teams","Order":8,"Rating":3,"SiteType":"Informational Website"},{"ID":"b6478869-949c-4ffd-8af1-291765e445d6","URL":"http://train.usaco.org/usacogate","Description":"USA Computing Olympiad Training Gateway","Order":9,"Rating":3,"SiteType":"Online Judge"},{"ID":"0035a307-5d6c-4bb2-b7ad-e4a076851049","URL":"http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index","Description":"TopCoder Algorithm Tutorials","Order":10,"Rating":3,"SiteType":"Educational Website"}],"Lecturers":[{"ID":"ea65e032-4c5b-4759-9c27-9ddaba412733","User":{"UserID":null,"Name":"Steven Halim","Email":null,"Title":null,"UserGuid":"18a81690-4c97-4248-adc4-99b5278fa616","AccountType":null},"Role":"Lecturer ","Order":1,"ConsultHrs":null},{"ID":"4b0f4a25-f9d3-405e-8762-a4efcf00c564","User":{"UserID":null,"Name":"IRVAN JAHJA","Email":null,"Title":null,"UserGuid":"da2e0bec-9b48-48e7-a220-1cb7176721df","AccountType":null},"Role":"Teaching Assistant ","Order":3,"ConsultHrs":null},{"ID":"68eb9c4d-7075-49fd-b3b8-e9f88c495a6a","User":{"UserID":null,"Name":"JONATHAN IRVIN GUNAWAN","Email":null,"Title":null,"UserGuid":"e3db5c72-e864-43b6-80c4-94d4b23b75a7","AccountType":null},"Role":"Teaching Assistant ","Order":4,"ConsultHrs":null},{"ID":"83eb8a3f-51e1-49e4-ac15-6fab39c933f5","User":{"UserID":null,"Name":"NATHAN AZARIA","Email":null,"Title":null,"UserGuid":"3acbdfe4-bb9d-4694-ad97-bc86957150eb","AccountType":null},"Role":"Teaching Assistant ","Order":5,"ConsultHrs":null}],"Descriptions":[{"ID":"1e5f053b-8835-4692-be49-41f07234cfff","Title":"Learning Outcomes","Description":"This module aims to prepare students in competitive problem solving.
\n
\nIt will benefit NUS students who want to compete in ACM ICPC, invited high school students who want to compete in IOI, and NUS students in general who aspire to excel in technical interviews of top IT companies.
\n
\nIt covers techniques for attacking and solving challenging* computational problems. Fundamental algorithmic solving techniques covered include complete search, divide/reduce/transform and conquer, greedy, dynamic programming, etc. Domain specific techniques like graph, mathematics-related, string processing, and computational geometry will also be covered. Some additional topics may be included depending on how the semester progresses. Programming language libraries that are commonly used in problem solving will also be taught.
\n
\n*. We only study well-known/solved problems, not research problems.
\n
\n
\n
\nNOTE: This IVLE page is not maintained, please visit http://www.comp.nus.edu.sg/~stevenha/cs3233.html instead.","Order":1},{"ID":"2e5f053b-8835-4692-be49-41f07234cfff","Title":"Prerequisites","Description":"At least an 'A-' grade in CS2010/CS2020 or special permission from the lecturer (e.g. had participated and did well in national or international level programming contest(s) like NOI, IOI, or ACM ICPC).
\n","Order":2},{"ID":"a523ae1a-e469-4264-ab62-a65697fe04e5","Title":"Workload","Description":"2-1-0-3-3.
\n
\nThe 2 hours lecture, 1 hour tutorial, and 0 hour lab are combined into 3 hours lecture + hands-on session on every Wednesday 6-9.15pm.
\n
\nEach class usually starts with 75 minutes top-coder individual programming contest, followed by 15 minutes break / discussion of past contests.
\nEach contest contains: 1 (very?) easy + 1 easy-medium problems that have been taught in previous week(s) + 1 medium-hard problem that can also be from previous week(s) or just simply "out of topic", usually harder/more creative (this one for CS3233R).
\nThen, the course material will be delivered via lectures.
\nOn most weeks, classes will end by 9-9.15pm.
\n
\nFor weekly homeworks (3+3 = 6 hours++), students are expected to read "Competitive Programming 3" textbook and attempt some written and programming exercises...
\n
\nStudents have to do lots of programming in this course.
\n","Order":9}],"ReadingFormatted":[{"ID":"9275ac7e-e6b2-4cbf-9a29-314c37eb28d7","Title":"Competitive Programming 3","Author":"Steven Halim and Felix Halim","Edition":"3e","PubYear":"2013","ISBN":"0000000000","Publisher":"Lulu","BookType":"Compulsory","AdditionalInfo":"For CP3, you need to contact the lecturer directly.\n\nYou can buy the \"proper\" book via: http://www.lulu.com/spotlight/stevenhalimatgmaildotcom.\n\nYou can also go to NUS Central Library. The earlier editions of this book are available under RBR scheme: CL RBR (Loans De QA76.6 Hal 2010/1st or QA76.6 Hal 2011/2nd or QA76.6 Hal 2013/3rd).","CompWebsite":"http://sites.google.com/site/stevenhalim/","Order":1},{"ID":"cf12092f-ecc0-4d17-9742-3896790879c8","Title":"Introduction to Algorithms","Author":"Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein","Edition":"2nd","PubYear":"2001","ISBN":"0262032937","Publisher":"MIT Press","BookType":"References","AdditionalInfo":"","CompWebsite":"http://mitpress.mit.edu/algorithms/","Order":2},{"ID":"234785dc-f04d-49a1-88e5-787e5320fbd0","Title":"Algorithm Design Manual","Author":"Steven S. Skiena","Edition":"2nd","PubYear":"2008","ISBN":"1848000693","Publisher":"Springer","BookType":"References","AdditionalInfo":"","CompWebsite":"http://www.algorist.com/","Order":3},{"ID":"d83dab30-de92-4ff4-a390-afb268e565f1","Title":"Programming Challenges","Author":"Steven S. Skiena and Miguel A. Revilla","Edition":"1st","PubYear":"2003","ISBN":"0387001638","Publisher":"Springer","BookType":"References","AdditionalInfo":"","CompWebsite":"http://www.programming-challenges.com/pg.php?page=index","Order":4},{"ID":"b3e5355e-7b41-4040-a0a0-d8361234c185","Title":"Introduction to the Design and Analysis of Algorithms","Author":"Anany Levitin","Edition":"2nd","PubYear":"2006","ISBN":"0321358287","Publisher":"Addison Wesley","BookType":"References","AdditionalInfo":"","CompWebsite":"","Order":5},{"ID":"93aa7a5c-10f2-4e38-878f-17c073be0987","Title":"Algorithms in C++ (Part 1-5)","Author":"Robert Sedgewick","Edition":"3rd","PubYear":"2002","ISBN":"020172684X","Publisher":"Addison Wesley","BookType":"References","AdditionalInfo":"","CompWebsite":"","Order":6},{"ID":"6eb53674-8396-40b5-bb08-8aa4cfccab6a","Title":"Algorithm Design","Author":"Jon Kleinberg and Eva Tardos","Edition":"","PubYear":"2005","ISBN":"0321295358","Publisher":"Addison Wesley","BookType":"References","AdditionalInfo":"","CompWebsite":"","Order":7},{"ID":"7657e0ea-5d5f-4110-9848-1024f2efed2e","Title":"Art of Programming Contest","Author":"Ahmed S. Arefin (and Steven Halim)","Edition":"","PubYear":"2007","ISBN":"","Publisher":"","BookType":"References","AdditionalInfo":"","CompWebsite":"","Order":8}],"ReadingUnformatted":[]}],"Lecturers":["Steven Halim"],"LecturePeriods":["Wednesday Evening"]}]}