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