# data[].attributes.body
The aim was to ensure that you all had the material you needed for the assignment as early as possible.

# data[].attributes.body
Many of you felt that the assignment took far more hours than it should have done.  This came initially as a surprise; the assignment this year is similar to that given for the last five years, and was designed so that a typical student would be expected to take approximately 30 hours.  Obviously there is a long tail to the number of hours some students take, and sometimes students take significantly more time in order to challenge themselves or to improve the performance of their solutions, often with diminishing returns.

Here are the links to previous year’s assignments:

2017: Terry Payne - http://cgi.csc.liv.ac.uk/~trp/Teaching/Entries/2017/10/6_COMP329_-_Assignment_1_2017-18.html

2016: Terry Payne - http://cgi.csc.liv.ac.uk/~trp/Teaching/Entries/2016/10/21_COMP329_-_Assignment_1_2016-17.html

2015: Richard Williams - https://cgi.csc.liv.ac.uk/~rmw/329/assignments/assignment01.pdf

2014: Simon Parsons - http://cgi.csc.liv.ac.uk/~sp/teaching/comp329-2014/projects/assignment01.pdf

There are many changes, however, to the module this year that could have inadvertently exacerbated the situation; hence the desire to obtain constructive feedback to avoid this situation in Assignment 2 (and of course for this assignment in the future).  Many of the improvements have included: a significantly larger lab (Lab 5 -> Lab 4); better access to each bay; better access to the robots in the lockers (previously they were held in the help desk, and hence were less accessible); new obstacles (previously they were rectangular printer boxes); well defined square cells; etc.  Furthermore, a new addition was the availability of the gyroscope sensor, which has significantly improved the possibility of correcting rotational odometry.  In addition, I introduced new notes on the Sonar Sensor Model (Week 4) resulting from a conversation with a few of you.  It seems that many of you were interested in the challenge of using this new sensor model (although this was not a requirement of the assignment), although using this model can require a significant investment of time, especially as I had not covered (in the notes) approaches for determining if a cell fell in the sensor cone.

From this exercise, there are some observations which I am incorporating for the second assignment, and will implement for the next year:

Provide additional guidance on what is required in the assignment, to avoid possible confusion.  This is necessary as I am providing additional sensors and greater flexibility in the setup of the robot.  Therefore, it is prudent to provide more advice.

Highlight the fact that students are not expected to spend considerable time on the assignment. Some students may want to challenge themselves, but it is important that there isn’t the expectation that an excessive number of hours are spent on the assignment.

Provide additional details on the sonar sensor model, and explore providing some software too make the model more accessible to future students.  Additional notes will be added to the lecture set on the sonar model to show how to determine when a cell should be included in determining the probability of occupancy.

# data[].attributes.body
What can I say - he is an asset. He *will* be paid the appropriate rate for all of the hours he has put into this course, and is an asset. The robot design is being called "Josh" after him! But yes, we know he's an absolute star!

# data[].attributes.body
Thanks for the comments on this - I couldn't agree more that LeJOS is buggy and has been a cause of much consternation. This is something that needs to be looked at for future years.  I'll be looking at other alternatives (ideally ROS for EV3) but it is important that any new framework can fix the problems that we are experiencing, rather than introducing new ones.  Certainly exploring some bug fixes in classes such as the movePilot are high on the list. Also, the idea of "tips and tricks" is an excellent one - I'll look at doing something like this for next year.  As for the point below, I would absolutely agree than some code fragments of classes to do the more mundane things (e.g. sense colour given our bays, or an occupancy grid class) would make sense. Thank you

# data[].attributes.body
Thank you all for your feedback; I've kept a log of the most salient points to improve the assignment for next year, and have tried taking into account your views for Assignment 2.  You will find below the comments, colour coded on topic, with my responses in white.  If you have further concerns, then please contact me.  The PadLet page has now been closed to further comments.

# data[].attributes.headline
First Assignment Hours based on Module page

# data[].attributes.subject
First Assignment Hours based on Module page

# data[].attributes.body
On the module page, it states that the hours in total for the module is 150 hours.

Having pulled 9am - 1am's for almost 2 weeks straight, that amounts to more hours on this single assignment in comparison to the entire module.

I enjoyed the content of the module, however the assignment was clearly too much work in relation to the required outcome. Simply put, it's a huge workload on students, even more so than the final year project which is supposedly the backbone of our degree.

Pushing students this hard doesn't help us learn, or even teach us valuable life lessons. It's just stress for the sake of stress.

# data[].attributes.body
Rather than start from almost nothing, I preferred to be given a skeleton code, especially the code that allow the map to show in both robot's led screen and computer screen. I wrote most parts of the codes, and I think creating graphic user interface cost me a lot of time and learn nothing from that.

