Computer Science Paper 2 NEA 1 Computer Science: NEA Key facts It’s worth 20% of your A-level. It’s marked like this… Section Marks Analysis 9 Design 12 Technical Solution 42 Testing 8 Evaluation 4 75 How each section is marked can be seen in appendix A. For you to score a high mark in the program (the ‘technical solution’ bit) you have to demonstrate certain technical skills in your programming. These are grouped as A, B or C – see appendix A. You will have some time in lessons to complete this project but expect to work on the project in your own time (homework, Private Study and +2 lessons). For that reason it is vital you have the appropriate software set up and working on your home computer/laptop. You will need to undertake personal research and teach yourself any new techniques required. Evidence of this research will form part of your analysis section. You need an end user who can help be the source of your requirements – this can be a teacher, fellow student or friend. You will be submitting a written report covering the sections above. What needs to go into this report can be seen in appendix B. This will include well commented, structured code listings. Your technical solution mark will also be derived from a presentation of your working program. This pack has been provided for you to help you think of an idea and start some of the research towards your project.
23
Embed
Computer Science Paper 2 NEA Computer Science: NEAlearnco.de/wp-content/uploads/Ideas.pdf · Computer Science Paper 2 NEA 6 Project Ideas: A Virtual Turing Machine Throughout the
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Computer Science Paper 2 NEA
1
Computer Science: NEA
Key facts
It’s worth 20% of your A-level.
It’s marked like this…
Section MarksAnalysis 9
Design 12Technical Solution 42
Testing 8
Evaluation 475
How each section is marked can be seen in appendix A.
For you to score a high mark in the program (the ‘technical solution’ bit) you
have to demonstrate certain technical skills in your programming. These are
grouped as A, B or C – see appendix A.
You will have some time in lessons to complete this project but expect to work
on the project in your own time (homework, Private Study and +2 lessons). For
that reason it is vital you have the appropriate software set up and working on
your home computer/laptop.
You will need to undertake personal research and teach yourself any new
techniques required. Evidence of this research will form part of your analysis
section.
You need an end user who can help be the source of your requirements – this
can be a teacher, fellow student or friend.
You will be submitting a written report covering the sections above. What
needs to go into this report can be seen in appendix B. This will include well
commented, structured code listings. Your technical solution mark will also be
derived from a presentation of your working program.
This pack has been provided for you to help you think of an idea and start
some of the research towards your project.
Computer Science Paper 2 NEA
Project Idea: 2D Games using Monogame(XNA)
Games can give you many opportunities to explore some advanced programming features but it is
important that you are comfortable with object orientated programming in VB.net.
You must understand the game lifecycle
• Instantiation
• Initialization
• Loading
• Update
• Draw
• Unloading
Preparation and R
Complete these tutoria
Text tutorials
https://roguesharp.wor
http://rbwhitaker.wikid
http://www.informit.co
Video tutorials
There are several video
https://www.youtube.c
https://www.youtube.c
Features you will have t
• Data structures
• Vectors
• Matrix operatio
• Fully object-orie
• Game AI algorit
• Recursion
HEALTH WARNING
Games can be hard. The bigg
clear idea of what the game
Games also tend to have lim
Do not attempt a game if you
Using UNITY instead (https://unity3d.com/)
– Although Unity is another
Repeat 30 times
a second!
2
esearch
ls and create some sort of basic 2D (or if you are very ambitious 3D) game.
dpress.com/
ot.com/monogame-tutorials
m/articles/index.aspx?st=98709very good for writing OOP games
series too you can follow for example
om/watch?v=agt9-J9RPZ0 (the guy has an annoying voice– is he stoned?)
om/watch?v=EXzB_MyZRKM
o use in a game in order to maximise the complexity of the game.
ns for transforming vectors – rotation, movement etc.
ntated.
hms- e.g. minimax
est danger is not having a good end user with clear user requirements – i.e. you don’t have a
is going to do. Without this you will struggle with the analysis and design aspect of the project.
ited data storage requirements which puts more emphasis on the quality of the program itself.
are not prepared to do the spadework and learn how monogame works first.
option for game development its licensing makes it impossible for us to support this in school.
Web based projects will require a bit of practice first. There is a bit of a learning curve regarding the events that trigger server sided-code as well as HTML and CSS but it’s pretty straightforward to pick-up. The Visual Studio environment allows us to run these projects locally too so no messing about setting up remote web-server.
There are two approaches to setting up websites: MVC or Web-forms. For the single developer newbie I would probably recommend Web-forms.
With web projects you can get a bit hung up with what they look like and if they look ok on computer, tablet or phone. Don’t worry too much about this, in fact you can download bootstrap - http://getbootstrap.com/ which provides a nice ‘look’ to your website and addresses many of these concerns (it’s basically a bunch of CSS rules and JavaScript goodies so you don’t have to write them yourself). In fact later versions of Visual Studio (2013 onwards I think) provide it as a built in option.
Social media App
You could create some sort of social media app that incorporates posts, likes, dislikes, friends/followers. Users can ask to be friends, post, like and dislike, repost other’s posts. You could, by applying graph theory, recommend people that you should follow/befriend. You could extend it further to incorporate multi-media posts. One option would be to give it an education focus.
E-Commerce App
You could create an online shopping or booking site. You could incorporate shopping
baskets, stock lists, customer login as well as generating management reports. Again this
could be extended to recommend products based on previous purchasing habits.
Preparation and Research
Understanding html and CSS
http://www.w3schools.com/css/
http://www.w3schools.com/html/default.asp
and bootstrap… http://www.w3schools.com/bootstrap/default.asp
How to develop websites in Visual Studio
http://www.asp.net/web-forms
How to create a database driven website in Visual Studio
https://www.youtube.com/watch?v=JOJV-Z7cmkc
Features you will have to use to maximise the complexity.
• Lots of database tables and associated SQL
• Objects (these make for a very good object orientated systems)
• By representing info in a graph we can use this to recommend new friends or products.
Throughout the course we have (and will) use simulators and other software. Developing an equivalent or better version would be a good upper 6th challenge. In Computer Science we use the following (may be you can think of something in another subject you study).
A Virtual Turing Machine
In the A Level course we will be studying the
concept of Turing machines. A Turing machine is a
Finite State Machine with memory in the form of
an infinitely long tape accessible at the tape head.
We would like a program that allows a student to
put information on the tape (within the
constraints of the alphabet) and create an FSM in
the form of a state transition table or rules. They
can then ‘run’ their program and see how this affects the tape. Programs can be saved. There is
opportunity to validate data entered (possibly using regex expressions).
We can write programs to model various situations. Anything from the basic ‘Conway’s
Game of Life’ to more sophisticated modules of predator-prey relationships, economic
models or Physics Simulations e.g. Planet orbits (some sort of virtual orrery), projectiles etc.
Booking Systems
Booking systems allow us to develop an underlying database as well as developing quite
sophisticated interfaces – if you look on line at booking systems for, say, football matches
you know the sort of thing I mean. There are also various reporting opportunities which
would allow you to run sophisticated queries.
For example, a booking system which would allow you to book a computer in the drop in
centre using a visual representation of computers in the room whilst allowing the
administrator to design/ alter the layout. It could then monitor usage patterns and even
send reminder emails to students to tell them they have a booking soon.
Control Systems
You don’t have to limit yourself to a .NET project on a PC. You can use devices such as an
Arduino or raspberry pi along with sensors to develop a control or monitoring systems. We
have to be careful that such systems whilst having the hardware setup recognised have a
sophisticated program to monitor and analyse data. It’s also incumbent on you to buy the
kit – sensors, breadboards etc. – we’re skint!
Turn Based Games
You can write games that don’t have to be a real-time graphics fest but rather focus on the
machine AI. Good examples can range from connect4 to games such as a risk or GO. The AI
can be as sophisticated as you want to make it but some sort of game strategy would need
to be programmed in - again based on some sort of minimax tree. So opportunities for tree
data structures and recursion are present as well as the opportunity for developing more
sophisticated interfaces.
Computer Science Paper 2 NEA
15
Finally..
None of the above.
At the end of the day it is your project and you don’t have to follow any of the suggestions
above. You are free to choose any sensible project. You will need to discuss your proposal
with your tutor to ensure…
1. There’s an end-user
2. It’s practicable
3. It’s complicated enough
4. It’s not too complicated!
Good projects will have an end user who can make sensible suggestions. The project will
have the opportunity to utilise the technical skills in appendix a. It should also be something
you will enjoy doing and get a sense of achievement from.
If your project requires you to learn new techniques – e.g. different programming
languages, different platforms then make sure you are prepared to learn and factor this in
to the time it will take you to complete the project. Use your time over the summer
holidays to do this.
Computer Science Paper 2 NEA
16
Appendix A – How your project is marked
The following tables show how each section of the project is assessed.
Computer Science Paper 2 NEA
17
Computer Science Paper 2 NEA
See below what technical skills
appear in Group A , B and C
18
Computer Science Paper 2 NEA
19
Computer Science Paper 2 NEA
Technical Skills
These tables provide
an indication of the
content that
determines the level
of your solution. It
doesn’t mean you
have to do
everything in the list!
20
Computer Science Paper 2 NEA
21
Coding styles
Computer Science Paper 2 NEA
22
Appendix B - Documentation Required (Specification Content)
Analysis
Students are expected to:
• produce a clear statement that describes the problem area and specific problem that is being solved/investigated
• outline how they researched the problem
• state for whom the problem is being solved/investigated
• provide background in sufficient detail for a third party to understand the problem being solved/investigated
• produce a numbered list of measurable, "appropriate" specific objectives, covering all required functionality of the solution or areas of investigation (Appropriate means that the specific objectives are single purpose and at a level of detail that is without ambiguity.)
• report any modelling of the problem that will inform the Design stage, for example a graph/ network model of Facebook connections or an E-R model.
A fully scoped analysis is one that has:
• researched the problem thoroughly
• has clearly defined the problem being solved/investigated
• omitted nothing that is relevant to subsequent stages
• statements of objectives which clearly and unambiguously identify the scope of the project
Design
Students are expected to articulate their design in a manner appropriate to the task and with sufficient clarity for a third party to understand how the key aspects of the solution/investigation are structured and on what the design will rely, e.g. use of numerical and scientific package libraries, data visualisation package library, particular relational database and/or web design framework. The emphasis is on communicating the design; therefore it is acceptable to provide a description of the design in a combination of diagrams and prose as appropriate, as well as a description of algorithms, SQL, data structures, database relations as appropriate, and using relevant technical description languages, such as pseudo-code. Where design of a user interface is relevant, screen shots of actual screens are acceptable.
Technical solution Students should provide program listing(s) that demonstrate their technical skill. The program listing(s) should be appropriately annotated and self-documenting (an approach that uses meaningful identifiers, with well-structured code that minimises instances where program comments are necessary). Students should present their work in a way that will enable a third party to discern the quality and purpose of the coding. This could take the form of:
• an overview guide which amongst other things includes the names of entities such as executables, data filenames/urls, database names, pathnames so that a third party can, if they so desire, run the solution/investigation
• explanations of particularly difficult-to-understand code sections; a careful division of the presentation of the code listing into appropriately labelled sections to make navigation as easy as possible for a third party reading the code listing.
Achievement of the latter, to an extent, is linked to the skill in applying a structured approach during the course of developing the solution or carrying out the investigation.
Testing
Computer Science Paper 2 NEA
23
Students must provide and present in a structured way for example in tabular form, clear evidence of testing. This should take the form of carefully selected and representative samples, which demonstrate the robustness of the complete, or nearly complete, solution/thoroughness of investigation and which demonstrate that the requirements of the solution/investigation have been achieved. The emphasis should be on producing a representative sample in a balanced way and not on recording every possible test and test outcome. Students should explain the tests carried out alongside the evidence for them. This could take the form of:
• an introduction and overview
• the test performed
• its purpose if not self-evident
• the test data
• the expected test outcome
• the actual outcome with a sample of the evidence, for example screen shots of before and after the test, etc, sampled in order to limit volume.
Evaluation Students should consider and assess how well the outcome meets its requirements. Students should obtain independent feedback on how well the outcome meets its requirements and discuss this feedback. Some of this feedback could be generated during prototyping. If so, this feedback, and how/why it was taken account must be presented and referenced so it can be found easily. Students should also consider and discuss how the outcome could be improved more realistically if the problem/investigation were to be revisited.