Dear all:

This coming Monday we’ll have our one and only Mission Control on the hot-button issue of security, with demos to boot!  It is open to the public, so invite your friends to come.  Christopher Low of ThinkSecure will be coming to SoC to give you a treat on how security works (and doesn’t work).

This MC session is not going to be recorded so if you want to hear this talk you must come down to SoC SR3 on Monday (N.B.: *not* the regular Tuesday date) 9 Jun, from 6-8pm.


Talk Synopsis: Two categories of people (i) People who spend a great deal of time online daily for work, play as well as staying in touch with friends over social networking sites and (ii) creators of social/web applications will find this presentation/demo extremely relevant.  Most of these “online-social” people are “Generation Z” folks who are IT- and internet-savvy in the way they use computers, tablets and mobile devices to stay connected and engage in heavy interactive communication to maintain their online social life.  However, very few of them give equal consideration to the way in which they use such media and thus open themselves up to web-based attacks.

This presentation looks at some of the more recent and stealthy web attacks which target “Generation Z” (or any user of such social media) while they are online and illustrates how some of these attacks are engineered and the impact they have on a person’s online social life.  For web application developers, understanding such types of attacks will help them code better to mitigate such attacks.

Through real life demos which will be shown in the course of the presentation, the presentation brings home the point that today’s Generation Z’s and web-app developers face a huge
challenge in both understanding as well as defending against such modern web-based attacks.


Post edit: The slides for Chris’ presentation are here:

STS-133_Discovery_Lift_Off_Launch_Pad_39A_KSCLiftoff 2014 concluded on Wednesday, but it’s helpful to have a recap of everything that happened, especially for those of you who are overseas.  Here’s where we sum it up in a single post.  Feel free to watch this thread in Piazza, as it’s inevitable we missed out on some useful pointers (students, advisors and mentors, feel free to add to the post).

There’s a YouTube playlist for all of the videos that we broadcasted, but the individual links are below.

Day 1

Design Thinking – Giftbook

For the first session, we are going over the design thinking workshop.

Go through the slides that Wee Sun has posted at, and then after reviewing the materials, watch and do with your partner the entire Design Thinking Workshop Video from Stanford.

Project Levels and Achievements

As Wee Sun pointed out, you can have your Orbital experience overlap and align with programming contests locally and worldwide.

Consider this (non-exhaustive) list (now merged and enhanced from Shubham Goyal’s list too)

Presentation Skills by Google

Presented by Darshini Santhanam, Google Singapore (starts from the video stream at 21m50s)

Attached are the slides for the presentation, courtesy Darshini. Grow_Beyond__Presentation_Skills_by_Darshini_Santhanam.pdf

YouTube videos referenced:

Eric Schmidt Public Speaking Class
Macworld San Francisco 2008-The MacBook Air Intro (Pt. 1)

Elevator Pitch Winner – Katie Sunday
Eric Schmidt – Zeitgeist Americas 2013

Enjoy and thanks to Google again for stopping by!


We pretty much went over the materials from and dashed over to Codecademy to do some exercises.  We had some fun with the Open Source Report Card Json service towards the very end.

Whenever you get down on your programming mojo, watch the videos.  They pep you up.  There’s suposedly one with Obama (US president) in it too.

Alternative learning platforms:

Udemy – A list of courses (w/ star-rated reviews; fee and non-fee)
Lynda – for fee, monthly subscription-based
LearnPython – what we will be following for the first part, along with Codecademy Advanced Topics in Python
– Iteration Nation (Exercises 1-3)
– List Comprehensions (Exercises 4-6)
– List Slicing (Exercises 7-11) The Devil’s in the Details

20 minutes: AfterHoursProgramming Python Quiz

Here are the slides for the original version of the tutorial: python_tutorial.pdf  Note you can also find the videos of both parts of the Python tutorial online.  Google has a few versions of a Python tutorial that is much better than mine, I think but it may still be worth it to work through your understanding of Python.

There are lots of additional tricks in Python that you can try, so do try to figure them out.  Also important is to try to adopt the Python coding style, in the form of the PEP 8 “standard” or others: For PG and A11 students: if you whizzed through our Py tutorial you can try watching some pretty advanced tips to get yourself more aligned to the Pythonic style:!

Even seasoned (salted or pickled) Pythonistas benefit from watching this from time to time…

On Codecademy: So at this point, you should have some gist of what python programming is like.  It’s not so bad, is it?  If you haven’t finished the exercises, try to do them over the next week or so, and keep working at the Python course (and others) on Codecademy.  You can take a look at the other sites that I shared with you in the earlier @177 post.  Vostok folks, don’t be intimidated by the speed at which some students can do the exercises.  Practice makes things better and guess what — there’s no Bell Curve God for this module.  So take your time and get things done until you’re comfortable coding.  You can also ask your advisors for some tips — they will be really happy to share, trust me!

