Department of Electronic Engineering

ELE00029C Introduction to Programming Coursework

Assessment 2020/21


SUMMARY DETAILS

This coursework (Program) contributes 50% of the assessment for this module.

Note that for complete context this assessment also describes the Report component.

Clearly indicate your Exam Number on every separate piece of work submitted.


Submission is via the VLE module submission point. The deadline is 12:00 on 19/3/2021, Spring Term, Week 10, Friday. Please try and submit early as any late submissions will be penalised. Assessment information including on late penalties is given in the Statement of Assessment.


ACADEMIC INTEGRITY

It is your responsibility to ensure that you understand and comply with the University’s policy on academic integrity. If this is your first year of study at the University then you also need to complete the mandatory Academic Integrity Tutorial. Further information is available at http://www.york.ac.uk/integrity/.

In particular please note:

●   Unless the coursework specifies a group submission, you should assume that all submissions are individual and should therefore be your own work.

●   All assessment submissions are subject to the Department’s policy on plagiarism and, wherever possible, will be checked by the Department using Turnitin software.

C- PROGRAMMING ASSIGNMENT – GRAPHICS GAME

SCENARIO

A commercial space exploration company has commissioned you to write a graphical game to engage potential customers with an imaginative scenario of an Earth to Mars rocket launch. The game involves the player launching a rocket across a graphical space, at a selected force and angle, while incorporating into the rocket’s path physical factors, specifically the influence of the moon in altering the rocket’s trajectory due to its gravitational attraction.



The game you design will eventually be ported over to a number of different platforms, and additional features may be added to it (such as advertising on the company’s mobile app). Therefore, as well as creating the game and making it playable, your task is to produce a written Report that will make the hand-over of your work to a new team of software engineers as effective as possible.

Your assignment has two parts, to be submitted on separate dates (see Cover Sheet for details): a coded Program and a written Report, as described below.


THE PROGRAM

A Program written in C implementing a playable, graphical game that has the player launch a rocket, with a selectable initial velocity and angle, from a source (“Earth”) at one end of the screen towards a destination (“Mars”) at the other end. As it traverses the screen, the rocket’s trajectory may fall under the influence of the gravitational force of the moon, placed for each trial at a different game-assigned position between source and destination. The moon’s gravitational pull may therefore deviate the rocket’s trajectory from proceeding in a straight line, as governed by a radius of influence that is increasingly stronger as the rocket gets closer to it, i.e. the force is inversely proportional to the distance between the rocket and the moon. There will need to be a scoring system, which would be inversely proportional to total distance travelled before landing on Mars. The diagram shown above is provided as guidance, but you are free to make different design choices (e.g. different moon sizes) while still maintaining the central scenario.

In addition to the basic game described above, you will need to apply at least one extended feature, such as introducing sound effects associated with game events, creating a musical soundtrack as the game plays, adding animation or applying additional game mechanics. You should describe whichever extended feature(s) you implement in the written Report (see below).

Important Note - It is your responsibility to prepare, document and retain any information relating to the Program (such as technical specs, source code, test results, etc.) that may be needed for writing the Report at a later stage, particularly as you may no longer have access to your Program prior to Report submission.


THE REPORT

A 10-page written Report and an Appendix of the source code. As explained below, a second Appendix may optionally be included. The Report (except for the abstract, see below) should be written as though directed at professional software engineers who have a similar level of knowledge to your own. You may add an additional title page, which along with Appendices, will not count as one of the 10 pages.


REPORT STRUCTURE

The Report must contain the following main numbered sections with the specific content described below.

1-Abstract – a short, top-level summary of the contents of the Report (max 300 words); unlike the rest of the Report this should be written at a level that a general audience will be able to understand (e.g. your space exploration executive client).

2-Problem Descriptions and Analysis – describes the problem, including a description of the game, the general approach to creating it, the physical laws and models applied, and any limitations or special conditions in the design and implementation.

3-Technical Specification – describes Program design, algorithms and methods used, including libraries, user inputs and outputs, and prescribed features as well as the extended feature(s) you have added to the game. You should also include a plan for testing your code, including user testing, and the criteria for evaluating successful completion (e.g. positive user feedback, customer satisfaction).

4-Evaluation of Implementation– review and analysis of Program design, code, performance and overall quality, any limitations, unsolved problems (e.g. bugs), conclusions on your evaluation criteria, and suggestions for improvements or further work.

APPENDIX A – contains the C source code of the Program, including comments, header files, assets (e.g. images), and any special conditions or notations. Please do not include your name however, as the submission is anonymous.


HAND-IN

Your individual work components, the Program and the Report, should be submitted separately by the corresponding submission deadlines, as stated on the cover page. Work should be anonymised (using your exam number instead of your name when referring to yourself). The Program should be uploaded to the module's VLE submission point as a single ZIP file (maximum size 30MB), while the Report should be submitted as a single document, with the following contents:

●   The Program submission should contain: The Code:Blocks project folder, including source files (.c), header files (.h), the Code:Blocks project file (.cbp) and any resources needed to run the project on Departmental computers.

●   The Report submission should contain: A single written document (.doc, .docx or .pdf).


YOUR SOFTWARE

Your code should be well-commented, and well-structured, making good use of variables, functions, arrays, pointers and structures, according to the scenario, analysis, criteria and specifications as set out in the Report.


MARKING SCHEME

You will be marked by a panel according to the following scheme:

C programming quality (50%)

o       Use of C Language:

▪       required features included

▪       correct use in Program

▪       use of libraries

o       Clarity of Code:

▪       comments

▪       formatting

▪       structure

▪       variable naming

o       Use of at least one extended feature, e.g.…

▪       Additional sound and/or music effects

▪       Additional design and/or graphics effects

▪       Additional game mechanics




Report quality (50%)

o Completeness – contains required sections with appropriate and accurate content

o Readability – well-written, nicely formatted and easy to understand by the intended audience

Fitness for purpose – professional quality, well-documented for further extension or hand-over of project

The Program and Report components for this assignment each contribute 50% to the assessment credit for the module Introduction to Programming.