Another issue is that I find that the ultrasonic sensor model introduced in week four is quite interesting. Some excellent guys implemented that model and maybe that should be a desired learning outcome. To make that happen, the workload on localization strategy (which is strongly affected by LeJOS and hardware bugs) must be reduced.

For the second assessment, if the desired learning outcome focus on the logic and agent speak. Then I need the source codes or any hints about the localization and hardware as much as possible.

In addition, it is a common phenomenon that only one or two people in a group worked hard. However, the current peer review is too useless to reveal the problem. For example, if someone wrote at most 20 lines of code, there is no need to evaluate his/her code quality.

Furthermore, I think an individual report (contains about 500 words and some pictures) is better than the log for recording the learning experience and the evaluation of the work.

# data[].attributes.body
Throughout the entirety of the assessment period for the module, Josh was on hand to provide support for all of the lab sessions. I'm sure that I speak on behalf of all of my peers when I say that without Josh, many more groups would have struggled if not failed to submit their assignments. His contributions are invaluable to the module and for the students. He is an asset to the department.

# data[].attributes.body
The assignment took far too many hours to complete. I and other members of my group spent at least 106 hours in the robotics lab (often daily hours from 9am-11pm) and further hours at home over the course of around 2.5 weeks.

The LeJOS API is flawed in several areas with both things that don't work and very strange design choices such as swapping the x and y axis.

# data[].attributes.headline
Assignment Hours & Other Modules Being Effected

# data[].attributes.subject
Assignment Hours & Other Modules Being Effected

# data[].attributes.body
I think that the first assignment took far too many hours. A lot of students were forced to complete extremely long days in order to complete the assignment (in some cases up to 13/14 hours), which caused significant impact on other modules. Some people have calculated an approximate 110 hours in total were spent in the lab throughout the duration of the assignment (plus further hours at home to add to the log and refactor some code etc.), and we still did not feel 100% happy with our final solution, as we felt there was simply not enough time to finish it completely.

In fact, without Josh being in the lab to help us, I feel as though our final solution would have been completed to an even lesser standard. He provided guidance when we simply could not think of the answer and was always available to point us in the right direction. He was supportive and encouraging, and we simply couldn't have done the assignment without him.

Having to miss lectures and lab sessions for other modules lead to a lot of students, including myself, being at least 2 weeks behind, causing a lot of stress in not only trying to complete the robotics assignment but also in feeling like the other modules were being compromised. Having now finished the assignment, we are still significantly behind in other modules and are trying to catch up whilst finishing assignments for them, which is proving to be a difficult and sometimes stressful task.
Although we are trying our best to rectify this issue and catch-up on all modules, we are currently being forced to miss robotics sessions to allow more time to complete other module assignments we were not able to start any earlier, which is again going to cause us to be behind in robotics once these other assignments have been completed. I am concerned that if the second assignment requires the same amount of work as the first, this issue will persist and we will not be in a good position across all modules coming up to the exams.

# data[].attributes.body
If we are to use LeJOS - several quirks of the library took several hours even to find out how to fix. E.g. the LED lights.

If we had a small tips and tricks sheet that was given to us before the assignment - that would've saved a few hours.

# data[].attributes.body
I like the fact that we have 3 weeks full of lectures and then two weeks free to focus for the assignment. My opinion is that the assignment took many more hours that it should be and many of us didn’t have the time to focus on any other module or our final year project because of the hours that we had to be in the lab to finish the assignment.

# data[].attributes.body
I feel that the assignment took far more hours than it should have done. I know myself as well as many other students spent well over one hundred hours to complete. This meant that I lost out on nearly 2 weeks of lectures and other assignment work, including  my final year project, putting me behind on all of this. I feel this should be addressed for the second assignment.

# data[].attributes.body
I really liked the 5 lectures a week during the first three weeks, as it provided me with the material I needed for the assignment ahead well before the deadline.

# data[].attributes.body
Broken:
- movePilot.rotateLeft
- movePilot.rotateRight
- movePilot - you cant change the speed without recalling the travel / rotate function and causing stuttering.
- movePilot - incorrect pose is reported after traveling backwards
- navigator
- stopping a arbitrator automatically when all behaviours return false for canAct

# data[].attributes.headline
Assignment 1 took way longer than 30 hours.

# data[].attributes.subject
Assignment 1 took way longer than 30 hours.

# data[].attributes.body
The module page states that the two assignments should take 60 hours. Given this is the easier of the two, it should be able to be completed in less than 30 hours.

Many individuals, including me, completed multiple 13 hour days to finish the assignment in time, and skipped every lecture and practical session to be in the lab for over a week.

Had the labs not been opened due to Josh’s unpaid support after hours, none of us would have been able to finish the assignment in time.

As a result, I was approximately 2 weeks behind on every other module after completing the Robotics assignment.