You’re halfway into your third year and in your favourite class, CS3216 Software Development on Evolving Platforms. Today’s guest speaker is an SoC alumnus who describes how his studies in artificial intelligence, computational geometry and human computer interaction allowed him to develop an intuitive gesture system for an iPad game while he was a student here. You listen with interest as he describes how he founded a company to develop the game into a highly profitable, chart topping mobile app. After class, you chat with your project teammate about your project to reduce manpower needs in restaurants by using customers’ mobiles for ordering and billing. You discuss your concerns about the potential trade-off between customer service and manpower savings while you are rushing to your next class, CS3244 Machine Learning. While the professor is describing the hidden Markov model, you feel a tap on your shoulder. It’s your teammate, and she whispers, “Why not have the phone learn the customer’s preferences so that they can order easily?” Brilliant! Instead of compromising on service, your app may end up improving the dining experience. You realise that your class project may turn into a real, money-making, product.
Sampler of Modules
CS1101S Programming Methodology
Experience our unique ‘gamified’ introductory programming course where you take on challenging missions to level up and occasionally meet Sumobots, Jedi Knights, and Darth Vader.
CS2106 Introduction to Operating Systems
Understand how different processes end up in a deadlock via the adventures of dining philosophers who starve because they cannot coordinate the use of their chopsticks.
CS2107 Introduction to Information Security
How are websites hacked? Are there unbreakable codes? How are human vulnerabilities exploited in social engineering attacks? Decipher and master the intricacies of IT security.
CS3212 Programming Languages
How do you design a programming language? How do you get the same program to run on different hardware? Delve into the languages of the future!
CS3230 Design and Analysis of Algorithms
How do you design blazing fast applications? Are there problems that cannot be solved quickly no matter what you do? Prove that and you will win the first Millennium Prize and a million dollars.
CS3243 Introduction to Artificial Intelligence
How do you build Skynet? How can machines represent knowledge? Follow up with CS3244 Machine Learning, CS4244 Knowledge Based Systems, CS4246 AI Planning and Decision Making.
CS3247 Game Development
Learn about designing games as well as the underlying 3D maths, game physics, game AI, sound and human computer interface issues.
What You Could Be
Software Engineer at Google
Applications Developer at Barclays Capital
IT Security Specialist at DSTA
Application Programmer at Ubisoft
Software Developer at successful startups like Viki or Garena
Graduate Student at Berkeley, CMU, MIT or Stanford