"Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better."
(Donald Knuth)
Announcements
May. 29 - The presentation schedule on June 9 (Tuesday) is as follows:
13:00 ~ 13:30 - Lee
13:30 ~ 14:00 - Tan
14:00 ~ 14:30 - Chai
14:30 ~ 15:00 - Singh
15:00 ~ 15:30 - Liew
15:30 ~ 16:00 - Ong
Note that I used List Randomizer. If you want to change the order, let me know.
"Google will provide a stipend of 5000 USD per developer, of which 4500 USD goes to the student and 500 USD to the Mentor Organization upon successful completion of a project.
Students will be paid 500 USD upon start of coding work provided they are in good standing with their Mentor Organization, 2000 USD mid-Program provided sufficient progress has been made on their project, and 2000 USD at the close of the Program provided their project has been completed. "
Course Objectives and Backgrounds -
We will focus on a study of basic techniques for design and analysis of efficient algorithms.
We emphasize on learning to formulate algorithmic problems and on developing problem-solving skills.
Based on those above-mentioned objectives, fundamental techniques and concepts such as sorting, searching, graph algorithms, string processing and NP-completeness will be explored.
We will also discuss design techniques such as dynamic programming as well as the greedy method, and asymptotic, worst-case, average-case and amortized analyses.
We will cover data structures including heaps, hash tables, binary search trees and red-black trees.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, The MIT Press; 2nd edition, September 1, 2001.
Jon Kleinberg and Eva Tardos, Algorithm Design, Addison-Wesley, 2006.