CITS2002 Systems Programming  
 

Unit home

Project 1

help2002

Lecture & Workshop
recordings on LMS

Schedule

FAQ

Unit outline

C textbooks

OS textbooks

Information resources


Extra reading

Past projects

Recent feedback


Working effectively

Look after yourself!

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.

The University of Western Australia

Computer Science and Software Engineering

CRICOS Code: 00126G
Presented by [email protected]