COMP2300: Difference between revisions
(Created page with "{{DISPLAYTITLE:COMP2300: Computer Organisation & Program Execution}} {| class="infobox" style="border: 1px solid #a2a9b1; background-color: #f8f9fa; width: {{{boxwidth|260px}...") |
m (Text replacement - "cs.anu.edu.au" to "comp.anu.edu.au") |
||
Line 12: | Line 12: | ||
|- | |- | ||
! style="text-align: left;" |Course webpage | ! style="text-align: left;" |Course webpage | ||
|https:// | |https://comp.anu.edu.au/courses/comp2300/ | ||
|} | |} | ||
Latest revision as of 14:25, 16 June 2022
Runs | Semester 1 |
---|---|
Languages | ARM Assembly (taught) |
Lecturers | Charles Martin |
Course webpage | https://comp.anu.edu.au/courses/comp2300/ |
NOTE: this course has recently changed the microcontroller used for teaching (to the BBC micro:bit v2), after CECS bought out and exhausted the entire worldwide supply of Discoboards for the 2021 cohort. Many aspects of the course may change in 2022 semester 1, including the assignments.
'The discoboard course'
So far in your degree, you've written a bunch of code in high-level languages like Haskell, Java or Python. It's also likely that you've heard that CPUs are made of billions of tiny transistors, which turn on/off ~4 billion times every second. Have you ever wondered about all the steps in between? How does your computer actually run that simple 'hello world' program?
COMP2300 can be considered the introductory course into the world of computer systems. It explores everything from the foundational building blocks of CPUs (digital logic, adders, flip-flops, latches etc), to ARM assembly programming, how instructions are encoded in memory, how function calls work, the stack/heap, context switching (how operating systems run multiple programs at once on a single core), interrupts, networks and architecture.
In the first lab, you'll be given an STM32L476G-DISCO microcontroller, affectionately known as the 'discoboard'. If you stay enrolled past census date, it's yours to keep! You'll start off with something as simple as calculating 1+1 with organic, hand-crafted assembly instructions, before moving on to function calls, handling outside inputs with interrupts, controlling LEDs with the GPIO pins, and sending data between discoboards. That may not sound like much, but it's a surprising amount of work, and it's incredibly rewarding to see your own assembly code physically running on a little computer. You'll learn a lot about how computers work along the way - by the end of the course, you'll even build your own mini operating system!
Assessment consists of an oral lab hurdle, 3 assignments, a mid-semester and final exam. The oral exam is worth very little, and is intended to make sure that you're on track by having a short 5-minute discussion with your tutor about some course concepts. Don't worry if you fail - you'll have another chance in a follow-up exam with the course convener. Each of the three assignments focus on turning your discoboard into a musical instrument - from creating a single note, to combining multiple successive notes with a sequencer, and finally playing songs over your very own network protocol. These assignments can be very fun, and provide you with an opportunity to extend yourself as far as you like. The exams both test your depth of understanding of the course material. Don't expect to regurgitate content from the lecture slides - you'll need to think critically. It is strongly recommended that you go to the study events run by the CSSA, as the tutors are all very helpful!
Even if you're not planning on studying systems courses in the long term, 2300 can provide important context to everything that you do in computer science. Additionally, is widely considered to be one of the most fun and best taught subjects in CS at ANU, so you won't regret taking it. Highly recommended!