About this course

This course is about the design and implementation of complex computing systems, from single computer systems to a large-scale network of them. At the end of the course, students will be able to:

  • Understand and analyse the challenges of designing and implementing complex computing systems, particularly modern operating systems and internet systems.
  • Understand and make use of basic tools and methods to overcome the challenges of creating computing systems that are easy to manage, flexible and easy to extend, have high performance, and are reliable and secure.
  • Understand and analyse the basic performance of computing systems.

To do

Before Anything Else, do:

  • Bookmark the Course Handout that can be found in eDimension
  • Join MS Teams Classroom
  • Read the Syllabus and Class Calendar
  • Bookmark this website

Install POSIX-Compliant OS before the first Lab session in Week 1.

POSIX-Compliant OS

Purpose

Please prepare your system to have a POSIX compliant OS (read: UNIX / UNIX-like or anything mainstream that’s not Windows) before the Lab session in Week 1.

This subject teaches the basics of OS, in specific we use POSIX compliant OS only as our basis. Having only Windows is FATAL, because it means that you can’t do anything during the Lab. We recommend ArchLinux, but if you’re a beginner you shall install Ubuntu 22.04.

  • Yes, we are referring to YOU, Windows users, read along.
  • MacOS is POSIX compliant so you can skip this section.

Installation

If you’re not sure what POSIX-compliant OS means, download Ubuntu 22.04 and install it using any of the methods below:

Reach out for help

Installing VM + Ubuntu 22.04 is the easiest option if you have no experience. There’s really plenty of guides online, and as a Sophomore ISTD student you are expected to be crafty enough to figure this out on your own.

If you really do not know how to do it, please contact Natalie via Telegram. She will gladly help you and is open to help you discuss alternative options with regards to your career 😉.

Testing of diagrams and math

graph TB;
    A[Do you have a problem in your life?]
    B[Then don't worry]
    C[Can you do something about it?]
    A--no-->B;
    A--yes-->C;
    C--no-->B;
    C--yes-->B;
Rule Parse tree Symbols Input
(5)
graph J-->LB["{"] J-->NS J-->RB["}"]
{ NS } { ' k 1 ' : 1 , ' k 2 ' : [ ] }
\[\begin{array}{rcl} first(\epsilon, G) & = & \{\} \\ first(t,G) & = & \{t\} \\ first(N,G) & = & \bigcup_{N::=\overline{\sigma} \in G} first(\overline{\sigma},G) \\ first(\sigma\overline{\sigma},G) & = & \left [ \begin{array}{ll} first(\sigma,G) \cup first(\overline{\sigma},G) & {\tt if}\ null(\sigma,G) \\ first(\sigma,G) & {\tt otherwise} \end{array} \right . \end{array}\]