Skip to content


1st year Intro to Programming, 2nd semester

RW144 (aka CS144) currently uses this Java book. In 2023, we are switching to Python. You must pass RW113 or RW114 before taking this course in the 2nd semester. One must also register to see (and take) the course on SunLearn; however, essentially, we are using what's in the links above as a (somewhat condensed) guide to get through the material. The textbook can be purchased/subscribed online (NB: that link is for the book as of 2023; we are using this one now). There are other sources, too. Follow the Princeton links above. The book has by far the most comprehensive information and should be consulted first; followed by the book's open access website; followed by resources for Java/Python/programming on the InterWeb; and lastly followed by the nonsense I spew in the lecture hall. Regardless, teach and learn together with your peers; as that social interaction, in spite of covid, is the Key to passing this (and any, imo) course.

3rd year Computer Networks

Right now, I'm helping Emeritus (retired) Prof. Tony with RW354. He still wants to give it (in fact, he still wants to give the follow-up Honours course, too, delving deeper into Blockchain/Bitcoin emulation and stuffs). I must say, Prof. Tony is the Master! Let him give it as long as he wants to. I sit in on his classes to learn a) about networks and b) how to explain things so well (!). So I'm gonna do my best to help him as much as I can before I 'takeover' the course. RW354 is in 2nd semester now, and should move to 1st semester as of 2023. The textbook can and should be purchased online. Imo, it would just be silly to take this course and not purchase and read the book. There. I said it.

Honours Computing & Society (C&S)

Here's what the course looks like (it may not yet be completely overhauled for the current year), currently numbered RW716 Advanced Topics in Computer Science I. As of 2023, it will have a different number. You'll need to purchase and read this entire textbook on Human Computer Interaction in the first couple of weeks; and then process two research papers/articles/chapters per week for the rest of the semester. These (not the book) will be provided to you on SunLearn, and you can also easily find (most of) them with GoogleScholar.

In a nutshell, the first year programming course is a setup for more advanced CS topics that you will study in all 2nd and 3rd year streams (and oh, there are streams!), and will take with you through Honours to Masters, PhD and/or the Real World (who will pay you money to know this stuff). So in that sense, RW144 is also prep for Computer Networks (RW354) and for Computing & Society. In in turn, C&S is a co-requisite for anyone doing an Honours project under my (co)supervision; and is also a pre-requisite for doing an M, P or post-doc with me in any shape or form; e.g. inter-disciplinary studies based in the Data School; or at the very least, a co-requisite if you're coming in from outside. Ja, it's all scaffolded/intended with an eye towards H, M, P and post-doc research in the C&S space, which is again, inter-disciplinary even within Computer Science, e.g. a local language no/low code environment hiding SDNs so interested community members can design and maintain their own community networks. See a list of projects for other mashup ideas and be Open to working with other types of Computer and Social scientists; the latter especially :-D, and actual communities. Yes, Real People; not just the Artificially Intelligent ones! This, my friend, is how Science makes Social Impact. And it's what we want. Note this whole mess also pays the bills; not one of my 99 postgrads is unemployed! Ok. I lie. There's one. Right now. And we're sorting him out, don't worry.

Future courses

At some point, I'd like to evolve the (or even add a) Honours networking course into a carousel course using the C&S approach, e.g. run it like a mini-conference with contemporary networking topics like Software Defined Networks, 5G/6G, mesh networks, comms in space (yes, Galactic Internet Protocol and longer range forms of data transceiving; even the satellite and balloon stuffs), etc. The blockchain material would likely migrate to the Database course. RW354 would in turn replace that content with more contemporary networking basics like LTE (4G), 5G, and instant messaging/social media protocols; following on the WiFi coverage (no pun intended). I'd also love to inject a Human Computer Interaction (HCI) course into the undergraduate curriculum. However, let's be real here: with Computer Science being a Division in the Department of Mathematical Sciences, I don't think that's gonna happen; do you? Probably not :-( So for now, let's keep a quick & dirty 2-3 week HCI intro at the start of the C&S Honours course. I mean, come on! Humans! We wanna actually use all the cool stuff we co-create! The study of HCI provides systematic ways of ensuring that can happen, i.e. that people will actually use (and buy!) our software. Again, we want to make Social Impact, and we gotta pay the bills. Imagine creating wonderful software that no one wants to use or buy. Who does that? Way too many, unfortunately. It's quite sad because people only use and buy things that work for them. If it works in terms of functionality, yet people don't use or buy it? Then forget it. Why do you think there are hundreds of thousands of apps on app stores that no one uses or buys because of poor ratings? Either the apps don't work, or they don't work for people; or both. We want to avoid that from happening as much as possible. It's called HCI. Duh!