$25
1 Learning Outcomes
This assignment specifically targets the following learning outcomes:
• 1. Be well versed with structured and modular programming using C/C++ and to appreciate the use of software to communicate with external devices.
• 2. Understand how to interface to an external device through a computer program to effect control action.
2 Assignment Specification
This assignment requires you to write the definitions for all functions located in the XBoxController class provided in the file ’XBoxController.h’. This class is located in the Gamepad namespace. The week 2 tutorial document provides an explanation and example of namespaces, and shows you how to lay out the function definitions.
The other file provided to you, ’XInputWrapper.h’, will be used in the auto-marking of your assignments. Do not modify or delete any existing code from these files, you are permitted (and encouraged) to add private functions and/or variables.
2.1 Auto-marking Component (4 marks)
For the first time this year, we will be using an auto-marker to mark the correctness of your implementation. This is performed by ’hardware mocking’, where we will intercept the calls to the XInput.h functions and return specific values, testing the output of your functions against the expected output. You should test your code using the provided XBox controllers as the automarking system will not be available for testing by students.
As such it is imperative that you do not modify the existing code in the files we provide you, or it will cause your code to produce errors when we test it. As mentioned above, you can add member variables and functions to the class, just don’t change any of the provided code.
This is due Sunday 19th August 2018 at 11:55pm by submission to Moodle (see below). Feedback on this will be provided within 2 weeks of submission.
2.2 Style Component (4 marks)
The code that you submit to be marked by the auto-marker will also be marked for style, structure, readability and commenting. Feedback on this will be provided within 2 weeks of submission.
Things we will be looking for include:
• Use of programming constructs
• Consistent and neat structure
• Choice of names for variables
• Commenting and readability of the code
2.3 In-class Assessment (2 marks)
Following the quiz (see below) in your laboratory class in week 5 you will be asked to write a main() function that utilises the functions that you have previously created to solve a set of tasks provided to you.
An example would be to display the direction of the D-Pad as an arrow in the console and make a vibration motor operate when a specified button combination is executed. The tasks will be specified during the in-class assessment.
This will be performed under exam conditions, using the lab computers (no personal devices). You are expected to bring your own code (on USB) and you will have a maximum of 30 minutes to complete the task.
You will need to demonstrate these tasks to your demonstrator before the end of the laboratory session. Feedback on this will be provided within 1 week of submission. The main function you create does not need to be submitted to Moodle.
4 Quiz (5 marks)
During your laboratory class in week 5 you will be given a written quiz immediately before the in-class assessment. This will include content from lectures in weeks 1-3, with an emphasis on the items used in the assignment. The quiz will begin at 10 minutes after the beginning of the class and you’ll have 20 minutes to complete it. Normal exam conditions apply and you’ll only need your student card and a pen. Feedback on this will be provided within 2 weeks of the quiz. Following the quiz, the in-class assessment (coding) will begin.
5 Additional Information
• Each element of this assignment and quiz are to be completed individually, but feel free to discuss ideas with your colleagues outside of the in-class assessment and quiz times.
• A plagiarism check will be performed on all assignments and any instances of plagiarism will be dealt with under the UNSW plagiarism policy (linked from the course outline).
• If your code requires demonstrator intervention to make it work with the auto-marker due to you changing the existing code in the header files, or by not submitting it in the correct format, you will be penalised at least ONE (1) mark.
• Late submissions are not accepted, as per the course outline, unless Special Considerations has been granted. Refer to the course outline for how to do this if you are unsure.
• If you miss your in-class assessment or quiz, you are not permitted to join another class and must apply for Special Considerations to sit another.
• Please post questions about this assignment and quiz on the class Moodle discussion forum.
• Finally, enjoy learning how to work with XBox controllers.