Welcome to Project Work in Computer Science

This is a new website for teachers and pupils in Computing created in 2019. In particular, this site proposes to support Computational thinking directed towards creative problem-solving and design in Algorithms and Programming. We support the projects proposed on this site with open source software freely available on browsers so that users can access the software on different devices, including mobile phones. The first project, a work in progress, is an experimental version of the children's game Hangman. It is intended as project work for KS3/4 teachers and pupils. Comments and suggestions are welcome to Dave at d.white@cs.ucl.ac.uk.

Creative Commons License

Algorithms and Programming, and bespoke software at Dept of Computer Science, University College London is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Permissions beyond the scope of this license may be available at dave@ispython.com. Creative Commons License

Project 1: Guess a Number

Undertaking the first stage of this relatively straightforward project presents a practical introduction to the programming control structures of Python 3. To be completed...

Project 2: Hangman

Stage One

Undertaking the first stage of this project presents a practical use of all the programming control structures and data structures in Python 3 required for GCSE.

In a nutshell: the computer hosts the game for users to play

  • Can you learn to play hangman well with a partner using paper and pen?
  • Do you know what you have to do to host the game while your partner plays the game?
  • Can you describe the role of host in an algorithm?
  • Can you break down this algorithm into distinct parts for you to write programs for those parts so that a computer can host hangman for users to play the game?

Stage Two

In a nutshell: the computer hosts and plays the game. Users choose a word from the dictionary.

  • Can you get the computer to offer help the player to improve their game? e.g. Introduce the idea of a Scanner button
  • Can you program the computer to play hangman well? (as opposed to hosting the game).

The concept behind this project is to introduce the idea of starting with an individual human solution to the various stages of the project, and to express each as an algorithm. We use guided discovery and enquiry-based learning on a Hints page, to help in this development, and enlist some computer aids, which we provide, to help with the design of a human computer-aided solution. Further, any strategy/algorithm developed can be tested automatically by playing 5 consecutive games of Hangman. Use your game strategy/algorithm and assess its merits with a grading for your play, from NOVICE PLAYER to WIZARD PLAYER in our Test your Hangman Play program. Finally, this approach may form the basis for the development of algorithms and programs for a computer to host the game, help a user to play the game, and eventually for the computer to play the game. It also serves as an introduction to some of the ideas behind Artificial Intelligence and Machine Learning.

Hangman: An Introduction to Strategies, Algorithms, Programming, Artificial Intelligence and Beyond...

You are invited to test your creativity and ability in design and problem-solving in Hangman.

Traditional Hangman: Human Solutions

Play the traditional game first to develop your own strategy to help you to be a more successful player of the game. The computer hosts this game for you. Can you express your strategy for finding the random word chosen in an explicit algorithm for your human solution? When you have given it a go, press 'Hints' for help and discussion and how to use the 'Scanner' and 'Reduce Dictionary' buttons to improve your game. The small Computing Dictionary, from which the computer chooses its random word, consists largely of words (and their meanings) used in Computing; words that help in understanding and navigating the subject of Computer Science. You can consult this dictionary and the 'Hints' page to help you design your strategies/algorithms.

Human Computer-aided Solutions

You can enlist the computer's help in the task in a variety of ways, see the'Hints' button on the Hangman page for suggestions. You may now have started to develop, possibly, a more effective algorithm as your human but computer-aided algorithm.

Test your Game Play

Are you a NOVICE or a WIZARD PLAYER at Hangman? Use our test program to find out your level of play and how much you need to improve your game. Do computer aids like 'Scanner' improve the level of your game?

Ruby Plays Hangman

Finally, with, or without the Hints and discussion, can you devise an algorithm for the computer to play hangman and so build a program (in Python 3?), where the user and the computer partially exchange roles: the user randomly selects a word from the computing dictionary and the computer tries to guess the letters in the word. The user gives the appropriate responses to the computer guesses. We hope to have our intelligent computer, Ruby, playing the game soon. We will be testing to see if Ruby can reach WIZARD PLAYER level in Hangman. There will be a discussion and 'Hints' page for this part of the challenge available soon.

Artificial Intelligence

There are many different solutions to this problem. Can you improve your computer algorithm so that it does better than a human? Is this a good example of Artificial Intelligence? Is the computer able to learn from its experience in your program? More to follow...

Ready to give it a go?

  1. Play Hangman!
  2. Test your Hangman Play