First, I'm going to list all the modules I've taken so far since I'm slightly inspired by my friend's (shijun) list.
Legend:
green modules are those I think are relevant for game programmers
blue modules are those I think are semi-relevant for game programmers
white modules are those I think are not relevant
Modules | Title | Brief Reason |
MA1505 | Mathematics I | (Junior College Math) ^ 2 |
CS1104 | Computer Organisation | Basics of computer hardware |
CS3241 | Computer Graphics | Basics of how to produce screen images |
CS2105 | Computer Networks I | Basics of Networking |
CS4213 | Game Development I | Basics of what is in a game |
CS1101/S | Programming Methodology | Escaped this with test but useful |
CS1102/S | Data Structures and Algorithms | I probably do not need to give a reason for this but useful |
CS2103 | Software Engineering | Understanding of Code Structuring |
CS2102S | Database Systems | Understanding of Databases |
CS3244 | Machine Learning and Neural Networks | Understanding of how games can learn |
CS3212 | Progamming Languages | Understanding of how to create a game script |
CS3243 | Foundations of Artificial Intelligence | Understanding of how to make games smart |
CS3220 | Computer Architecture | Understanding of modern hardware and assembly code |
CS3211 | Parallel and Concurrent Programming | Understanding of multi-threaded game execution |
CS4247 | Image Synthesis and Computer Animation | Understanding of Quaternions, Textures and Buffers used in games |
CS3215 | Software Engineering Project | Understanding of team communication |
CS2106 | Operating Systems | Understanding of what runs "behind-the-scenes" |
MA1101R | Linear Algebra I | Useful for 3D games |
ST2131 | Probability | Useful for games with chance or randomness |
GEK1025 | Reading Visual Images | Related: Basics of art styles |
CS2301 | Business and Technical Communication | Related: Basics of how to present yourself and write manuals |
CS3230 | Design and Analysis of Algorithms | Related: Basics of creating optimal solutions |
CS3248 | Design of Interactive Media | Related: Basics of Interactive Media Concepts |
NM2101 | Theories of Communications and New Media | Related: Basics of media theories |
GEK1519 | Science of Music | Related: Basics of music |
SSB2212 | Singapore Legal System: Implications for business | Related: Basics of Singapore business law |
CS4243 | Computer Vision and Pattern Recognition | Related: Basics of what to do with photos and webcams |
CS1231 | Discrete Structures | Not apparently useful if it is useful |
LSM1301 | General Biology | Not very useful for games but had to take it. Interesting though |
PC1432 | Physics Module: Physics II | Not very useful for games but had to take it. Tough |
JS2213 | Popular Culture in Comtemporary Japan | Personal Interest |
LAJ1201 | Japanese I | Personal Interest |
LAJ2201 | Japanese II | Personal Interest |
NM2210 | Aesthetics of New Media | Personal Interest |
CS3108A | Computational Thinking Seminar | Took to fill up my 1 UE point (out of 21 UE points) |
Disclaimer: The reasons above are mine alone and do not reflect anything of the school's opinion.
I would have to say that the modules in green are the ones I find that I can apply the knowledge in my future career. The blue ones are those which will definitely help me at one time or another since I will be having to communicate with all professions of people in my line such as artists and musicians. The last few modules I think are mainly filler modules and I wish I could have used the time spent there to do more relevant topics.
And sorry no, you won't get to see my grades for each of them. My main point of doing this list is so that juniors who are interested in game programming can start to plan early about what modules to take and this is list is meant to be a very brief guide about what to learn the necessary skills for game development. Again, this is by no means the best guide and I'm sure many people may beg to differ on many aspects, but I do personally feel that what I have chosen so far in NUS is one of the better routes suited towards game programmers.
Modulo
I hate to create long posts because I know people get bored of reading by this point but I feel that I need to publicise this next project I did with any two friends as it is one of the most useful tools I have done. They are Lim Zhan Wei and Alvin Ng Shi Jiin. We did this program as part of the CS3243 Artificial Intelligence module in August 2006 under some supervision/consultation of our then teaching assistant Lim Yew Jin who is now working for Google America after he got his phD. The best part of this was that we had the freedom to decide what project we should work on.
Modulo is a program which can help ALL NUS students plan their timetable (ok maybe not all with some exceptions). It is arguable better than all NUS timetable builders that we know as it uses Constraint Satisfaction to search for a timetable that you want. All you need to do is to select the modules you want and click go and your timetable is optimized for you. It retrieves information from the cors module pages and parses the html to extract out the information so that's where it may fail if cors decides to change their formats. It includes options to keep lunch hours free, prefer late morning classes so that you do not have to wake up too early, and to maximise your free days amongst others.
I just want to comment that I've tried to contact IVLE to see if they would be interested in using the program but to my disappointment, I don't believe they ever replied. Since I am leaving NUS soon, I think I will probably take this project down as well this July if there is no interest in integrating it to any official system. Furthermore, I have not had the time to improve/upgrade this project and have not really modified it since two years ago and I personally don't believe that I should leave unattended trash in the internet around. So if the above link is non-existent in half a years time, you know what happened to it.
Thanks to all those who have downloaded it and liked it.
Please post your comments below if you like someone to get this project integrated with an official school system.
Please post your comments below if you like someone to get this project integrated with an official school system.
Oh.. And Merry Christmas!
(Sorry about the two year old gift. I'm sure you'll like it though.)
(Sorry about the two year old gift. I'm sure you'll like it though.)
2 comments:
hey i noticed u took GEK1025... did u find it interesting? how did u score for it? -nus undergraduate taking GEK1025
Hi, I scored an average grade of B for it. But i don't think that shouldn't deter you from taking it.
I personally found it very interesting to learn more about Art History and the famous artists that many people talk about, like Leonardo Da Vinci and Michelangelo. It also teaches you the basics of appreciating art as well as learning how to differentiate art styles.
Only things I did not like were that you have to memorize material including dates and titles of art pieces for the tests, which is probably why I didn't do so well. Hope you have fun in it!
Post a Comment