CITS2002 Programming and Systems - Project 1 Feedback (2019)
Q11: Any comments or suggestions about the nature of the project?
It was interesting delving into the way a computer manages processes,
even though trying to create a program to track it was downright hard
especially when the code gets bigger and bigger.
I consider myself to be a fairly proficient programmer who prior to
this unit already had experience programming in C, with significant
additional experience in C++. I am no professional programmer, but I
have competed and done well in the AIO using C++. As such I am possibly
an outlier for this unit. Overall I found this project interesting. I
found it very interesting learning about how an operating system optimises
the scheduling of processes and enjoyed thinking about how this could
be implemented. Prior to this unit I was aware that this occurred,
but did not know any specifics. In terms of programming difficulty
it wasn't a walk in the park, but it wasn't difficult. I would have
enjoyed some 'challenge marks'. Maybe 1 or 2 of the 20 marks that come
from the correctness of the solution? These could be allocated similar
to informatics marking where you only receive the last few marks if
your solution is able to produce the correct output for a large test
case within a certain amount of time. Essentially testing if you found
the time optimal solution. Prior to this project most of my coding
experience has been very individual. I found with this project that
it was very important to discuss with my partner how we were going to
approach the problem. Prior to starting implementation I already had
an idea how I wanted to approach it, but by explaining and discussing
it with my partner, I feel that we were able to produce a more refined,
easier to understand way of solving the problem. A good chuck of this
obviously goes out the window if I in fact do poorly in the project, so
hopefully I have done well. Feel free to publish any of these comments,
either the whole thing, or any part(s) you feel are appropriate.
Thanks for your extensive comment;
an additional 'challenge exercise' coming in the 2nd project.
Very Hard Project
have the workshop earlier rather than later.
Point taken, but the workshop wasn't initially planned;
it was only recognised as necessary after seeing how many students were struggling
with 2-dimensional arrays.
We shifted a lecture time to run the workshop earlier
(and, even then, very few chose to attend and to ask questions).
I had quite a lot of trouble getting my head around the complexity of
the simulation part of the assignment. I probably would have eventually
figured it out but I spent a really really long time testing and adjusting
my code to get it closer to sample solutions
Understanding the concept took longer than expected and following that
to implement the ideas to code was even harder especially when having to
know all the cases. It is obviously very different to coding on python
and java such that you would have to create all most all of the function
yourself rather than looking through the library.
While the nature of the project was likely different for you
(having to first understand a deeper problem than in 1st year units),
that's not a property of projects in specific programming languages.
No programming language is able to provide,
through its standard libraries,
solutions to every problem (or project) you'll encounter.
The most difficult and frankly worst project I've ever had to complete
at university. That being said, it did reinforce some of the concepts
from lectures.
Your comment would have been more helpful if you'd described why it
was 'the worst'.
I thoroughly enjoyed the project and found it was challenging enough to
force me to think somewhat outside of the box. Although, once I properly
flushed out the logics of the project actually writing the code was
fairly straightforward and relatively easy.
The project was fun and super challenging but I feel that
it would have been better if we had studied concepts such as structures.
Thanks; there's a few similar comments.
The challenge is to set a project by week-5 of semester,
that tests understanding of what's been seen-to-date and requires some
investigation into what many students describe as 'the theory' part of the unit.
Agreed, knowledge of structures, and pointers, and ....
would have improved the project,
but we've got to 'get down to it' in a short semester.
I feel this project was partly constructed so that when we later learn
them that we understand the usefulness of structs. That said, structs
would have been useful for the project.
The project was interesting but at the same time very difficult. Starting
the project I was confused as to how all the times were calculated and
it would have been helpful if we were given more of an idea of how the
simulations occurred. The sample solution was very helpful but the i/o
was still very confusing.
The project was fun and have a difficulty just right for me. I believe
I have a better understanding now of the 5-State Model of how the
CPU manipulates the processes along the CPU. Most of the difficult of
the project arises at the beginning. Hence, the reason as to why I do
agree that most people will find it difficult to start. Although, the
programming part of the project was fairly easy as soon as the design
specification is already understood and planned.
Actually the project provided a long time for us to go and I just found
something interesting when I was doing the project. My partner helps me
a lot. Different from Java, C program pays more attention on the process
while Java pays more on the target that we are required to do during doing
a process. Even it is also so difficult for me to finish the project,
I have to say that Chris did help us a lot during the project. I really
appreciate that.
Thanks for your comment.
As with an earlier comment, don't grow to believe that different programming
languages or different units demand specific approaches to tackling a project.
In general, the problem first needs understanding, then solving, then implementing -
and, with more experience, you'll choose the programming language that is most
suitable for the type of problem.
Good introduction to programming in C, I think it probably helped
students get used to C-specific features and conventions more than
anything else - which is what you need early on in the unit! The main
issue I had with the project was that the initial stages were entirely
spent on trying to decipher the project description. This was the real
challenge of the project, which I think is strange. Maybe in the future
the project itself should be a little harder to code, but the description
a little less obtuse? I felt that had I been able the project proper a
few days earlier I would have cracked it entirely, and had time to go
over and test a range of edge cases.
I felt that the programming skills required were not that difficult,
but I do believe my knowledge of structs made programming my project
several times easier. However, I felt that the difficulty in the project
originated from the project's context being complex, and was exacerbated
by a lack of lecture material on it. Moreover, I felt the lab sheets
were a lot easier than the project
It should not be surprising that weekly laboratory sheets,
addressing 4-6 smaller problems with released solutions,
are easier than a 3+ week project focusing on a single problem while
aggregating several concepts.
They have different roles.
Q12: Do you have suggestions/comments to assist the planning of the 1st
CITS2002 project for next year?
A possible way was to partner students up using a student
number generator or possibly during the labs and making that lab
compulsory. Those two students could then decide whether they want to work
together or not and go from there. Heaps of people were still looking for
a partner, including the final week and that got to the point where both
students simply ran out of time due to other commitments. " make it more
possible as a solo student instead of having to rely on a useless partner
I wouldn't have gotten through this project without Chris' help in
the labs. He's very knowledgeable and it doesn't hurt that he's so
good-looking too!
Mum, is that you?
more relevant content in lectures
A more detailed comment would have been more helpful.
Lectures do not have to provide all knowledge before a project and,
I believe, that projects should require students to seek out new knowledge,
not just demonstrate that they're up-to-date with what's been presented.
The handling of specific cases could have been established better
from the beginning as I had to make several changes to the code as
clarifications were released.
I think that it would be better if we can have all the workshop related
to when the project is released.
I'm not sure honestly, but the material from workshop-5 would make for
a great base idea for a future project.
Maybe, though it was made up rather quickly!
Perhaps, then, use besttq for the emergency workshop?
Have a workshop similar to workshop 5 earlier.
Nothing actually.
As above, I think the coding component should be a little harder but
the project requirements very clearly delineated - more clearly than
this year anyway.
I really liked the web interface for the project. Being able to access
the sample through a website from anywhere was extremely useful, and I
liked not having to go into the labs to do lots of testing.
Thanks; your comment certainly reflects the challenge of meeting students'
changing expectations.
It's a challenge 'supporting' a systems project that can be developed on different
operating systems, away from UWA laboratories,
and meeting students' needs for something more visual than in past years.