Click here to Skip to main content
15,850,685 members
This competition has ended

The Machine Learning and Artificial Intelligence Challenge

Artificial Intelligence is transforming everyday life. It changes how you interact with your phone, your computer, your car, even your friends online. It can protect you from fraud or choose your next movie to watch. It can show you patterns you didn’t even know existed and transform gut instincts into consistent rules. It’s something you need to understand, and it can be a lot of fun.

We want you to take three simple scenarios and use the Artificial Intelligence and Machine Learning tools and techniques available to come up with some simple, innovative, maybe even surprising solutions to some familiar problems.

Don’t be scared! These problems may seem big, but there are surprisingly simple solutions and plenty of examples online that will get you there quickly.

Points are given for speed, accuracy and the use of technology. Use Azure AI, use Redis, or Python. Write it in Javscript to run in a browser. Whatever works for you. Be adventurous and spread your wings. 


The classic spam filter.

We’ll provide you with three sets of data: one contains spam, one contains ham (ham is not spam. Or the other way around?) and the third contains random test data. You build and train your system using the first two sets and then run it against the third set. Fight the spam and Save the World.

Your training and test data are here. The format is simple: A text file with 1 message per line, each line begins with "Spam" or "Ham" (ham is "not spam"), followed by a comma and then the message. The file is in 3 parts, each part labelled by a header starting with #. There's spam and ham messages for training, followed by a set of messages that are to be used for testing your code.

Train your model on the training data, then test on the test data. We may then send you some unlabelled test data so beware! Write up your methodology and code in a short article and report your results.

Your article should be posted in the Artificial Intelligence and Machine Learning section.

Difficulty: Beginner to Intermediate


The language detector

We all love code but we all really love code that’s colourised. The only problem is your colouriser needs to know the language of the code before it can run.  We’ll provide you with a collection of labelled code snippets. The code snippets could be big or small, clear or ambiguous.

Your training and test data are here. The format is simple: A text file containing HTML, with the HTML comprising PRE blocks that contain a code sample. The language of the same is given by the lang attribute of the PRE tag. Train and test your model on the data provided then write up your methodology and code in a short article and report your results.

The goal is to make the code look good so as a hint you may not need to be 100% accurate. If it looks like JavaScript and smells like JavaScript then sometimes C++ will be OK. How picky you are is up to you.

Your article should be posted in the Artificial Intelligence and Machine Learning section.

Difficulty: Intermediate


Birds of a Feather stick together.

If you’re into a particular technology you’re likely to read, vote or download content surrounding that technology. By looking at patterns of behviour you can make an educated guess about what one person may like based on how similar or disimilar their actions are to others.

We’ve generated some user data that revolves around a set of articles. Each article has one or more tags, and over the course of 30 days users are reading, upvoting or downvoting articles as well as downloading files assoicated with the articles.

Your job is to decide how important each action is. Is an upvote more significant than a file download? Is a downvote important? What about the tags associated with each article? The viewing habits? How does it all fit together?

Build a model that can input this data and make a decision on whether a given user would .be interested in a given article, and that, given a user, can suggest articles most likely to be of interest.

Difficulty: Intermediate to Advanced


There are hundreds of easy to read articles that provide basic examples of machine learning that you can adapt to these problems. Here are just a few:

