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 (2016)

Q8: Any comments or suggestions to improve the project assistance in future years?

  • The amount of people in the lab during the project time meant that there wasn't much time for individual help, maybe adding another lab demonstrator or extra lab times during the last week of the project would be helpful, and ensure the students are aware of the extra time.
    Fully agree; unfortunately we're rather constrained, financially, as to the number of people able to help in labs and mark projects. I appreciate that you won't like the comment - but labs are often far quieter in the first two weeks of projects (in all units).
  • Need clearer clarification from the project
  • The difference between the tutor's and the Chris' understanding of the project requirements was a bit on the large side.
  • Perhaps more of the Unit Coordinator's responses to student questions on help2002 could be consolidated on the Project Clarifications webpage, to save students from feeling the need to regularly trawl through help2002 for useful clarifications.
    It appeared less necessary, but we took this on for the 2nd project. An effective alternative to 'trawling' the forum is to read it a couple of times a week, search, and to flag articles for later reading.
  • Assistance at the hours of deadline?
  • Maybe increase the number of lab hours during and one week prior to project deadline. Because in the last week, there weren't enough seats to attend the lab as it was occupied by previous lab members.
  • I found the help programs (to generate and view the execution of scenario files) extremely useful - in fact, I wish I'd had something similar for projects in previous programming units. However, I was unable to access the CSSE iMacs remotely, which was a real inconvenience given a hectic mid-semester test schedule and a two-hour commute to campus. I understand the problem was reported to BITS but it would have been helpful if it had actually been fixed :)
    Glad that you found the helper programs useful. External access to the iMacs certainly was a problem, which I understand was far better for the 2nd project.
  • After encountering an error which literally erased our work we attempted to contact the coordinator and the 'assistance' that was given was completely useless.
    When you contacted me you stated that you'd overwritten your project's source code on your personal laptop, and that you had no backup. What assistance were you seeking?
  • I literally had no idea there were lab demonstrators available to help during the project period (I guessed I missed the one announcement that was made about it in the help forum - amongst all the other hundreds of student questions/ announcements). Next time make a specific thread/sub-forum thats devoted purely for project related questions/ announcements (having just one massive thread for each and every type of question and announcement really makes it difficult to search for topics that might be of help to you). Or a suggestion thats probably more common sense than anything - put such information on the project website page. The lab demonstrators need to show more enthusiasm! Show us that you actually want to be there, or if this isn't the case, at least act like it. One of the most off-putting things is raising your hand for help, but feeling like your annoying the lab demonstrator because they just seem uninterested. If you sign up for this type of role, which is fundamentally all about interacting with students, then expect to do these types of things, connect with your students, be approachable, act like your actually there to help! One big suggestion that could easily solve this issue is simply asking everyone on a regular basis how they're going with the work? are they have any trouble? that is, be a proactive tutor, don't just sit back in a chair and wait for students to call on you instead. I always feel like a burden on the tutor if I constantly have to get the tutor out of their chair to help me. We want to feel free in asking questions on a regular basis, not feel like a burden. Yes we understand that you may be doing your PhD and thus may be dreading life at the moment, but we can't help that. If you can't at least act like you want to be there and want to help, or simply just don't understand that a major part of teaching is connecting and interacting with students, then please stop tutoring.
  • Two out of the four times I went into a scheduled lab time the lab assistant was not there. Chris was very helpful in his answers but one of the other lab attendants just made things even more confusing.
    If you find a scheduled lab unattended (for any unit), please tell someone who can try to arrange a replacement demonstrator.
  • I feel as though the project needed clearer directions as to what happened one certain edge cases (for instance, when two processes become ready at the exact same time). There also needed to be some guidance on roughly how the system should have been implemented (e.g., should it have been something where we skipped ahead moments in time, or was it find to have a system where there was a while loop that ticked through one microsecond at a time and where performance didn't matter).
  • Make sure the lab tutors understand the project requirements
  • Maybe give us more time to complete the project sheet. And also work is a larger group instead of 2. (maybe?)
  • The issue with this project for my partner and I was the fine details(such as: how many micro seconds should the project run for, what can we assume and what can't we assume with the I/o, how was the current sector calculation implemented so that the rounding resulted in the same error as the sample solution). We understood the theory however we would have liked some more guidance with regard to how about initially tackling the project at an earlier stage ie (maybe running through it micro second by micro second). Also It would have been more accurate if the exact calculation order for the current disk sector was provided(ie a/b*c*d may not provide the same answer as b*c*d/a due to rounding) ,and there just wasn't enough time to successfully check all of these details. I also think since we understood the whole process (ie.queing and states) but not the fundamentals of how an actual processor operates this made it challenging
  • an animated video explaining the project as if I was 5 with a narrator called ""Mr C"" would of made the project much easier. Seriously though, maybe slightly reorder the information so that the input file came first so I had context for the rest of the information. Though I don't think it would make a big impact.
  • Make it easier please
  • Some more guidance or tips on how to actually approach and structure the problem in our code. As in coding the same result can be achieved in hugely many different ways, we found if you try to approach the problem a certain way, it may not be the right way to go about it later on, and you have to restart from scratch many times using different approaches. This caused countless hours spent on the wrong approaches.
  • I don't think any changes need to be made. If people need one on one help, the lab demonstrators can offer assistance. Chris answered all questions relating to the project quickly on the help forum, and the answers he supplied were very helpful. basically any help you would need with this project can be sought with the current setup no
  • Longer time frame, perhaps release the project earlier.


Q12: Any comments or suggestions about the nature of the project?

  • The project certainly helped my understanding of the read-write-block processes but was hard to translate into a program in the time allowed.
  • I felt this was an incredibly difficult task compared to all of my other second year units, but in a way it was a good learning experience. Maybe if more warning was given as to how difficult and time consuming the project actually is I would have been able to finish it (I was really looking forward to seeing it work properly!).
  • I can see where the project was trying to go and how it related towards the course however it seemed very ambiguous. Didn't seem to be much of a focus on programming but rather trying to understand what the project was after. It was also difficult to clarify what we needed to do as there seemed to be discrepancies between lectures, help forum and lab facilitators. I understand your desire to put us into a more realistic programming environment where we aren't 'spoon fed' what we have to do, but personally i just think the project needed to be a little bit clearer. I thought i had all the material and programming skills necessary to complete the project but i just couldn't quite understand exactly what i was meant to achieve.
  • "This project had the perfect balance of being a solid challenge without being too difficult. The words used on the ""Project 1""and subsequent ""Clarifications"" pages were slightly ambiguous.
  • 1. We felt the project was very time-consuming for the 2.5 weeks we had to complete it. My partner and I spent over 60 man-hours collectively on the code that was used in the submission, plus about 30 more on code that wasn't. This equates to (60+30)/(2.5*2) = 18 hours per person per week, which added to the unit's ongoing lectures and tutorials and associated self-study is well over the recommended 12-hours per unit per week. Perhaps we spent longer than average, but I still suggest to extend the time to complete by another week (over the study break). Rather extend the deadline than simplify the very interesting and challenging project :-)
    I appreciate that you had difficulties with the project but, politely, if two of you are spending 90 hours on a project you need to identify what sort of your problems that you're having, much earlier, and seek some help.
    2. Perhaps a quick refresher on data sorting and string splitting (from e.g. CITS1001) would have made the processing of the scenario file's data a little easier.
    3. Perhaps if there was a marking key for ranges of %error in total turnaround, reading and writing times for the automatic marking component, it would save students obsessing over getting their values absolutely in line with the sample solution. I felt that for a project worth 15% it took too much time to complete.
  • Do it in Python next time
  • I thought it should have been final project or project after much about the unit (especially C) was taught as it gives more confidence approach for such a project
  • We have found other students in the unit to be using methods that were not taught in the unit to complete the project. My partner and I actively went through the content of the unit and was unable to figure out how to do it. Was unable to complete and we were left completely lost and confused about the project. The project given to us was worded vaguely and was often conflicting to how the lecturer was taking the project.
    We do have a wide diversity of students undertaking this unit; it's core across a number of different majors, and some students have much more programming experience than others. Hopefully the sample solution explained an number of things to you, but it was developed using only materials discussed in lectures.
  • Overall, the project was interesting and helped consolidate the material covered in lectures. However, the simplifying assumptions caused some confusion at times - for example, as with the precision of calculations for blocked reading and writing times. It would have been useful if the project description had been a bit clearer on these details.
  • Reword the project to make it more comprehendible.
  • The option of working in pairs should not be made an option, or even simply ""strongly encouraged"", it should be made compulsory! Only the very experienced of programmers would have done well in this (let alone passed) if they had worked alone. For the rest of us, given the timeframe of the project, and the fact that the average student has 3 other units to take care of, I truly believe that this project was both unfair and unrealistic. This project is no where near a one-student-project for the average student, we are not all experts here, nor do we have all the time in the world to spend weeks on a 15% assessment. Yes it is strongly encouraged that we work in pairs, but what about the students who couldn't find a partner? The students who don't even know anyone in the unit? Did you guys take that into consideration?
    There are many different models to 'getting' people to work together (as you may see in later Software Engineering units). Of these, forcing students to work with unknown partner is the approach least liked by students, and sees the greatest incidence of stronger students just abandoning their project partners, and many students learning far less because of it. Some students simply refuse to work with others. There's been a considerable loss of community in many undergraduate units, students willing to help and woirk with each other - unsure if it's generational or a consequence of online methods. You'll have opportunity to be forced to work with others in later units.
  • Im not saying the project was impossible to complete, I am saying that in the context of having 3 other units to focus on and the given timeframe, the project was excruciatingly difficult, and this was exacerbated by the fact that I had no partner, making it almost impossible. The only reason how I made it possible, was due to the countless sacrifices I was forced to make in order to complete it (e.g. compromising my other units, compromising the deadline, my sleep, my personal life). To put this largely into perspective of how unfair this is, I don't even sacrifice this much when I study for exams, and those assessments are worth 50%!
  • I don't want to sound sarcastic here, but its quite amazing how similar feedback was given on this unit last year, describing how difficult the project was, yet nothing AT ALL was done about it. Talk about being proactive.
    I don't view it as being sarcastic, but you'll dislike my belief that projects need to be difficult to get many ideas across. Projects, their difficulty, and student cohorts differ each year, so it's very difficult to make comparisons based on subjective comments. The marks for this year's 1st project were higher than last year's, but was that due to its difficulty, the student cohort, or changes made this year? Now that you're at least half way through your degree, steel yourself for difficult projects in later units, too.
  • There are two simple ways which can easily solve this repeatedly raised issue:
    1) Introduce a system where each of us is allocated a lab partner at the start of the semester, so that we can actually get to know each other and work with each other before the actual projects. This would also almost garauntee that nobody is (severely!) disadvantaged because they were not able to find a partner. This is exactly whats done in all of my engineering units, we are put into groups at the start of the semester, so that we can complete the final project (which is designed to be a multiple-person project due to the amount of work that needs to be done), as a group. They do not (severely!) disadvantage students by designing multiple-person projects and then giving it students and saying ""well...if you don't find people to work with, then your on your own - yes - do this multiple-person project yourself"". Bottom line is, if you're going to design multiple person projects - then give us no reason as to why we shouldn't have a partner (i.e. allocate us at the start of the year). Don't rely on us to find partners ourselves because in the certain instance we don't, it puts us in a extremely disadvantaged position.
    2) If you don't want to make the effort to allocate us into partners, then just design the project as a one-person project. I cannot see any possible instance of a student being disadvantaged by doing this (other than the fact that it would be more marking for you, however this shouldn't be factor though...right?)
    3) If you still do not want to make the effort to allocate us into partners, then give the students who complete the project on their own bonus marks, for the extra time, effort and sacrifices they had to make in order complete the two-person-project. That is what I call, ""fair"".
  • Given the advantage of UNIX based operating systems for programming in C consider that a student or group of students submitting an assignment may elect to have the code compiled and run on their choice of Mac-OS or Linux. As the cost of Mac based computers is prohibitively high and the labs are not always a convenient place to study this flexibility allows students more choice of study environment
    This is a good point that we have been considering. We wish to 'force' students to have some exposure to all 3 contemporary operating systems, not just provide an OS-X lab for those that might like to try it, and this unit seems the best one to push this point. But times (and costs) change, and things are re-evaluated quite often.
  • I found the project was very enjoyable but I really think the dead line should definitely have been at the end of the study break. I understand the logic behind setting he deadline before the break but I worked for almost 2 weeks straight at the problem and didn't finish.
  • I think this project overall was very difficult. There were too many corner cases and conditions that needed to be considered and it was very difficult to debug what was going on considering that a single mistake would through the entire answer out of whack (or that bugs would only manifest themselves many microseconds down the line when something had gone wrong earlier). I felt as though this project's difficulty was comparable to one of the most difficult problems I worked on at an older job and was way above the skill level of many people doing the unit.
  • We were given little to no help with how to structure large programmes
  • the level of programming skills required for this project was to advanced, considering this unit is not to learn the C language but to implement it. the university should really have a unit to teach C , it seems extremely poor on the universities behalf to expect people to just learn a language along with the main content of the unit. If a student has learnt Mandarin would you expect them to be able to write in Cantonese?
    Part of this unit involves learning part of C, and we're doing so by providing relatively small problems in areas for which C is traditionally used. CS/IT education, internationally, has long moved beyond devoting whole units to teaching specific programming languages - just look at how many other topics there are in the CS/IT landscape. I don't understand your equating the approach of this unit to the learning and use of foreign languages??
  • I found it very hard to understand what the project was asking. This threw a spanner on the works for the planning and by the time we finally figured it out, it had a large impact on completing the project
  • I spent literally 50-80 hours on this project which was more time than I spent studying for 2 level 3 electrical engineering subjects and CITS1402 combined !!
  • A better explanation of what was expected with the output (i.e. how accurate it had to be) would have saved a fair bit of stress
  • This project was a bit difficult to work on with another student since it was a bit difficult to break into different parts that can be written separately. I found trying to coordinate working on this project with another student a bit difficult due to this. Also finding enough time to work on it together was challenging.
  • I struggled considerably with the maths and it was difficult to find reliable information only. All other aspects of the project were fairly trivial other then sector checking maths.
  • honestly i figured it was probably pretty doable, my partner and i were just both missing something glaringly obvious, which is more our fault than anything. the project is kind of difficult to research on in terms of ideas on how to implement it, but i'm guessing that is kind of the point.
  • The one thing that did provide some frustration, was that it seemed students were expected to derive many assumptions and restrictions about the project, perfectly reasonable and an excellent way to encourage thought about the concepts tested. However the downside I found was that despite starting relatively early on the project in a bid to avoid the last-minute rush much of the details of the more complex parts of the project weren't uncovered until the last week thus resulting in a last-minute rush regardless. Perhaps, some more guidance on how long it should take to reach certain development milestones would make sure committed students can stay on track; for many students this would be the first Computer Science project with a more open structure.
  • My problem was thinking I understood the project, but realising too late that I was wrong and confused. There was plenty of material to help, however I was shocked because of my misunderstanding and couldn't work effectively (stressed) after that time. Previous assignments had also identified the signatures of methods/functions so it was a shock that nobody was 'holding my hand'. Despite this I still believe it was an interesting project that I'd like to have again and a necessary experience. I felt that the project was extremely helpful in both solidifying coding practises in C as well as my understanding of the operating system 5 state model. On a personal note I found that the time and effort that was required from my partner and I to complete this project was far more than 15% worth.
  • It was probably the most difficult project I have attempted in my time at university. In addition, the number of hours spent on the project was probably greater than any other as well.
  • I think it seemed a bit too complex for a first project.


