First week of Trimester 2, 2019 over at UNSW. Write-up of this weeks thoughts.
COMP1521 – Computer System Fundamentals
Good content overall for first week. Lectures were revision of linked lists, queues and stacks, as well as a general overview of memory structure. Bitwise operations are also quite interesting. However, I believe that memory could be explained in better detail – for additional reading, there is Hacking: The Art of Exploitation, which covers how memory is structured in greater detail (registers, disassembly, etc) as well as revision of core C concepts covered in COMP1511. It continues onto basic reverse assembly and shellcoding as well 🙂 I’m not sure how this course will be structured, but wouldn’t a better knowledge of how memory works/assembly be better when we get to writing MIPs assembly? Also not entirely sure why we are learning MIPs assembly when it could possibly be more practical to learn x86 or x64 instead.
Lab exercise was on file input/output using C – good introduction to new functions and the use of the ‘man’ command. If you know how to read technical manuals, it is quite a easy lab – however, judging from classmates reactions, apparently manuals are quite challenging to read……
COMP2041/COMP9044 – Software Construction
Lectures were mainly examples – if you pick things up intuitively, you’re better off reading through lecture slides and diving straight into tutorial and lab exercises. However, lecture gave very well explained worked examples.
Did not appreciate having to (attempt to) answer the last question of the lab challenges.
Let’s just say that egrep sucks at counting. And that lookaheads/lookbehinds and grouping/backreferencing is disabled in autotesting 🙁 Also had a tutor who initially stated that this question was possible resulting in me ‘wasting’ an hour on searching for advanced features of regular expressions.
First impressions of this course is that it is highly practical 🙂 Pipes and filters are definitely useful to any programmer 🙂
COMP2521 – Data Structures and Algorithms
Lecture was not that engaging and also, since there was only one lecture stream (Thurs/Friday), content covered did not allow students to effectively engage with lab exercises if their lab slot wasn’t after the Friday lecture. Nothing really was covered this week except general introduction to course and calculating an algorithms efficiency. What was fun was the harmonic scaling of finals/assignment – however, according to previous students who have taken the course, the assignment is ‘disproportionately hard’ compared to the final so this shouldn’t be an issue.
The lab exercise was a mostly a waste of time – it was good revision of linked lists (which some people seem to have forgotten since COMP1511). However, it suddenly introduced shell scripts, which seemed to cause confusion with many of my peers. It seems to assume basic knowledge of using bash, including file redirections which people would not have been exposed to in COMP1511. The requirement to have multiple timing tests on sorting sorted, reverse sorted and random numbers was a waste of time and processing power – honestly there isn’t much point in repeating the tests as one run is sufficient to pick up the visible differences in time between our self-coded sorting algorithms and the inbuilt sort. Additionally the precoded function that checked for ascending order of an existing linked list had O(n2) efficiency that distorted any times that we would expect to have O(n) efficiency – i.e. sorting a reverse linked list. Hence, all the resulting graphs looked exactly the same. Additionally, tests on excessively large amounts of random numbers are needed to be run for the inbuilt sort function to verify its O(n log n) efficiency – at lower numbers, it just looks linear.
COMP1521 – Good; could review memory structure more in depth.
COMP2041 – Good; though lab autotests had teething problems.
COMP2521 – Poor. Lecture times clashed with lab content. UNSW3+ teething problems? Lab was mostly a waste of time.