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.