~ Creating a Matchmaking algorithm + Validation consideration in Python

Algorithm design and validation consideration

*Teachers with subscriptions will have access to all worked solutions and python code. This sample project is based on a unique idea by TeachYourselfPython. Maybe we are on to something with the dating algorithm...?!


Algorithm design

Algorithm design is crucial to any program, and the ability for you to be able to problem solve and think for yourself is very important. We have made a suggestion (see the video) as to the secret of matchmaking, and your task is to try and imlplement the algorithm OR if you are a real social and computing genius, to come up with an even better magical algorithm and implement that too. What do YOU think is the key to relationships working? Our algorithm suggests that people with complementary strengths are best matched and those with the same strengths had best avoid each other (this is not always true, but in many many many cases it does seem to be the case!) Something to discuss further in sociology perhaps? See if you can implement the "matchmake" function, by displaying possible matches based on their opposing strengths.  


Without validation no program would be complete. Validation is ensuring that the input entered into a program is valid ....the programmer - or at least a good programmer - will try and minimise the errors that could be caused on user input. e.g. the date input requries the date to be entered in a specific format, this minimises the chance of people typing in rubbish. The program could check to see that the email address entered has an @ sign, as a type of validation. Of course, validation could get really complex and be endless, but select a few areas and try and implement some validation. You can then discuss it further in your evaluation and testing.


Note: See if you can do better (and you should be able to). The solutions provided are basic, and allow for discussion on possible alternative methods and solutions.


Write your own summary of the problem. What are your objectives? List the success criteria

Design Tools

Designing something or writing out some pseudocode before you actually write code is always a good idea! Get in to the habit of doing so! You can draw your flowchart here and screenshot it.

Try it yourself

Testing Table

You may want to read a little about Testing first. A teacher may go through some examples with you. Feel free to fill in the test table here, and screenshot it in to your powerpoint. Testing is absolutely essential once you have created a program!
Test No. Description Test Data(input) Expected Outcome Actual Outcome Further Action?
Coming soon!