Mr Baumgarten

Computer Science teacher and self confessed geek

iGCSE CompSci - Term3 project

Demonstrate your programming skill through building a project of your own choosing!.

You can make a game, a website application, a chat bot, a face recognition alarm system, program a robot or anything else your imagination comes up with! Create a program you want to make!

The idea is that this project will be a mix of demonstrating programminng you already know, combined with teaching yourself something new.

Minimum requirements:

  • A graphical user interface. This may be through use of tkinter (windows GUI), pygame (2D video game) or flask (web server), or other option as agreed in advance.
  • Persistent data storage using the filesystem. Any valid option is acceptable such as text files, csv, pickle, a database, excel (see pandas), or google sheets.

Academic honesty:

  • You may use tutorials / resources you find online provided they are properly cited. (Include the URL of the relevant website as an in-code comment with the relevant code, clearly indicating what it relates to)
  • Your programming will be assessed on the sections of code you independently create (so while you can use code from other tutorials, you will only be graded on the code you add/create yourself)
  • You are required to make progress uploads every two weeks.

Assessment outline:

Success criteria
(½ lesson)
Identify between 4 to 7 criteria you will use to self assess the success of your final project. Ie: What do you want to achieve? Use specific measurable technically-correct terms. /2
Design
(½ lesson)
Sketch screen wireframe mockups, detailing key functions and flow between screens. See example but only draw a maximum of 4 screens. The idea is to show what the program will look like and how it will behave. /3
You should confirm the viability and suitability of your project idea before proceeding beyond this point
Creation
(8 lessons)
Code your project. Pay attention to:
  • Suitable and meaningful variable names
  • Validation of user inputs & error checking as appropriate
  • Logic is clear and well structured
  • Outputs, including error messages, are clear
  • GUI incorporated and functional
  • Persistent storage / filesystem incorporated and functional
  • Overall, the project is functional

/2
/2
/4
/2
/2
/2
/2
Demonstration
(1 lesson)
Record a screencast video demonstrating your final project, with particular attention to showcasing each of your success criteria. Maximum 4 minutes. /4
Total /27

Submission dates:

  • Success criteria - Due Friday 24 April
  • Design - Due Friday 24 April
  • Creation - First checkin - Due Friday 8 May
  • Creation - Second checkin - Due Friday 22 May
  • Creation - Final checkin - Due Friday 5 June
  • Demonstration - Video - Due Friday 12 June

All submissions are via Google classroom: https://classroom.google.com/w/NDExNjYxNTExOTJa/tc/NzEzNzI5NDI2NjZa

Some project ideas:

  • Blog platform website
  • Quiz maker
  • Networked chat application. To challenge yourself add one or more of the following:
    • Allowing use of webcam;
    • Sending files,
    • Different chat rooms
  • Graph / chart maker (see matplotlib)
  • PDF generator (see pyfpdf): Create your own “mail merge to PDF” tool that reads in a text from a file or spreadsheet, maybe adds images as well, and generate a PDF file
  • Simple image editor (see Pillow): Your own simple version of Photoshop ??
  • Face detection & recognition with OpenCV. Create a Raspberry Pi security system?
  • Telegram bot/integration, send and receive messages?
  • Cozmo robot project?
  • Video game: Some options here (remember the rules about citing)

Update 24/04/2020

At present only half the class have put in their success criteria and sketches, I feel I need to clarify a couple of things.

Regarding the success criteria and sketches: The main purpose of this information is just to communicate to me what it is that you are proposing to create. If I can read what you submit and know what you plan to make - mission accomplished. Please don't make it more complicated than it needs to be.

Regarding the project choice: I realise in hindsight that I got a little carried away with the project ideas I wrote on the project page. Foremost in mind when I read your project proposal is that you only have 6 or 7 lessons of class time to work on the project. Please design a project that keeps this timeframe in mind. The project is not intended to be a stressful assessment. It is actually supposed to be the opposite - instead of assigning a new piece of programming homework every week, the idea of this was to simplify things by assigning you just one programming task that you could work on throughout the term.

For those who are less confident with your programming skills, remember the only two requirements I've set is to (a) use a GUI such as tkinter/pygame/flask and to (b) have persistent data storage such as a file. Here are some additional project ideas that may help you:

  • Convert the class president voting project into a GUI screen based app that could actually be used with students voting for school leadership positions.
  • Convert the task to-do project into a GUI screen based app. If you have time, perhaps add reminders or priority ranks to your tasks.
  • A simple text file editor (your own version of Notepad)
  • A simple image editor (mini Photoshop style... easier than you might think... check https://pbaumgarten.com/myp-design/our-insta-life.pdf)
  • Convert the hangperson app into a GUI game
  • Pong game
  • Snake game
  • Simple platform game (Mario style) You could start with a simple project and then if time allows, add extra features. For instance with the games you can build the basic game, and then if time allows add extra features high-schools, multiple-levels, sound effects, sparkly animations etc

If you are not sure of your idea yet, please feel free to email me to ask my thoughts on your idea.

I hope that helps. Please don't let this project add to your stress burden.


Last updated:

24 April 2020