K:\Assessment\2016-2017\Undergraduate\Resit Materials\CO5625\CO5625 Resit Assignment.docx
UNIVERSITY OF CHESTER - Undergraduate Programmes Assignment Specification
Faculty of Science and Engineering
Department of Computer Science
Module No
CO5625
Module Title
Further Programming for Games Development
Academic Year
2016-17
Assessment No
1
Date Out Submission date
21st August 2017 17:30 hrs
Assignment Title
Programming Challenges
Learning Objectives Assessed
On completion of this module the student will be able to:
1. Recognise and explain common data structures and algorithms and their appropriate use in
program design
2. Analyse complex problems, and design suitable solutions to them, using real-world scenarios
3. Employ a variety of techniques for code reuse and implement software using industry standard
APIs
4. Demonstrate and explain their own programming work and answer questions on how it was
designed and implemented.
Submission Information
Submit all relevant files as a .zip folder via turnitin
Extensions and Plagiarism
Extensions
Extensions can only be granted by Dr Linda Rayner, Head of Department (by appointment through the
Departmental Administrator), and written evidence will be required. Late work is penalised at the rate of 5% per
day.
Plagiarism
Students will also have to sign a disclaimer that the material they are submitting is their own work. The
penalties for plagiarism are severe. The minimum penalty is usually zero for that piece of work. Further
information is displayed on the Assessment Notice Board.K:\Assessment\2016-2017\Undergraduate\Resit Materials\CO5625\CO5625 Resit Assignment.docx
Assignment Brief
Assignment Brief:
Part 1:
You will be required to write two further programs:
1) Write a program which reads a text file and tells you
a. The number of characters in the file (not including spaces)
b. The number of words in the file
c. The number of occurrences of each word in the file (the user should be
able to type in a word and the program return the number of times it
occurred in the text). Think carefully about the data structures you might
use here. Some answers are more efficient than others. Ideally the file
should only need to be read once.
2) Use boost::asio to write a networked version of the program which takes an IP
address as input and reads the default web page at that address. Note that
due to the process of HTTP chunking, the program may not retrieve the whole
web page in all cases. You may use the boost tcp iostreams for this (please
see lecture notes on sockets and networking for examples).
Hints:
To test part 2, you should use the nslookup command to find out the IP
address of a known web page. Google it if you’ve not heard of it before. Also,
the minimum HTTP request string is “GET /\r\n”. If you want to specify a page,
try “GET /index.html\r\n” (substituting the page you require for index.html, of
course). You will need to send a request like this to the server for it to send
you its default page. HTTP servers use port 80.
Part 2:
You should also write a reflective report outlining the approach you took to completing
the programming task and identifying any possible improvements that could be made to
your submitted code.
70%
and
above
All functionality implemented accurately and with some ingenuity and
imagination where appropriate. Competent use of advanced techniques in
the second exercise. Report shows a genuinely insightful approach to the
tasks.
60-70% Most of the required functionality is implemented successfully but solutions
are perhaps not as concise or efficient as they could be. Report displays a
solid understanding of the principles involved.
50-60% A good attempt but perhaps with some oversights here and there. Programs
may not always handle exceptional cases correctly but the functionality is
generally adequate and demonstrates an understanding of most keyK:\Assessment\2016-2017\Undergraduate\Resit Materials\CO5625\CO5625 Resit Assignment.docx
principles. Report is perhaps a little vague and lacking in technical detail for
some aspects.
40-50% A reasonable attempt has been made with knowledge demonstrated but
perhaps with some elements of the implementation missing or incorrect.
Report gives an indication that relevant principles are generally understood.
Less
than
40%
Little meaningful code written or problems addressed incorrectly on the
whole. A lack of understanding of the basic requirements may also be
present. Report may reveal significant gaps in understanding.