Department of Computer Science and Software Engineering
CITS2002 Systems Programming
CITS2002 Systems Programming - SURF Feedback (2018)
These are the verbatim comments (sadly, only 29)
from students who took CITS2002 in 2018,
together with my feedback (in blue).
It's instructive for students to see comments from their peers,
and from the previous year's cohort,
to appreciate the diversity of opinions, abilities, misunderstandings,
and suggestions (unfortunately SURF hides these comments).
In 2018 the unit had 340 students, and these comments certainly reflect the
diversity of the cohort -
some students enjoyed the unit, others not so much;
some students found the project 'about right', some impossibly difficult;
some students enjoyed that lectures involve discussion that's not written on slides,
others believe that lectures should only follow the written slides.
The organization of the project materials was messed up a bit in 2018,
and we needed to have only a single project rather the tw0 originally planned.
I feel that it was the change in the organization of the project,
rather then there being one or two,
that concerned many students.
This unit has tried both a single project,
and two projects,
in recent years and students' reactions to that have been equally mixed
(see past years' feedback).
Thanks for your comments and support offered to Daniel and Ryan in 2018,
who both stepped up to help with the unit, far moreso than we'd planned!
I have previously done Python but found this unit very very
difficult. I think the project expected too much from us, and after
having watched the lectures I still had no idea how to do it. Since the
project was about making a utility and not just solving a normal problem,
I also couldn't find much online. I think the project should be simpler.
I really struggled with this unit.
Thanks for your comments.
I'm unsure what sort of 'normal problem' you may have preferred - this is a unit
on systems programming, and it needs a solid project to reflect that content.
You will also find in later units that the projects are very-specific
to the units' contents, and are not general problem-solving projects.
I think Chris always coordinates great units that are well structured
and informative. My only suggestion would be if not too complicated
to provide some code in the lab workshops that could run your compiled
programs and check if they correctly produce an output for a number of
test cases. I know that the week after labs are finished there was example
code released but often time if you had your lab early in the week you'd
completely lost interest in what you did in the lab. And even if you
didn't go back and check, which i tried to force myself to do, you would
have kind of forgotten exactly what the question was and how your code
was working so it was difficult to compare. I think it is important to not
provide the example solution immediately so students are forced to tackle
the problem themselves but i thought some test cases and example output
would be nice for students to self check. There are plenty of checks
you can do yourself but it's hard to see the forest for the trees.
Thanks for the suggestions.
We'll try and incorporate some test cases and example outputs in future
labsheets and the workshops.
I feel that there is little point in this feedback, as I know that
next year Chris will just post this on the CITS2002 website with his
responses in red. However, I really hope it might stick so that the
learning experience is better for the class of 2019. Good things about
the unit: - Chris is clearly ridiculously, ridiculously knowledgeable
about the content contained in this unit. More importantly, he is
very passionate which is awesome. - All the lab advisers that I
came in contact with (Ryan and Daniel?) were super helpful, friendly,
and knowledgeable. - The project was challenging yet (in my opinion and
contrary to popular belief) relatively achievable. I learnt A LOT whilst
doing it. Some people clearly had a lot of issues understanding the
core premise of the project, which I do not agree with as I thought the
learning outcomes, tasks, and objectives were all very explicit. Also,
I appreciate the endeavors of Chris/others to mark them before the exam.
All your comments appear very positive, so I'm confused as to why you
felt there was little point in writing them!
The only aspect of the unit I disliked was the assignment was one large
30% unit with a lot of the assignment requiring knowledge from the last
couple of weeks. As I understand, this wasn't planned however in the
event of a stuff-up, this would weigh heavily on the final grade (in my
case.. ). The assignment was in my opinion, a very interesting one that
helped solidify understandings of the concepts in the unit. Possibly the
most engaging assignment because it truly requires an understanding of
system programming. Chris has been an absolutely amazing teacher, with
help in class and out (help2002 and emails) along with the tutors. Thank
you Chris! Any students in the coming semesters who take this unit should
take advantage of the learning opportunity!
Yes, having to 'drop' to a single project was unfortunate this year
although, in previous years, some students felt that having two smaller
projects was an overload; difficult to please everyone.
Be warned, though, that most later CSSE units will have a single project,
sometimes contributing 40-50%.
Best CITS unit yet. Excellent unit which has taught me many things
and also opened up avenues for me to learn a lot of new things
myself. Have never used linux before and although not a mandatory OS
for the unit, learning many different things about the system has been
very enjoyable. Chris does get off topic during lectures but the things
he talks about are still very interesting albeit not always vital. I
recommend this unit only for people who have at least one coding language
under their belt.
A few students (each year) state that I get a bit off-topic in lectures,
but I try to constrain that to the history of the topics we're
I'm not a believer in the idea that 100% of what's discussed in a unit
(lectures) has to be directly examinable,
a strong believer that history is important,
but we can't devote enough time to history to 'make' it examinable.
The organisation of content in this unit is really haphazard, jumping
from C content back to systems content at random with often little in
common between each topic. The unit covers a number of OS topics in
brief, but there seems to be little direction to the choice of these -
I didn't leave with a broader understandings of how OS's work (except
for the processes content, that was handled and taught well and also
tied into the project a little). Also, the project has basically nothing
to do with systems and is 90% string manipulation - the C content in
general should be first year stuff and was so tiresome to work through
as a second year CITS major
Thanks for your comments;
it's unclear if you completed the project successfully,
but there was far more substance to it than just string manipulation.
The project did involve parsing command-line arguments and a text-based
(representative of nearly all system utilities),
accessing file attributes, creating and monitoring processes.
You may have a better understanding of the material
than many of our 2nd year students,
but very few describe the projects as too easy or tiresome
(as students' feedback shows).
Having the two assignments this semester was not a good idea. Many friends
of mine ended up spending 10 days straight smashing it out with their
partner in one go and hating themselves for it despite completing it.
please consider spending the first 30 minutes of the labs teaching the
new skills and the rest helping student do the questions.
A bit confusing, as we had only one project this semester,
and five weeks to complete it.
Please email with any examples of the skills that you feel should be taught in
labs (though a bit of a challenge as laboratory attendance is not compulsory,
so some online materials may be better).
unit, unfortunate that the two projects were combined into
one. Unsure if it is better or worse that way, however it was more than
understandable as too why this happened. Chris did a great job as a
lecturer as did his colleagues when they stepped in.
More time could have been spent of memory allocation. Having one
assignment made things quite hard as we could not learn from the mistakes
of the first assignment. The lab co-ordinators were very helpful. More
examples during the lectures would be very helpful even if it is just
extra slides not talked about in the lecture.
There was a large difficulty gap between the mid semester test and the
project, would have preferred that the expected effort was about even
throughout the semester, but it was heavily concentrated on the later half
It's unclear whether you found the test or project more difficult,
but they are very different modes of assessment
(but, 5 weeks of lectures versus 5 weeks of practical work),
with the project being worth more because you were encouraged to work with a
You will find most later units also increase their density of material towards
their end; very few students are 'ready to go' with concentrated material in the
The lectures where interesting and engaging I genuinely enjoyed attending
I did really enjoy this unit although the project being merged into
1 proved very stressful as a first time c project, keeping 2 projects
is a far better plan. Other than that the unit was enjoyable and well run.
The unit labs have been the most supportive out of all other units I have
undertaken so far - esp Daniel Cowen. I learnt a lot of the programming
required whilst undertaking the unit project. However, it would have
been handy to have access to all lecture material prior to beginning
the unit as the concept of structures was new to me forcing me to roll
back a fair amount of time and effort I put in by that time in completing
the project. To overcome this, I would recommend providing access to all
the unit lecture slides in advance with additional depth provided later
during lectures. This worked well for me in CITS1401 and 1402. Overall,
despite being the hardest course I have undertaken this semester, I
have come out learning a lot about OS and C programming (particularly
'looking at man pages'!). One thing to add to projects would be to add
a disclaimer on the general information page given with Lab 1 that .o
files built in Linux don't work on macs. Made me skip a few beats!
Submissions should have a lower penalty for large projects
Chris is an excellent lecturer! Really enjoyed this unit.
This unit was great, learning the inner workings of a computer was an
eye-opener and made for an interesting unit. I, however, didn't like
this large assignment, as a large part of it was too ambiguous. I fully
understand that due to Chris' health the unit was distributed and hope
he recovers, but the assignment brief didn't give enough information
and large portions of important cases were left for help2002 to discuss
and find the answers. For example, in help2002 Chris gave somewhat
conflicting information to what was in the assignment brief and the
tutors gave differing answers as well. So in all, great unit, but the
assignment was too rushed.
This unit needs more prerequisites for a complete understanding.
Agreed, but the university hopes to provide as much flexibility as possible by
not setting too many prerequisites (you'll note that few CSSE units have
prerequisites, just strong advice as to what to take).
While prerequisites enable a lecturer to assume a better depth of understanding,
they play havoc with students entering their degrees mid-year,
different cohorts in the same units,
or for students failing a prerequisite required by a core unit.
1. The HELP forum is not user-friendly; navigating between responses
for posts per link is just..... hurts my head
2. Chris' teaching style
was great, however, sometimes a bit too stripped down and bare. It was
unclear who he was catering too in terms of experience and it made the
expectations of the unit a bit unclear.
3. The assignment objectives
were written like a secret journal. Felt like I was having to 'decipher'
what to do. I don't expect to be handed the answers but I've experienced
assignment objectives that were straight-forward but still promoted
individual work and creativity.
5. Too many resources. Learning C for
the first time and being given an abundance of resources makes it hard
to manage which resources are effective in the face of 13 weeks.
all due respect to , he was a nice and friendly person,
but as a tutor, I felt his teaching skills were unsuccessful. Few times
I would ask a question and get a weak response.
No idea why this unit is listed for data science, it is a bunch of
stuff i do not care for nor taught well
It may not help your degree but,
from 2020 CITS2002 will not be a DS core unit.
Chris explains things at a philosophical level it was a bit hard to
follow. But in general, I enjoyed him sharing his insights and thoughts
rather than just passing technical knowledge. I admire his passion to
lead the unit despite his health condition.
a very good unit. I found the C programming side much more easily
absorbed than the systems side of things that was comparatively less
graspable. I don't know if this due to the way it was taught or more
likely just the nature of the subject matter. The project was a very
good learning experience and could probably bare to be worth more than
30%. The exam is currently worth 50% and I would expect to get a similar
mark to what I get for my project but for much less time spent so perhaps
they should be 40% each. Having 1 larger project rather than two smaller
ones had positives and negatives. I found that with 6 weeks dedicated to
it I was able to produce something of higher quality than I have before
and really spend the time thinking, researching, and learning. On the
other hand we learn too many things during that time so by the time
you get to the end of the project the first stuff written is no longer
representative of your understanding or skill.
The unit being split half C half systems would have been fine if they
were grouped together better rather than an uneven combination of C and
systems, it would have been nicer to learn all the C before the project
and then the systems stuff later. Two projects would have been better
than only the one that was given, as 2 projects are useful to see where
you can improve when learning a new coding language.
The semester test should not be weighted as highly
The test contributes 20% and
covers the first 5 weeks of lectures (12 weeks in the whole unit).
I can't imagine it contributing only 10% or 15%,
or is the suggestion that the test should be longer?
The exam is the first time any questions are asked about the operating
system (OS) portion. Tutorial style questions about OS' in addition to
the lab sheets would be useful in preparing for these questions in the
exam. Access to more past exam papers would also be useful. The unit
not using LMS improves the experience. Chris' apt responses in the forum
were a boon. Perhaps if students could be subtly pointed to the relevant
resources for the project, or have 2 projects so students learn from the
pitfall of their first project. The recent student's feedback section
of the website displays that this feedback is taken seriously and is
a big part of why I have written a long response.There is difficulty
in the OS lectures determining what content is assessable rather than
enthused information about the topic, though the enthused information
is valuable in displaying a high degree of confidence and builds trust
in the lecturer's knowledge. A higher character limit would be useful.
A well run unit, lecturer Chris was very good in lectures. They flow
very well and he keeps them interesting with relevant info/sometimes
history which I appreciated. He missed a couple of weeks lecturing
due to illness and some colleagues had to step in and it was quite a
change as they mostly just read from the lecture notes (I didn't mind as
they were temporarily covering, and is more a credit to the way chris
lectures). I was quite a terrible student in this unit, I spent a lot
of time focusing on one of my other units (ELEC4403 digital embedded
systems), which CITS2002 was a recommended precursor unit, thinking that
the things I would learn in that unit would transfer down to this unit
and I would be fine. Come 4 days from assignment deadline, and I decide
to actually start the project, I realised that I was out of my depth,
queue me submitting my shoddy assignment a day late. In previous years
it seems CITS2002 had 2 projects rather than the one big one, and I
honestly believe [that that would be better].
more assessments , if you bomb one project, it's hard to get a good
grade or pass at all. How can I see where to improve if there is only
unit requires a level of investment into learning things outside of
the lectures in order to do well, especially for programmers who are not
that confident, such as myself. The books are necessary in my opinion,
and my grades will have suffered due to my purchasing reluctance and
laziness. I have listed the unit as well-organised, however, unforseen
circumstances to do with Chris's own personal health screwed with the
unit's structure. It meant the singular large project (instead of the
2 smaller projects) could not be given during a time where important
concepts, that were crucial to know about in order for early designing
of the program to be effective, were given later during the project
itself and thus people had to make changes, offsetting any progress
they had made. This was unfortunate, but couldn't be helped. Chris is
an excellent lecturer, and while some may complain about his tangents,
I found them to be insightful and interesting. Good unit.
I learned a lot from this unit, but most of it came through the final
project. I do not think I learned a whole lot from the lectures. I had
only taken the CITS1001 Java course, so I was very inexperienced with
programming. Listening to the lectures was hard and I felt bogged down
with jargon. Chris goes quite fast with his explanations, and I think
is geared more towards students who have more background knowledge than
I do. (I heard this from some other students as well.) I understand the
need to cater to all the students, but it seemed that if I simply read
through the lecture slides and thought about them, I would get more out
of them than attending a lecture. I hope Chris is doing well after his
health problems early in the semester. I really appreciated how much
work he put into Help2002, where nearly every question was answered
promptly. It helped a great deal with the project.
Not enough coding demonstrations.Slides not concise,info too long
winded.Not enough just boxes and arrows used to explain concepts.Expect
self-learning,learner unknowingly misunderstood concepts and not clarified
until after midsem released.Talk too much excess info,not precise with
explanation of concepts. Workshop:Not enough guidance towards how to
begin attempting WS problems.Guidance should not be in word form,should
be codes or notify what functions to look at before workshop.Should teach
debugging. Labs:Not enough lab demonstrators,only able to ask 5 min in
a 2 hr session due to overcrowding.Expects student to be free during
other lab timings.9 labs available,able to make it to 2,means only
10 min of asking. Project:Questionnaire too long winded,not clear of
outcome.Stuck at debugging(hard to progress),not enough time to clarify
with demonstrator. Unit:Electrical Engineer recommended to take unit,see
no link to engineering.Feels like level 3 unit.
If you're seriously disliking any unit,
you should speak up or drop out - don't leave it until the end of semester to
express your concerns about things that could be addressed or better explained.