Software Installation (Post @168): Please do this by Wednesday early morning.  Ideally today if possible.  It’ll really help if you have the software installed.  We did Python together (and perhaps PyCharm).

Project Gemini / Apollo 11: Teams aiming for a bit more than the standard project can try to do a mobile app or other project — it’s up to you. If you’re interested in still doing a web application, don’t necessarily corner yourself into using Py/GAE.  There are many frameworks you can.  You could try Ruby on Rails (my personal favorite web framework, and experience that Winston was sharing is highly sought for in SG).  A few of our mentors are also Rails specialists, but Python / GAE is also a good combo, and many of the advisors will be able to help you with that.  Explore what’s right for you.

Agile Methodologies

Winston of Jolly Good Code has kindly made his presentation available to us.  You’ll probably want to have a re-look at the Agile software engineering methodology he presented to you once you get down to the nitty-gritty of actually starting on your project.  Agile_Methodologies.pdf

Post Day 1 – Software Installation

Probably you have these all done, but if not, please get it done soon.  Min’s note: the more you work with these tools, the more proficient you’ll be with it.  It does help to periodically go back and retrain on certain tools (especially your text editor — knowing shortcut keys is really beneficial — you can YouTube or Google hints for developers for any tool that you’re using.  Lots of people have made very helpful notes.  Find them and share with the class!

Day 2

Web structure, HTML, version control

Zhi An’s session on YouTube:
Slides and everything else:

Color Pickers:
– Adobe Kuler ( )

Update (Post Liftoff 18 May by Min): you may also find that Laurence’s session in last year’s Orbital specifically on git use and management would be helpful for those who have gotten git to install but don’t know what to do with it.  Please find the session here on YouTube:
A screenshot of Zhi An’s description of “how the web works” mentioned at 4:40 into his video:

Min’s addendum:
– You will probably use your fav search engine to find more information about HTML tags and CSS directives, but usually a search for “<tag name> html” will work.  The technical descriptions from is usually fairly good.  They have HTML and CSS tutorials there too.
– Geeky stuff: Tim Berners Lee started the web in 1991.

Google App Engine

Follow along here in YouTube
Please note that you need the materials to follow along

Update (Post @206) : Last year, I posted this video to YouTube to help some students come to grips with all the new shiny code that they learned in the Google App Engine session.  You may find this lo-fi video helpful to fill in some gaps in your understanding of what all the parts of the web work.

Students from last year also found self-studying from the Udacity web application course also very useful for general awareness of “how the web works”. You can also find some of the sessions on YouTube for free:

This source of information is probably very useful for those of us whom learn best by watching.  The Udacity course is pretty long but much more principled in its way of introducing materials to you in a “lecture” format, instead of dumping you all in the thick of GAE like we have done.


Photo credits: NHS Confederation @ Flickr

We’re pleased to hear that many of you are considering Orbital for part of your summer adventures for 2014! We’ll be releasing a signup form soon so that you can express your enrolment interest and stay up-to-dates with announcements.

But don’t worry, official registration won’t close anytime soon. The first mandatory milestone is to attend the 2-day Liftoff workshop happening right after the final exam period.

Meanwhile here are a short list of Frequently Asked Questions (also broadcasted verbatim on the CS 1010 and CS 1020 forums), to keep you in the know:
We wll be having an information session about Orital again closer to the recess week period. Keep a look out for the official email, a well as the announcement here in your course.

– Q: Is there a formal process to get into the Orbital cohort?
No, there’s no selection or bidding for the module. If you want to do Orbital you can, provided you qualify.

– Q: Then who qualifies to be part of the cohort?
Any SoC freshman (CS/IS/CEG/BZA). Students at other years or in other faculty cannot do this programme. Orbital is also unfortunately, not applicable to exchange students.

– Q: Can I do this while overseas, or while doing an internship, etc.?
Yes! You can do most of your development overseas or at any time. There’s no physical or temporal requirement — just that you finish the project within the three summer months.

– Q: Must I do it just with one other person?
Yes. You must work with one (and only one) other SoC freshman student for Orbital.

-Q: The video says that weekly hacking class will be held. What if a person is not here in Holidays?
No worries.  The hacking classes are optional and notes are likely to be distributed so that you can follow the topic, even if you are not around.  Only the initial workshop (first 2 days of summer) and final closing ceremony (likely during second week of Sem 1) are mandatory for you to attend.


Photo Credits: US NASA

It has been a bug-blasting, hacking-all-around, action-packed summer thriller for all of you in Orbital!  Mission Control reports the all-clear for your reentry back to NUS, Singapore!  We’ll have a final, three-hour evening session, where all of you are required to participate (this *is* the very last milestone), in the form of a final Splashdown showcase!

Splashdown is structured as two poster sessions with following oral sessions after each poster session to serve as a transition period; see schedule below.  Orbital teams will be assigned to one of two sessions to present their work.  During each of the two poster sessions, each team will be presenting their work via a A1 sized poster that you will have to prepare and print (but we will pre-pay for you at SoC Technical Services).

17:30-18:00 Registration
18:00-18:40 Poster Session 1
18:40-19:20 Invited Talks Session 1
19:20-20:00 Poster Session 2
20:00-20:20 Invited Talks Session 2
20:20-21:00 Awards Ceremony

Splashdown will also feature peer voting for best projects.  During the poster sessions, take note of which other teams you think did the best projects and vote for their project electronically using your smart phone or tablet. We’ll tally your votes and announce the winner at the end of Splashdown at the awards ceremony.  Google has kindly sponsored some prizes for the very best projects, as voted by all of you and observers (SoC, project mentors and industry invitees).

Details for Splashdown (such as the final schedule and team allocations) are still ongoing, but you can check on the latest details on the Splashdown page on the Orbital site (

For those who cannot attend due to conflicts, you must let the instruction staff know ahead of time via emailBoth team members must attend the event.  Post-event application for leniency will not be permitted.



We covered Python this morning, just the basics.  You should be able to recognize python code now (it doesn’t have semicolons and depends on indentation to recognize blocks).

We also covered HTML / CSS and Javascript in the afternoon.  These are the basic, common bullding blocks for everything on the web (including webpages you see on your smartphones).  You can try looking at the source of the webpages you see and feeling good that you have some knowledge of what that is and what it does.  Most of the HTML you see is generated programmatically, by servers that run software that replies HTML to your web browser.

CSS helps to interpret how that HTML looks like in your browsers.  We saw by tinkering with the CSS, the webpage can look very different.  One way to think of it is that the HTML specifies the page’s logical structure and that the CSS specifies what that structure looks like (its formatting).  Javascript is a programming language in its own right (similar to Python), but which all web browsers know how to execute and run right inside the browser.  It’s usually used to give dynamic effects on the webpage, so you’ll usually see that you need to load some javascript library to achieve some interesting effect on a webpage (e.g., animation, sorting, dynamic styling).

Finally we covered Google App Engine, the hardest part of today’s work.  Here we did the job of generating HTML programmatically in response to requests from your clicks to “run” the program.  The HTML is generated from HTML templates where some values are filled in by the app engine’s python code’s.  In particular, you are using python code (e.g., to specify classes and handlers for those classes.  The responses that the handlers generate are HTML webpages (e.g., wishlist.html) that have placeholders for the Jinja2 template language to insert the appropriate values from Python.

We don’t expect you to get it all on the first try, but take a look through the code to see what you can understand and what you don’t.  We know it’s difficult to ask questions on what you don’t know — because you don’t know what you don’t know — but try your best.  We’d love for you to ask at least 1 question in our Askbot forum so that we can try to answer your questions offline.

There will be a short briefing about Orbital on Thursday 21st Feb (this Thursday) from 6:10-7:00pm in Seminar Room 1. Please come with your questions, or if you can’t make it in person, attend the Google+ Hangout (named “NUS Orbital” at the same time.)

If you cannot be there physically or virtually, please fill out this form to register your interest and ask other questions:

STS-133_Discovery_Lift_Off_Launch_Pad_39A_KSCOrbital will also feature a kickoff event to start the summer semester. The kickoff event – named “Liftoff” – will feature a two-day series of workshops, a programming contest, and a pitch session.

Liftoff will happen during the first week after final exams in Sem 2. This is the week of 13 May.  Currently, we are planning to have Liftoff on that Monday and Tuesday, which will be the 13th and 14th of May.

The first day will feature workshops, run by student groups and industry professionals. The second day will feature a half day of workshops, external speakers, a programming contest, and the final pitching session.

The programming contest, Launch Window, will be a three-hour programming contest with student teams hack-it-out to build and simple application for a given theme.   Launch Window’s theme will be announced during the contest itself.  Teams must use the technology stack that has been taught during the first day of the workshops. The top teams decided by public votes for Launch Window will be the only teams eligible to participate in the Apollo 11 (advanced) scheme with mentors, but have no obligation to take up this role.

Liftoff will end with a project pitching session, Ignition. This pitching section is for both student teams as well as industry and school mentors to pitch their ideas. Both student teams and prospective mentors can give feedback on each other’s pitches; and in the case of Launch Window winners, can use the session to match with prospective mentors for the duration of the orbital program.  Ignition will follow a 1-minute madness format, in which teams will come on stage to present their pitch using at most two slides that they have prepared. Each pitch should last for no more than two minutes.

Note that Ignition is part of the assessment for Orbital, and accounts for 20% of the final S/U grade  The slides and the text of the pitch will need to be uploaded for grading and assessment.

There will be an optional mingling session for students, industry professionals and student mentors to converse about project ideas to close out Liftoff.