CP2106

Course Title

Orbital (Independent Software Development Project)

Grade

Artemis

Semester

AY22/23 S1

Review

Orbital is something that many year ones will take during their summer break. For those of us who didn't manage to get an internship during our first year, this Orbital programme is a good second alternative.

It's pretty much a pair-work course, as you and your partner will have to create one sophisticated project from start to finish. If you're struggling to find a partner, Reddit is always a good option. That's how I found mine.

Next, let me explain the different levels of Orbital. Before the development period commences, teams can decide to go for different achievement levels. They are a good gauge of how complex you want your project to be, indicative of the amount of effort you want to put in, and decides what requirements you will have to meet to pass the course. I took the Artemis level, the highest level you can achieve in this course. While there are some fixed requirements such as code reviews, testing and promotional videos, the rest of the requirements are more... subjective. In other words, your TA has the ultimate say whether you belong in that achievement level. Which means that if you get a sadistic TA, you will have to work extra hard to maintain your achievement level. Luckily, I managed to get a pretty chill TA who found our application suitable enough for Artemis level. From there, the requirements become more relaxed, as we move from Artemis, to Apollo, to Gemini, and finally to Vostok. The bulk of the teams opt for Gemini, as there is not much difference from a Vostok level.

It's hard to gauge how much effort to really put into the different grading requirements. I think I may have gone a bit overboard with the software engineering practices. I did WAY too much testing, including unit tests, integration tests, system tests, performance tests and more. I also did WAY too much documentation, including my 81-page final Orbital report. Surprisingly, it didn't take too long, but still, 81-page is no joke. Don't really have a benchmark on how much you should do, but just know that you have to convince your TA that you're doing enough.

The rest is up to you. Build anything you want, as long as it's related to software. Can be a robotics project, can be a game, can be a web application. From seeing past submissions, the best project award always goes to some game, because it is immediately obvious how much effort was put into it. By adding more game mechanics, you can easily make your game more complex and sophisticated, earning more points on that aspect. But if you want to make it easier for people to test your project, please make it a web application and deploy it on some site like Netlify. Don't make it a mobile application and expect people to use it on Expo Go. The next time I have to open up Expo Go, I'm gonna give that a bad review.

Overall, I think if you can find an internship in your first year, then you should do that instead. But if can't, then this project is a good first step.