- Computational thinking table
- Logically: If… then… else. Decision-making.
- Procedurally: Things happening in a specific order.
- Ahead: Planning, extensibility, array resizing, using a linked list instead of a static list, etc.
- Abstractly: Class definitions, schematics, encapsulation.
- Concurrently: Saving time by doing lots of things at once.
- Recursively: Exploiting repeated patterns.
- Video
- Brief sentence of introduction saying in plain English what the application does
- Creation, editing and deletion of one data item, from scratch.
- Mention of every success criterion with a demonstration that it has been fulfilled
- If necessary, cut to example with loads of data already added to show sorting, searching, filtering, etc
- Mention of key data structures and algorithms
- Mention some examples of computational thinking: Ahead, Logically, Procedurally, Abstractly, Concurrently, Recursively
- By all means tab to a piece of code in Netbeans to showcase your programming
- Comments in source code
- At least one for every class and method
- It’s also good to comment main loops
- Extensibility
- A small section (a few lines only) entitled Extensibility
- Describe how you have future-proofed your application
- Examples:
- Using file input and output rather than “hard-coding” data
- Defining constants using the final keyword so that they can be changed easily throughout the code
- Using linked lists (or ArrayLists or other built-in data structures) instead of arrays
- Designing in a modular way such that new modules can be added easily
- Allowing the user to add or delete their own data, ie not hard-coding the database (all of you have done this)
- Using standard data formats, like CSV, HTML, that can readily be used by other software
- Test plan with actual input and output data in it
- Some evidence of a testing plan is essential
- Screenshots of validation dialogs are a very good idea (ask if unsure)
- Normal, extreme and abnormal data if possible
- Table format: input, expected output, actual output
- Table showing how you have adhered to good programming and usability practice
- Comments in code
- Encapsulation of instance variables
- Use of standard capitalisation in code
- Proper case for classes
- all caps for constants
- camel case for variables and methods
- User documentation
- System documentation
- Use of relative paths
- Data files instead of hard-coding
- Config files or settings