CITS2002 Systems Programming  
 

Unit home

Final exam

help2002

Lecture & Workshop
recordings on LMS

Schedule

FAQ

C textbooks

OS textbooks

Information resources


Extra reading

Past projects

Recent feedback


Working effectively

Look after yourself!

CITS2002 Programming and Systems - Project 1 Feedback (2015)

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

  • Have the demonstrators do the project so they understand what we are trying to do.
  • Show students how to use the relevant code covered in lectures and how to adapt this code for various uses.
    I'd welcome a further comment, via help2002, as to why you believe the laboratory exercises as not meeting this role. In lectures we're identifying features of C99 that can be used in many general programming situations, and the project is just one of those.
  • Nil
  • project assistance was very adequate. Chris was very fast in replying to all, even annoying! questions on the help forum.
    Thanks :-)
  • After a number of people complained of the complexity of the project it was good that the scope changed to make it a little easier. i.e. didn't matter what day and even with no transfers a 100% was still possible. Great feedback from Chris when it came to the forum and in in the lab.
  • For a unit which assumes no previous knowledge, the project was a bit unfair as well as the lectures. A lot of knowledge is being assumed. Teaching of language has been very quick. Some low level concepts were barely introduced and then advanced topics were bought in. A lot of middle ground was left to cover ourselves. Overall, I feel the unit is a bit unfair.
    As stated a number of times early in the unit, this unit does not assume no prior knowledge - it explicitly identifies three units able to provide the assumed (programming) knowledge. If you've enrolled in this unit without any prior programming experience, then you've accepted some responsibility to "get up to speed" with some basic programming concepts (variables, conditions, loops) before taking this unit. This is a second-year unit and it's infeasible for every computing unit to start from scratch and to still "teach to the middle" of its cohort.
  • Maybe more lab time
  • I feel like despite the fact that I had a partner for the project, I was still a bit rusty in my programming and thought processes. Coupled with the fact that the assignment was posted during the midsemester testing period, we found ourselves lacking for time. Maybe a bit longer would have helped, but honestly this would vary from group to group
  • This unit is set at a standard too hard for the average student. I had no problem completing CITS2401 in the previous semester, however this unit just steps up a whole notch and is only passed by those with sufficient computer science backgrounds. The lecturer also disappoints me as he talks off topic frequently and teaches with too complex language. I feel that he targets his audience to only the limited number of students who are outstanding in this unit. The first project issued was also too hard!, my friend's uncle is an electrical engineer and even he himself found the difficulty of the project too high. We only had 2 weeks to complete the project and given the level of difficulty of the project, this was clearly insufficient, especially when errors in the project were frequently updated to few days before the project was due. If this unit is to improve, the lecturer should speak so that everyone understands the steps that he is taking rather than him assuming us to know all this stuff that's not even covered in the lectures. The lecture slides are also limited with content which only covers "30%" of the unit's content according to the lecturer.
    I disagree with the very first sentence of your comment, but it will naturally be more difficult for some students than others. No errors were identified in the project, and it certainly was not "frequently updated" a few days before its deadline. When students required clarifications about the project's wording or requirements, clarifications were made - but clarifications are not correcting errors. Nowhere has it been said that the lecture slides cover 30% of the unit's content - the unit's Schedule page states that "Attending lectures and reviewing their material comprises about 1/3 of the effort required for this unit." The lecture slides identify the important concepts of the unit, they do not form a textbook, and do not provide detailed information that is best learnt from a textbook and practiced through lab exercises.
  • Provide student with basic Frame(as an optional choice) rather than let them doing from scratch (they can do it they want) may be better as some student have difficulty to even start.
  • All good!
  • Chris is a legend
  • An online judge system would be much helpful
    I'm unsure what you mean, here.
  • Provide more labs in the final week of the assignment
  • Not really, no.
  • nah, it looked overwhelming at the start but turned out to be pretty fair and even kinda fun
  • lab demonstrators that actually want to be there.


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

  • It was too hard, we needed more time.
  • The project required far to much time to complete resulting in a deadline which was too early for students to reasonably complete the task without spending close to 10-15 hours creating the required code and/or researching new functions to use of modify as part of the project.
    Our Faculty identifies each unit's expected workload as 10-12 hours per week. If you devoted 10-15 hours on the project over two weeks, and given that you were encouraged to work with another student to help with a sharing of ideas and to reduce each student's effort, it would appear that you worked well within expectations.
  • Adding an extra week, either through releasing it early but not removing labs for that week, or having it finish a week later but still having a lab sheet to do. I really liked the idea of this project, but I felt the time to complete it was a bit inadequate. Please release the information for the assignment as early as possible in future so we can attempt it early. Also, for context, I completed cits2401, and I would have died in this unit if I hadn't done a lot of arduino stuff in my spare time.
  • Nil
  • Since the project was significantly "dumbed down", it now had the same level of difficulty (for my group at least) as expected for a first year project (such as cits1401). I think due to this, more focus should have been given on efficiency. Our solution runs in 0.2-0.3 seconds on the OS X machines in the lab to produce a single segment valid result. But we did use 1 struct definition definition to make life easier, which had not been introduced in cits2002 yet. As such, we think efficiency due to appropriate use of data structures and a good algorithm that minimised the search of valid possibilities, should have been another priority on the project, and not just "good programming practices" (or at least more important). Summary: We feel that too much emphasis was placed on "good programming practices" in the first project, and as such we might not get a mark of 20/20 as we feel we deserve. It feels like it would be very hard to gain 20/20 for completing the primary task as a result of such emphasis.
    I'm sure that when you read the comments of other students that you'll appreciate that your thoughts are at 'one end of the spectrum'. I don't believe that the project was "dumbed down", but it was better targeted at the majority of the class (only 51/174 have done CITS2200, so we can't assume knowledge of data structures beyond what we can present in our first 5 weeks). Efficiency in programming is clearly important, but for this first project it's been clearly identified that good programming practices are more important and would provide more marks. This information was available for all students, and so all have an opportunity to gain 20/20 (so why would it be very hard to attain this?)
  • I found the 2 week period quite tight esp. considering exams were taking place. In addition the clarification given on the project resulted in some work I'd done not being necessary for the new objective so some time was wasted this year.
  • I initially misinterpreted the project and wanted to make a graph where each edge weight was based on minutes and then solve it using point to point Floyd Warshall or Time Dijkstras approach but the limitation of not being able to write a Vector or Priority Queue structure made it hard for me to solve in this method. I realised after my partner didn't understand my approach that it may be easier just to brute force the solution in an optimised fashion while doing the I/O.
    There was no limitation placed on how the project had to be implemented, though it sounds like you and your partner were not suited to working together.
  • I thought the project was too open. There were lots of ambiguities about what we should and shouldn't take into account. Maybe the answers were on the forums somewhere but that's not very accessible. For example, were stop ids sufficient or did we need to translate to stop codes, whether seconds should be used, if not for printing just for calculation, then there was an issue, since the sample output (at the time) gave a slower solution by a few seconds, but then if the program rounds it relies on the program finding the solutions in the same order. Were the columns in the same order, which fields could be assumed to be numbers, would the short name field or the long name field contain the name of the means of transport, and were trains the only exception, and was that for all data sets of just Transperth. Essentially there were so many things that could be taken into account, and all of it was more busy work then a legitimate challenge (unlike the main task of searching a trip which I thought to have a lot of merit).
  • It would be better if it is not that hard. Or give students some tips about functions.
  • - The project is interesting. I can see the real world applications of the project
    - The project is a *bit* hard to do individually. The difficulty makes it seem like it is a requirement to do the project in pairs.
    - It is confusing how a C source file works with some compilers but not with others. For example, our project crashes in Visual Studio, gives the wrong output in MinGW, but works perfectly in Clang and gcc.
    It's not a hidden requirement that you work with a project partner, but permitting (and encouraging) students to work together enables a more difficult project to be set than an individual may reasonably achieve. Yes, differences between platforms and compilers are frustrating, but the errors are likely to be due to your implementation, and are exposed by the different software.
  • The stucture of the project was quite good, allowing a lot of flexibility in terms of how it is made and how it works. It was a considerable challenge but given enough time it is easily doable.
  • Seemed pretty brutal for a 2nd year unit. I have friends who've graduated from UWA, and now have computing jobs, and they said it seemed very hard for students at our level.
  • The project was fine, I think the amount of problem solving surprised me though. You're probably sitting there now thinking "well he's gonna have fun with project 2 then" Anyway I hope I helped
  • The project should obviously not be easy, but it shouldn't be too hard that nearly everyone fails to get an output. The project should also be more concise to ensure that our time is not wasted as we have to change our code due to the update of errors.
    I'd appreciate your view on what updates were due to any errors, as opposed to clarifications to improve understanding.
  • The project acesses data structure so I believe structure in C should be taught before this project with makes life much easier. Extracting columns by columns and store in vairous arrays are tedious. Overall the difficulity is quite high .
  • Way too difficult
  • I enjoyed the project quite a lot, and found it very closely related to the unit material. The help forum was very active, and provided greast assintance.
  • Not really, no.
  • i don't have any comments/suggestions but just wanted to say to take these answers with a grain of salt, because both my partner and I have never done programming before first year so we've got a long way to go and may have found the project more difficult than intended
  • perhaps things like working out how to convert 24r time into minutes values/ i knew what needed to do but perhaps took too long trying to figure out how to do it. really enjoyed the project and actually wanted to do it, as opposed to most units homework which has to be done! thank you Chris.


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

  • Release the project after we have covered everything that is needed to complete the project.
    This is exactly what happened this year.
  • Please, release the projects earlier.
  • Strongly encourage students that a partner is beneficial. Hypothetically 90% of people I knew doing the project alone were struggling a lot compared to those who had partners.
    The project sheet strongly encouraged students to work with a partner, it was stated in lectures, and the help forum helped project partners to find each other. ?
  • Very interesting project, actually felt applicable to the real world. The project was simplified quite a lot which probably wasn't needed, maybe more of the things taken out could be extension tasks.
  • The original specification of multi segments was a very difficult project. It could have been done by our group most likely but would have taken much more dedication. We think next year, the first project should be clarified earlier, to give students more time to understand what the nature of the problem is.
  • It was partially my fault that I had not completed the project in time, but i think ~two weeks is too short to complete a project of this size. With juggling other units and assessments it can be hard to find the amount of time that this project requires. A longer time period gives students more flexibility.
  • 1. An extra week 2. Less 'narrowing' clarifications
  • Could you allow next year's project to be more than 1 C file and allow those students coming from Data Structures and Algorithms to write their own Header files and data structures in a manner that you might need to in real life. e.g. I was excited to be tasked with finding an algorithm to work out how to Google Maps algorithm finds the optimal route. However the limitations and reducing the legs to 1 or 2 made the task less interesting.
  • Better defined, clearer guidelines, less changes/clarifications from the beginning.
  • Make the deadline 5pm instead of 12pm
  • The complication can seriously be reduced. This unit is a recommend unit for students pursuing electrical engineering, and if a lot of learning is left assumed and to cover themselves..it can be a huge blow to confidence of many.
  • - make the first project be done individually while the second project be done in pairs/teams so that students can get comfortable with their skills in C first before doing a team-based project with another student. - longer time frame for the project (though not really a big issue)
  • I felt under a lot of time pressure from this project. It was partly my fault from misinterpreting the schedule, But I thought we had longer to work on it. I thought we had a full 3 weeks from the date the project was released but by the time the midsem was over for this unit, as well as the major assessments for my other units, I realized there was only about a week left to complete this project (I had started working on this project before this point but nothing major). I think if the project came out the week after the mid sem test and was due on friday week nine I could have managed it with ease. But because of time pressure my partner and myself worked throughout Thursday night to midday Friday and still could not fully complete the project by submission time.
  • Teach pointers before and also how to return some sort of arrays from functions
    Pointers weren't required for this project, and teaching them in sequence would have delayed the project by 2 weeks.
  • The idea, was certainly interesting, but was a huge difficulty spike compared to the lab material.
  • All my suggestions have already been made.
  • Copule more days (extra weekend) to finish it as it was given to us right in the middle of midsemsester tests and exams. Personally I had about 5 of those plus copule of other different assigments. It's just not healthy.
  • Place less emphasis on the logic behind what is happening and focus more on coding!
    I don't understand this comment.
  • Make it easier. Teach us relevant stuff in the lectures.
    What relevant material do you feel was not covered in the lectures (and labs and tutorials) before the project? What brand new knowledge did you have to acquire while the project was running?
  • Provide essential material to students that have not done data structure and algorithm or lower the difficulity in the first project (second could be harder)..
    I believe that that was done - the only required data structure was the array, and the only required algorithm was linear searching. For the majority of students in our unit, I'm unsure how more complex data structures or more complex algorithms would have assisted (other than shortening the code size).
  • Tone down the difficulty nobody I knew remotely knew what they were doing.
    I do not understand how this can be the case in a 2nd-year university subject with which students are engaged. Which of your questions, asked on the help forum, or in lectures, laboratories, or the turorials, were not answered in a manner that made things clearer?
  • Make required clarifications about the nature of the project and marking as early as possible. For example, in this project, it was made clear towards the end that transperth GTFS files were just an example, and would program would have to be slighlty more general than just reading these transperth files (i.e. route ID's aren't necessarily numbers in other GTFS data sets). If such info announced/explained earlier, it gives students more time to account for these things.
  • Dont choose something that has to be greatly simplified to be a suitable difficulty for the class, its very disheartening
  • Perhaps something that won't be so extremely OS dependent, allowing students to complete portions of the work at home if they only have access to, say, a Windows environment there. Only a few of the assistant functions could be completed on Windows and translate straight to OSX, and as a result my partner and I had to work almost exclusively in the lab during school hours.
    This project was extremely OS-independent. What parts of this project do you feel could not be completed on Windows? Given what was required for the project, your comment suggests that you feel the laboratory exercises are similarly OS-dependent. What OS-specific features do you believe were required?
  • nah, it was worlds ahead in terms of planning compared to what we did last semester

The University of Western Australia

Computer Science and Software Engineering

CRICOS Code: 00126G
Presented by [email protected]