Q13: Do you have suggestions/comments to assist the planning of the 1st CITS2002 project for next year?

  • The project was very time consuming and probably did not have enough time allocated to allow successful completion, given that mid-semester exams were concurrent. I didn't have time to attend any lectures or listen to them during the final week, or actually sleep very much. I then spent the study week catching up rather than working on other assignments.
  • Make the project more similar to the labs, only a bit longer and more difficult. This project was totally different and needed just so much googling to complete. It said all the knowledge we would need is covered in the first 5 weeks. Completely untrue.
    No, not all knowledge by week 5, but certainly all necessary programming techniques. I strongly believe that projects should also provide an opportunity to learn new material - it should not be, and can not be, all provided in lectures.
  • It was very easy to find Chris (outside of lecture times) to explain things that I misunderstood. Give out this survey after students have received their marks back.
  • No
  • To ensure that the wording of the project is not vague at all with very specific notes on what is suppose to happen and what we are trying to achieve. To ensure it is at our level of understanding of what we were taught.
  • Unfortunately the deadline didn't sit well with my mid-semester test schedule and I felt I could have completed the project to a higher standard with the deadline extended another week. Each semester, I seem to have all my mid-semester tests and assignment/project deadlines crammed into the week before the mid-semester break and nothing after the break, despite lecturers constantly reiterating that it's a break ""to study"", not a break ""from study"". I appreciate that you didn't want to change the deadline you had initially set but perhaps take these comments into account when choosing a deadline for next year. Otherwise, the project was very well organised.
    Choosing deadlines is always a 'tricky' balance, and the non-teaching week doesn't mean that it's only there to undertake assessment items. (From my perspective, naturally different to yours) the non-teaching period actually provides opportunity to get the project marking done; returning marks within 15 days is otherwise impossible.
  • I found the project instructions confusing, particularly understanding what the values in the scenario file represented and consequently how to go about processing the scenario file. It took a long time to understand what needed to be done. Without the additional questions and information on the help forum i'm not sure I would have completed the project on time.
  • Given the advantage of UNIX based operating systems for programming in C consider that a student or group of students submitting an assignment may elect to have the code compiled and run on their choice of Mac-OS or Linux. As the cost of Mac based computers is prohibitively high and the labs are not always a convenient place to study this flexibility allows students more choice of study environment
  • I appreciate your sense of humour but maybe try to explain things as precisely and dry as possible. There were a few times where I misunderstood the advice you were giving.
  • Picking something relevant was a good learning experience, but I think the next project needs to be something more achievable.
  • Focus a bit more on strategies for breaking down and structuring large programmes
  • There should be more coding classes than theory.
    I don't understand this comment; there is no theory in this unit as it is (understanding how parts of an OS works is not theory; we do not cover, for example, anything about queueing theory for scheduling, or resource management for multiprocessing). Whenever suggesting that additional material or time needs to be added to a unit, you need to consider what material should be removed, and ensure that all requirements (such as Accreditation) are still met. This is not a programming-only unit, and I believe that laboratories and tutorials provide plenty of opportunities to develop programming skills.
  • Yes if it involves simulating a processor please explain how a real processor operates using the clock ect.
  • Perhaps more time to work on the project. Particularly for people working together since it seems difficult to work on this type of project separately.
  • Smart sheet is a good progarm for project management. It was a very good project overall .... Thank you
  • think harder, probably.
  • Perhaps an allusion to what the first project will contain earlier on in the unit would give a greater sense of importance to the more basic topics covered in the unit as at least in the beginning; it's sometimes difficult to see how we'll apply what we learn about the C language to the Systems components when starting with the very basics of both.
  • More guidance in lectures and make it a bit easier.
  • A bit of extra time to do it would have been nice. Even just making it due the Sunday night, rather than midday Friday to give us the weekend to work on it.
    I appreciate your desire to complete a great project, but I've weathered many past criticisms from students 'forced' to give up their weekends for projects.

The University of Western Australia

Computer Science and Software Engineering

CRICOS Code: 00126G
Presented by [email protected]