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
It is intended as project work for KS3/4 teachers and pupils. Comments and suggestions are welcome to Dave at email@example.com.
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 firstname.lastname@example.org.
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
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?
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.
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?
- Play Hangman!
- Test your Hangman Play