The University of Western Australia
CITS2002 Systems Programming
 

Department of Computer Science and Software Engineering

CITS2002 Systems Programming

CITS2002 Systems Programming - SURF Feedback (2017)

These are the verbatim comments (sadly, only 30) from students who took CITS2002 in 2017, together with my feedback (in blue). It's instructive for all students to see comments from their peers, to appreciate the diversity of opinions, abilities, misunderstandings, and suggestions (unfortunately SURF hides these comments).

These comments reflect the diversity in our cohort of over 320 - some students enjoyed the unit, others thought it their worst life experience; some students enjoyed the projects, some found them too easy, some impossibly difficult; some students enjoyed that lectures involve discussion that's not written on slides, others suggest that lectures should only follow the written slides. One disappointing feature of some comments is that they're raising issues or misunderstandings that should have been discussed during the unit, not through SURF. But you certainly can't please everyone.


  • I really enjoyed this unit, one of the best i've taken at UWA. I thought the projects were an excellent way to learn the content and i'm really glad they made up such a large part of the grade. I'd also like to mention that I think the labs not being compulsory is a great idea - having some experience with C already, I felt like doing a lot of the earlier labs was unnecessary. Thanks!
  • Chris is a fantastic and passionate teacher. He is the best lecturer I have had in CS and he has made what is for me a challenging unit, achievable.
  • Very well-structured and insightful unit. I feel both projects were of an appropriate difficulty and closely linked to the unit materials. For project 2, I feel like step 9 (background execution) was perhaps a little too difficult as it took hours of research and experimentation to work out, and I still don't feel I properly understand how everything fits together.
  • Chris is a great lecturer and honestly shows passion for this subject which I am sure everyone loves this about him (rare to see lecturer genuinely loving their subject).
  • Seriously good course with a brilliant teacher. Two minor criticisms:

    1. Less focus on language particulars - more focus on the system.
    2. Didn't learn a great deal about computer systems from the first project. On the other hand, the second project was engaging, challenging and taught me a great deal about systems.

    Overall the course was easily the best CS course that I have taken at UWA. Most valuable lesson learned: the compiler is smarter than you! Thanks Chris.
    Thanks for the above 5 comments. Project 1 was a general programming project focusing on features of C (new to most students); while project 2 focused on operating systems' services, the essence of the unit's content. Agreed, getting the balance right for a diverse cohort is a challenge.
  • The projects were only loosely based on the lecture content, a whole lot of 'googleit' was enforced throughout the course. The lecturer often drifted off on tangents and talked about things not on the notes. Background execution, pipes and several other factors were never explained apart from a brief mention yet were a large part of the projects.

    Although I did complete all assessments and I believe I did well, my learning was more from the Internet than the lecturer who I am paying to educate me. Blackboard should not be an optional item, if UWA want to use it then enforce it across the board, it's a joke for different departments to use different methods of communication.

    2 lectures were canceled and one was left empty so I can't help but feel the content is incomplete. The last 2 lectures seemed to be a random cobbling of facts, unrelated to previous material. After 13 weeks I'm still not completely sure what I have learned.
    Projects are not designed to only assess your understanding of what's presented in lectures. Nothing states that projects shouldn't require you to independently learn new material, be that from a textbook or online resource.

    There's many good reasons that a number of unit coordinators choose not to use Blackboard, including its difficult/slow method of managing content for those that can already write webpages. Moreover, I do not want access to the CITS2002 content limited to enrolled students - you may even wish to revise it next year.

    Yes, it was unfortunate that 2 lectures were cancelled when I was twice admitted to hospital unexpectedly - not a planned 'feature' of the unit. There's no 'spare' lecturers able to deliver unfamiliar content with little notice. The only 'empty' lecture slot was Thursday of the final week which, experience shows, is very poorly attended, because students place greater emphasis on last minute chnages to their projects (across many units).
  • CITS2002 is already a hard unit when Chris would like to complicate it more. The lectures normally cover all the theory part of the topic but never really the application. Project 1 is not clearly stated at all. Too broad. Rubric not given.
    Assessment rubrics come in many forms - they are not all 'complete these milestones and you'll earn full marks'. Both projects provided a project description, executable sample solutions that you could run to determine correct/required behaviour, scripts to compare your developing solutions against the sample solutions, opportunity for your to seek any clarication thorugh the online forum, and (after the deadline) feedback providing marks out of 40, and the fully commented source code of the sample solution. Ideally, your comment would have indicated what more you wanted.
  • I personally did not find anything worthwhile came from project 2, project 1 I learned quite a lot, i dont know if its just me but I really did not enjoy project 2 nor feel like i learned from it. Other than that, unit was perfect.
    Your comment is unusual (I'd expect your comments to be the other way around). Project 1 was a general programming project focusing on features of C (new to most students); while project 2 focused on operating systems' services, the essence of the unit's content.
  • This unit really feels like two different units put together. In particular, the theory behind OS makes up about half the lecture material, but hardly assessed. This unit could be improved with some weekly quizzes (even 10 minute ones) or maybe splitting the midsem into 2 to 4 tests that take place every couple of weeks. Also the projects seem to take far more time to complete than the marks or the time allocated seem to suggest.
    Thanks for your comment; setting the correct amount and depth of assessment for a diverse cohort is certainly a challenge (as other students' comments show). While the operating system's material is not directly assessed though projects, it is assessed more through the final exam.
  • Overall a good unit, could be improved by focusing less on learning C specific function calls and focusing more on the underlying theory.
  • It wasn't very clear what our objectives were for this unit, other than to learn C and learn about Operating Systems. I found the titles of each lecture, on the schedule page, not too helpful until I understood each concept (not that I understand them all yet). Perhaps consider summarising them and grouping them into larger sections so that the bigger picture is easier to grasp?

    The tutors were very knowledgeable and helpful. Please keep up the good work!

    Please Chris, keep to the point! It was sometimes hard to follow lectures due to rambling/going off topic, no matter how interesting it may be to the application of what we're learning. Thanks for listening to feedback though and, as I can infer, improving too. Thanks also for your effort in giving us marks in the projects!

    The projects were pretty good, in my opinion. Interesting and the difficulty was about right. It's always hard to start the project because I don't know what I'm doing, but once I get going it's doable.
    I'm unsure what lecture discussion you found to be off-topic (even if interesting) - wish you had raised that at the time. Clearly the alternative of simply reading the lecture slides is loathed by all.
  • The only qualm I have is that the unit stated certain textbooks were recommended rather than necessary. So it was sort of ambiguous as to whether the lecture slides were sufficient to learn the material or if they needed to be complimented by textbook reading. Also, these recommended textbooks were big volumes, and there was no mention in the lecture slides that said read these pages of book X to gain a deeper understanding - no one wants to read pages of a textbook that they'll never need.
    Thanks for your comment; I'll more clearly identify the names of key concepts in the schedule and lectures, so that they're easily found in the Table of Contents of any of the recommended textbooks.
  • I was very interested to start this unit but quickly found the projects to be uninteresting and in particular way too time consuming. The lecture content/length was perfect, but I feel like I didn't get much if any at all help in the labs without getting a long winded answer, and that the help forum was quite unhelpful. The fact the mid sem is weighted at 20% is way too high, and 2 projects on top of a mid sem and a final exam plus weekly labsheets just seems like way too much work.

    I would be more interested in cutting down the programming content and focus more on the actual operating system/computer background knowledge as that was what I expected to begin with.
    I'm unsure why you consider a 20% test too 'high' after 6 weeks of lectures. The unit focuses on Systems Programming (the interface between a high-level programming language and operating system services); (unfortunately) it is not a unit focused on operating systems or systems' hardware, so your expectations would not have matched.
  • The lab instructors, while great at instructing labs, made for very disengaging and very ineffective lecturers
  • chris in an amazinf lecturer but sometimes he talks about something un-relevant for a long period of the lectuer, which gets annoying

    the unit requires more lab questions as the amount he provides weekly are mostly easy and not relvent for the project.

    i say this becuase, i found the lab questions easy but when the proejct came around - i found it too difficult

    more practise with the file operation would be great!

    otherwise a great unit, just requires more lab questions from easy to really hard and more questions towards the project
  • Why do projects HAVE to be marked on the macs? Hardly fair on people who don't have ios machines esp. with linux being free. :(
    This was clearly explained in the first lecture and workshop. Our unit is scheduled to use a laboratory of Macintoshes, making it fairer that that environment is also used to assess projects. The projects were designed and their released sample code written to execute on both macOS and Linux (but not iOS on iPhone or iPads!). No Macintosh-specific code or services was required. Nothing prevented you developing your project on different platforms, and executable sample solutions were provided for macOS and Linux. Our accreditation bodies, the ACS and EA, have commended our degrees' exposure of all 3 contemporary OS environments to our students.
  • The lack of direction as to what is accessible for the exam in the OS side of things was extremely frustrating as simply being given told about about 2 full text books and being told the content from the exams could come from any of that much of which has never been mentioned in lectures makes the whole process more difficult than necessary
  • This unit was great, exactly the type of experience that interests me in computer science. Chris was a fantastic communicator during the lectures keeping them relevant, interesting, and entertaining to listen to. The notes provided were succinct and a useful reference for the projects and exam study.
  • I feel that the much of the unit should have been assessed differently as the assignments were essentially hacking C code rather than getting to understand an OS.

    I also felt that the lecturer was dismissive of students efforts. One student said they worked ~100 hours on the first assignment to which the lecturer replied that he doubted it. Having received a very good score and finding the subject relatively easy I still put in ~30 hours for the same assignment. I imagine students struggling but determined to succeed put in a lot more. This and other comments suggested the lecturer had little concern for those not excelling at the subject.

    In contrast the CITS1001 lecturer was supportive stating that CS can be difficult but the university would help them. It's an unfortunate change in 2nd year as smart people drop out because of such poor attitudes from lecturers.
    I still doubt that a student undertaking a 2nd year unit would devote 100 hours to a 3-week project contributing (only) 15%. That is a significant imbalance of effort-for-reward that should have been a 'big flag' to the student to seek help with their approach, much earlier during the project.
  • The lecturer knew alot but he spent most of the lecture speaking about things that weren't on the slides and hence it was difficult for the students to follow. He would spend too much time on the first few slides and hence not leave enough time to clearly explain all the remaining slides. As a result, usually goes over time.

    In regards to the marking of the projects, queries submitted were not dealt with.
  • The second project was atrocious. Half of the stuff we needed for the project was never taught or even mentioned in the lectures (stuff like pipes, signals, etc). What's the point? I hear this is a common thing in CITS units. Why? Concepts like pipes and signals which are hard and which I've never learned before are left for me to google. What's the point of me paying over a thousand dollars for this unit when I could have easily just stayed at home and looked at online tutorials of how to code, where the outcome would have been the same, except I wouldn't be over a thousand dollars poorer. This is the first time in my life that I haven't enjoyed programming. Thank you for wasting my time and money.
    As in my comment, above, projects do not only cover lecture material; it is honestly unclear where this expectation comes from. It is very reasonable for projects to require independent learning and, yes, many CITS units (and future employers) expect this of students.
  • Content was good, projects challenging yet achievable. some aspects of theory could be clarified
  • Fantastic unit, feel like I learned a lot. The lectures were well presented, Chris is a very enthusiastic and engaging lecturer. Assignments have been challenging but fair.
  • It ruins my experience for taking computer science degree. I've always doubted what I have spent 4700 dollars for. The content delivered during lecture and workshop is not sufficient at all for doing the projects.
  • The assignment is very time consuming that left not just me but many others friends of mine plenty of sleepless night finishing them. Overall a good unit but assignment is extremely challenging for beginners in coding or those who haven't code at all.
    It's for this very reason that students are strongly advised to complete an introductory programming unit before CITS2002.
  • quote from project one overview: You may assume that all input data is in the correct format.
     marks feedback:Unsuccessful - does not exit with failure when given incorrect number of arguments 0 / 1 ....
     ...Checks success of file opening, reports errors, closes the file 1 / 2 ...
     ...Successful - prints an error message when given incorrect number of arguments 1 / 1
    [swearing deleted]

    also lecture recordings didnt work sometimes. the most annoying part by far is the fact how the programming language has to be c99 which can only properly be written and used on a mac. even if you have a mac, its a pain to install the software xcode.
    The project's input data was in the correct format, and there was no need for you to check that. However, the marking fedback you've highlighted is not about the data format, but about file handling and command-line arguments.

    The C99 programming language standard is not a Mac-only language, and is designed/specified to be portable across many hundreds of operating systems and hardware platforms. It is unclear how you missed this important message.
  • I enjoyed this unit a lot, I felt that some of the assignment goals were a little too simple, and wished for more varied challenges in general, but it was still good. My biggest problem with this unit is the large weighting on the final exam. I think the unit would have been better overall with another individual project or two to reduce the pressure of the exam.
  • This course is a little bit difficult for me as a dummy. Maybe the main reason is that this is my first course taken in overseas, and the worse is I have no experience about core course just for computer science students. There is a gap between this course and I. But this challenge experience is so impressive, and very useful for my following research. My performance is not so good, so it's hard to evaluate this course very well, but I'm sure it is a good course.
  • Unit was challenging but enjoyable
  • There were some lectures that were cancelled, but the material was still handed out for our study
    It's unclear if you consider this a positive or a negative.

Department of Computer Science and Software Engineering

This Page

Written by: Chris.McDonald@uwa.edu.au