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¶
CS313 is in 1st semester from 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. Register on SunLearn to see course content and structure.
Honours Computing & Society (C&S)¶
Here's what the course looks like As of 2023, it is CS711 C&S (note there is more than one CS771!). You'll need to purchase and read this entire textbook on Human Computer Interaction in the first month or so; 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.
How they link up¶
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.
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!