The Book of Programming Ideas document contains 64 example programming exercises for students to try. The sections cover everything from basic input and output exercises through to subroutines, functions, and file handling. There are Python and Java versions of the document, although all exercises are written to be language-independent.
This book contains 27 programming tasks for students. They range from simple assignments that output messages and variables to the screen, to more complex programs to play simple games or solve common problems. Each activity lists the required programming knowledge (e.g. loops) to complete it. This is a really useful booklet for starter or extension tasks, allowing students to work at their own pace. The activities are written so that they are language independent.
This booklet was created by Stuart Lucas and Michael Kölling and is licensed under the Creative Commons Attribution Share Alike licence. You can download the PDF version and a Microsoft Publisher version, allowing you to edit the booklet.
These Java Helpsheets cover various aspects of the language including if statements, data types, loops (while and for), and the Scanner class. Each sheet summarises the concept and provides several example lines of code.
The sheets can be printed out on A4 or A3 paper and make excellent wall displays to help students who are new to programming.
This resource was created by Matt Lowe and is released under the CC-BY-ND licence.
This Python handout and the PowerPoint version are designed to test students' understand of loops in Python. The second example includes an infinite loop for students to spot. The third example demonstrates working code with awful variable names - a good opportunity to highlight how 'simple' things like these can help make code much more (or less) readable.
This simple programming project requires the input of ice cream preferences (size, sprinkles, etc) and then calculates the total cost. The emphasis is on accepting and validating user input. With many different combinations of ice cream and prices available, this is also a good chance to talk about testing.
The project is written to be programming language agnostic: we have used it successfully with Python and Java, but it is possible to use it while teaching most languages.
Skills required: selection / if statements, while loops
Code Academy is an incredibly popular site for good reason. It has a range of excellent programming tutorials that focus on practical skills development, providing students with 'bite-sized' programming tasks that have clear and easily achievable goals that stop students getting discouraged. The system also keeps track of students' progress and allows them to learn at their own pace. Python seems to be a particularly popular language for beginners (particularly for GCSE and IGCSE), and I have found the Code Academy tutorials to be very useful for my students.
Compiled languages such as Java and C/C++/C# do not generally have tutorials on Code Academy, but as these are generally considered languages for students with more programming experience, this should not be much of a problem.
Testing is a topic that is often overlooked in Computer Science courses. This video examines the purpose of testing, different types of testing, and different types of test data (normal, abnormal, extreme). It also explains defensive programming techniques - techniques that can be used to avoid bugs in the first place.
2.3 Data Types and Structures
Subprograms are known by several different names - methods, functions, procedures, subroutines, and more. This video explains the different types of subprograms, including those that allow data to be passed in (as parameters) and those that return a value (functions). Even if you know how to create such code, reviewing the theory can be helpful.