it's not the same

CS3216: Software Development on Evolving Platforms is not your traditional software engineering course. You will not have lectures teaching you how to write in a particular programming language. You will not have assignments that assess you only for the quality of your code. You will not have a bar set for you. In fact, we don’t even know how high the bar is.

it's about your dreams

Inspired by The Last Lecture (or "Really Achieving Your Childhood Dreams"), this course is your chance to start realising your dreams today. You will get the chance to show off your creativity to do something different.

You are free to build almost anything under the sun. 

The ability to
change fast is the single most important asset in a world that’s changing fast.”
- Seth Godin

it's about change

It will be a mistake to think that CS3216 is about teaching you how to work on new platforms. The world changes so fast that it will be obsolete by the time you graduate. In fact, you are more or less expected to learn them on your own.

It's not about learning how to work on a platform. It’s about learning how to learn. It’s about equipping yourself with the ability to pick up new skills on the fly to face a changing world

To turn really interesting ideas & fledgling technologies into a company...... requires a lot of disciplines.
- Steve Jobs

it's not just about coding

Enrolment to this course is open to students of all faculties and students. You will work in small inter-disciplinary teams to create your killer applications. 

Programming experience for non-School of Computing (SoC) students is not a pre-requisite since work will be done in teams. In previous years, we have had students from Science, Arts and Social Sciences, Business (including an MBA student) and Engineering in addition to SoC. The home faculty of our tutors reflects this diversity as well.

learning objectives

  • To understand how to source for and use open source software and APIs.
  • To learn to develop engaging and innovative web applications
  • To experience working in multi-disciplinary teams to create Facebook (web) applications
  • To learn a new programming language independently
  • To improve presentation and communication (both oral and written) skills

platforms for this year & learning aims

Amazon Web Services (AWS)
To familiarise students to Cloud Computing.

Tablet computer, propelled by the sales of iPad, has leads to the rapid development of the mobile platform. Students will be offered the chance to develop in this latest platform.

Facebook has been a part of CS3216 since the course started in 2006. Despite being a familiar platform, Facebook changes its API constantly, and provides a perfect environment for students to implement and modify their applications in an agile manner.


There are 3 main components in which students will be assessed for the course. These include


// what is it?

Students will have to complete 2 assignments on 2 different platforms. The platforms are
  • Facebook social platform
  • Mobile-Cloud platform
In each assignment, students have to create a web application for the platform. These will allow students to
  • learn how to deal with new platforms
  • learn a new programming languages on the fly
  • learn how to develop innovative and engaging web applications

// teams

Students are to form their own teams of 3-4 members. They must work with different classmates for both the assignments and application seminar This will allow students to
  • experience working in multi-disciplinary teams
  • search for potential team-mates for the final project

Application Seminar

// what is it?

Students will have to select a Facebook/iPad application. In their teams, they are to evaluate
  • the strengths of the application
  • the weakness of the application and how to improve
This will allow students
  • have a better understanding of what makes a web application tick
  • pick up ideas for their final project.
  • improve the students' presentation and communication skills

// teams

Similar to the assignments, students are to form their own teams of 3-4 members. They are not allowed to form teams with classmates they have worked with for the assignments.

Final Project

// what is it?

Students will have to develop a web application either from scratch or improve upon their assignment on any platforms they choose. They are to
  • submit proposals and progress reports
  • implement the application on the chosen platform
  • submit a written report about the application
  • present and “sell” their application in an exhibition setting to passer-by and evaluators

// teams

Students are to form their own teams of 3-4 members. Unlike the 2 assignments and application seminar, they are allowed to work with classmates they have work with before.

Reports about CS3216 in AY08/09

“Next Facebook craze could come from NUS”
myPaper (08 April 2009) in PDF format.

Reports about CS3216 in AY07/08

“国大开办撰写程序课程 广大学生接触面”
(NUS starts a programming course which increases the exposure of the students)

Channel U (19 May 2008) on Facebook Video.
“Warring Farmers raking in fans - NUS students get cracking on Facebook projects”
Today (21 April 2008) in PDF format
“Student creates & sells facebook application for Five-Figure Sum - NUS to launch new module on Facebook Programming”
The New Paper (23 November 2007) in PDF format