These rules (and the CodeProject® Terms of Use and the CodeProject Contributors Agreement) govern the Machine Learning and Artificial Intelligence Challenge (the "Contest") and set out the terms and conditions between CodeProject and its affiliates ("CodeProject" or "us/we") and each participant ("participant", "or "you"). A submission to this Contest constitutes your acceptance of these Official Contest Rules (the "Rules").

1. How to Enter: CodeProject is offering the Contest and will award Prizes (as defined below) based on the results of judging all valid entries against the criteria established in these Rules.

The Contest begins on  5 February 2018 at 12AM and ends on 4 March 2018 at 11:59:59 PM US Eastern Daylight Time (“Contest Period”). CodeProject’s clock is the official time for the Contest. All entries must be submitted during this period in order to qualify.

To enter the Contest, write an article or articles that address 1 or more of the challenges presented by the Contest.and submit it to the Artificial Intelligence and Machine Learning section of before the end of the Contest Period. Participants must comply with the submission format provided by CodeProject on its website. Submissions must be in the English language.

No purchase is necessary to enter the Contest or to be eligible to win a Prize.

We are not responsible for lost, illegible, incomplete, mutilated or stolen entries; errors appearing within these Rules, in any Contest related advertisements or other materials; or other errors of any kind whether mechanical, human, electronic or otherwise. Entries that are late, illegible, incomplete, unreadable, damaged, delayed, lost, tampered with, incomprehensible, forged, mutilated, misdirected, inaccurate, unintelligible or otherwise not in compliance with these Rules will be disqualified. You must provide all of the requested information to submit a valid entry. Only those who live in jurisdictions in which this Contest is legal may enter.

Prizes may be withheld or awarded to another eligible registrant if these Rules are breached.

Prizes may not be exactly as shown. A reasonable US$ equivalent in lieu of the Prize may also be awarded at the sole discretion of CodeProject.

Entries shall be deemed to be submitted by the authorized account holder of the email address submitted at the time of entry unless clearly indicated otherwise. "Authorized account holder" is defined as the natural person who is assigned to an email address by an internet access provider, on-line service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning email addresses for the domain associated with the submitted email address.

2. Eligibility: This Contest is open to software development professionals & enthusiasts who are of the age of majority in their jurisdiction of residence. Residents of Quebec and of the following countries are ineligible to participate due to legal constraints: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria. All national and local laws and regulations of the participant’s country of residence apply. Residents of countries under U.S. embargo are not eligible to enter. Employees, officers and representatives (and members of their immediate families and those living in the same household of each) of CodeProject, its parents, subsidiaries and affiliated companies, advertising and promotion agencies, and any company involved in the design, execution, production of this Contest ("Contest entities") are ineligible. CodeProject reserves the right to verify participant eligibility at any time and all participants may be required to provide verification of eligibility. Void where prohibited. You must enroll or be enrolled as a member of to be eligible to win a Prize in this Contest.

3. Determination of winners:

Eligible entries will be judged by CodeProject judges at the end of the contest period. Prizes will be awarded based on how closely an entry adheres to the conditions of entry, including but not limited to:

  • how clear, pertinent, simple and enjoyable the article is;
  • how comprehensively and concisely the article solves the challenge or challenges;
  • how effectively the application demonstrates creativity, understanding of the concepts and available tools and services; and
  • the overall execution and presentation of the entry itself.

In addition, the votes and comments each submission receives on the CodeProject website will be taken into account. Judges decisions are final. You may withdraw your submission at any time by notifying CodeProject. Your right to win a Prize is terminated if a submission is withdrawn.

Winners will be notified by email following drawing and may also be announced in the Daily Build newsletter or other sections of We shall have no liability for any winner notification that is lost, intercepted or not received by the potential winner for any reason and we are not obligated to leave voice mail, answering machine or other message. Proof of response by a potential winner does not constitute proof of receipt by us.

All winners will be notified via email. If after seven (7) days of the second notification to the winner no acknowledgement or response is received, the Prize is forfeited, and CodeProject will select another winner.

Each winner acknowledges that, if and to the extent that CodeProject is legally obligated to provide a third party with information about any Prize claimed by a winner, CodeProject shall be entitled to do so.

4. Ownership and Publicity: CodeProject does not claim ownership of your submission to the Contest (please see the “Ownership” section in the CodeProject Contributors Agreement), but by submitting an entry, you grant CodeProject, its affiliated companies and necessary sub-licensees a worldwide, perpetual, royalty-free, irrevocable, non-exclusive, fully assignable and transferable right and license, to edit, adapt, translate, reformat your submission, to post your submission (e.g. publish, display, perform, digitally perform) anywhere on our Site, to do what CodeProject feels it needs to do to manage and update the Site, to make and maintain back-up and archival copies, and to make your submission available to End Users in accordance with these Rules, CodeProject’s Contributors Agreement, and the specific EULA that you select.

By participating in the Contest, you expressly allow CodeProject to use and publish, in any medium or format, your name, city and country of residence, voice, statements, video, photographs and other likenesses in connection with any promotion, advertising or publicity without further consideration or notice to you. Any participant’s personal information may be used by CodeProject in order to conduct the Contest. By participating in the Contest, the participant agrees to the use of the participant’s personal information in accordance with CodeProject’s privacy policy, which can be found at

5. Participant Warranties:

By submitting an entry to the Contest, you warrant that your submission:

  • is a new application and article or a new version of an application and article and has not been published previously;
  • does not contain any content that infringes on any third party rights, including Intellectual Property (IP) rights, and that you own or otherwise have all rights necessary to make your submission, including any and all IP rights;
  • does not disclose any information which would constitute a violation of any confidentiality obligation;
  • does not violate any agreement that you have with any third party; and
  • does not contain any viruses, worms, spyware, or other components or instructions that are malicious, deceptive, or designed to limit or harm the functionality of a computer or computer system.

6. Prizes:

  • One First Prize of US$750 for the 'recommended reads' challenge
  • Two First Prizes of US$500 for the 'spam filter' and 'language detection' challenges.
  • Three Runner Up Prizes of US$250 

The total value of all Prizes is US $2500. All applicable federal, state, and local tax laws apply. 

Substitution or transfer of Prizes is not allowed. In CodeProject’s sole discretion, it may award a substitute prize of equal or greater value. The winner accepts responsibility for all federal, state and local taxes and fees in connection with the Prizes. If you are a potential winner, we may require you to sign an Affidavit of Eligibility, Liability/Publicity Release and a W-9 tax form or W-8 BEN tax form within seven (7) business days of notification. In certain countries, such as Canada, a winner may be required to correctly answer a skill testing question before becoming eligible to claim a Prize.

Apart from any Prize that may be awarded as part of the Contest, no compensation (monetary or otherwise) will be paid for your Contest submission. CodeProject is not responsible for Contest entries not received due to lost, failed, delayed or interrupted connections or miscommunications, or other electronic malfunctions. CodeProject is not responsible for incorrect or inaccurate entry information, whether caused by you or any other persons or by any of the equipment or programming associated with or utilized in the Contest.

The Prize will be shipped to the winner’s residence using standard delivery. CodeProject is not responsible for a Prize if it is lost, stolen or damaged during or after shipping, and it will not be replaced by CodeProject.

7. Warranties and Disclaimers: Prizes come with the standard manufacture warranty only (if applicable), but Prizes are awarded “AS IS”. To the fullest extent allowable by law, CodeProject specifically disclaims any representations or warranties, express or implied, regarding the Contest or the Prizes including any implied warranty of merchantability or fitness for a particular purpose and implied warranties arising from course of dealing or course of performance.

8. Release of Liability, Issues of Law and Indemnity: By participating in the Contest, all participants release CodeProject, its affiliates, partners, subsidiaries, officers, directors, agents, employees and all entities associated with the development and execution of this promotion from any and all liability with respect to and in any way arising from participating in this promotion, acceptance or use of a Prize. CodeProject assumes no responsibility for incorrect or inaccurate capture of entry information, technical malfunctions, human or technical error, lost, delayed or garbled data or transmissions, omission, interruption, deletion, defect or failures of any telephone or computer line or network, computer equipment, software or any combination thereof. Entry materials/data that have been tampered with or altered are void. If for any reason, in the opinion of CodeProject in its sole discretion, the Contest is not capable of running as originally planned, or if the administration, security, fairness, integrity or the proper conduct of the Contest is corrupted or adversely affected, including by reason of infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures or any other causes beyond its control, CodeProject reserves its right to cancel, terminate, modify, amend, extend or suspend the Contest including cancelling any method of entry, and select a winner from previously received eligible entries. CodeProject reserves its right in its sole discretion to disqualify any individual it finds to be tampering with the entry process or the operation of the Contest or to be violating the letter or spirit of the Rules or is otherwise acting in a disruptive manner. CodeProject reserves its right to seek remedies and damages to the fullest extent of the law for any attempts to deliberately damage the Contest web site or to undermine the legitimate operation of this Contest. CodeProject shall not be held responsible for any errors or negligence that may arise or occur in connection with the Contest including any damage to an entrant's computer equipment, system, software or any combination thereof, as a result of their participation in this Contest or from downloading any material from the Contest website where applicable. All participants agree to fully indemnify and hold harmless CodeProject from any and all claims by third parties relating to the Contest without limitation.  

9. Generally: CodeProject may make changes to these Rules at any time without notice to you. Participating in the Contest or accepting a Prize will constitute acceptance of the revised rules. These Rules prevail in the event of any conflict or inconsistency with any other communications, including advertising or promotional materials.

All trade names, trademarks, registered trademarks, product names and company names or logos mentioned or displayed in connection with the Contest are the property of their respective owners and may not be used in any manner whatsoever without the express written consent of their respective owners.

If, for reasons beyond CodeProject’s control (including, but not limited to, tampering or computer virus infection), the Contest is not capable of running as originally planned, CodeProject, at its sole discretion reserves the right to cancel or modify the Contest, without liability or further notice. CodeProject will not be responsible for lost, late, misdirected, damaged, or illicit submissions, or for Internet, computer hardware and software, phone, and other technical errors, omissions malfunctions, and delays. Entries are void if they contain material typographical or other errors. All entrants agree to comply fully with each provision in these Rules. Any person attempting to defraud or in any way tamper with this Contest and any person who does not comply with these Rules, will be ineligible for any Prize(s) and may be prosecuted to the fullest extent of the law. For any feedback or questions regarding the Contest or the Prizes please contact


NewsTest data has been updated Pin
Chris Maunder13-Feb-18 16:23
cofounderChris Maunder13-Feb-18 16:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


GeneralNow Microsoft Azure published resources submitted as a part of my two articles are back to work and became fully operational over again . Pin
Arthur V. Ratz11-Mar-18 0:55
professionalArthur V. Ratz11-Mar-18 0:55 
General and are now available... Pin
Arthur V. Ratz7-Mar-18 3:57
professionalArthur V. Ratz7-Mar-18 3:57 
GeneralRe: and are now available... Pin
Chris Maunder9-Mar-18 15:14
cofounderChris Maunder9-Mar-18 15:14 
GeneralRe: and are now available... Pin
Arthur V. Ratz9-Mar-18 18:53
professionalArthur V. Ratz9-Mar-18 18:53 
GeneralRe: and are now available... Pin
Arthur V. Ratz11-Mar-18 0:52
professionalArthur V. Ratz11-Mar-18 0:52 
General is now back to work from maintainance Pin
Arthur V. Ratz25-Feb-18 6:16
professionalArthur V. Ratz25-Feb-18 6:16 
GeneralUser Behavior Data Pin
Scott Clayton24-Feb-18 10:03
Scott Clayton24-Feb-18 10:03 
GeneralRe: User Behavior Data Pin
Chris Maunder4-Mar-18 3:26
cofounderChris Maunder4-Mar-18 3:26 
GeneralRe: User Behavior Data Pin
Scott Clayton4-Mar-18 8:46
Scott Clayton4-Mar-18 8:46 
GeneralThe final revision of Naїve Bayesian Anti-Spam Filter Web Application has been finally deployed on Microsoft Azure... Pin
Arthur V. Ratz24-Feb-18 1:38
professionalArthur V. Ratz24-Feb-18 1:38 
QuestionBirds of a feather - test data? Pin
Omar Gameel Salem21-Feb-18 19:36
professionalOmar Gameel Salem21-Feb-18 19:36 
GeneralConflict of interest Pin
Uzi Granot17-Feb-18 3:32
Uzi Granot17-Feb-18 3:32 
GeneralRe: Conflict of interest Pin
Chris Maunder18-Feb-18 17:57
cofounderChris Maunder18-Feb-18 17:57 
GeneralLanguageTraining.txt Pin
Scott Clayton12-Feb-18 14:38
Scott Clayton12-Feb-18 14:38 
GeneralRe: LanguageTraining.txt Pin
Chris Maunder13-Feb-18 13:12
cofounderChris Maunder13-Feb-18 13:12 
GeneralRe: LanguageTraining.txt Pin
Scott Clayton14-Feb-18 14:02
Scott Clayton14-Feb-18 14:02 
GeneralBirds of a Feather: user actions -> simultaneous up and down votes Pin
jamessdixon9-Feb-18 11:02
jamessdixon9-Feb-18 11:02 
GeneralRe: Birds of a Feather: user actions -> simultaneous up and down votes Pin
Chris Maunder12-Feb-18 10:33
cofounderChris Maunder12-Feb-18 10:33 
GeneralBirds of a Feather: articles - duplicate tags Pin
jamessdixon9-Feb-18 8:22
jamessdixon9-Feb-18 8:22 
GeneralRe: Birds of a Feather: articles - duplicate tags Pin
Chris Maunder12-Feb-18 10:34
cofounderChris Maunder12-Feb-18 10:34 
GeneralLanguage training data is corrupted Pin
Tomaž Štih8-Feb-18 3:33
Tomaž Štih8-Feb-18 3:33 
GeneralRe: Language training data is corrupted Pin
Chris Maunder8-Feb-18 5:14
cofounderChris Maunder8-Feb-18 5:14 
GeneralQuestion Pin
Jon McKee5-Feb-18 19:43
professionalJon McKee5-Feb-18 19:43 
GeneralRe: Question Pin
Chris Maunder7-Feb-18 10:04
cofounderChris Maunder7-Feb-18 10:04 
GeneralRe: Question Pin
Jon McKee7-Feb-18 12:41
professionalJon McKee7-Feb-18 12:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

You must sign in to participate in this contest.
This contest has ended.
5 Feb - 5 Mar 2018