Schedule‎ > ‎


Project 3: Real or Fake News Detector

Fake, or hoax, news websites deliberately publish made-up stories as news, using social media to drive web traffic and amplify their effect. This is a form of dishonesty known as a scam or swindle, and has been a boon for people trying to make a quick profit. Profit for fake news sites is primarily driven by online advertising revenue made mostly through Facebook and Google. Both Google and Facebook have announced measures to ban web sites that show illegal or misleading content. Do NOT confuse fake news with opinionated analysis from sites made on the basis of their ideologies.  See references below for more information on these topics.

For this project you are to write a program to help identify fake (made up) news. The instructor is providing you with five (5) "news" samples from the internet for testing your program. Three (3) of the samples are fake news articles and two (2) are real news articles. You must decide which are fake and which are real and write your program to identify them correctly.

Project Specifications
  1. Write a program that scans a "news" article and decides if it is real or fake. The instructor will use the following articles for testing:
    1. creditlock.txt
    2. equifax.txt
    3. golf.txt
    4. nibiru.txt
    5. reporters.txt
  2. The name of the source code file for this program must be realfake.cpp and all your code must be in this file.

    Be careful of the spelling, including capitalization, as you will lose points for a misspelled name. Naming is important in programming.

  3. Your program must run from the command line using redirection of input as follows:
    ./realfake < input.txt

    Where input.txt is the news article file to test.

  4. Your program must print out a single word "Real" or "Fake" (without the quote marks) when run, depending on the article scanned, like this:
    ./realfake < input.txt
  5. Your program must correctly output the word "Fake" on three (3) articles and "Real" on two (2) articles based on the contents of the articles.
  6. After printing the appropriate word, exit the program. Do NOT loop and run again.
  7. Submit this project with the rest of the assignment.  Make sure you know which file is the correct working file.
  • Review lesson 6.2.5: Processing Text Input and choose a way to process text for your approach. Try processing one of the files with both looping techniques and see which one would be easier for you.
  • After viewing the output of both looping techniques, think of the if-statements you will need to find a unique word or line in each of the files. Ideally, make your detector extensible to similar "news" articles.
  • Your final program should have a single while-loop and several if-statements inside the loop.
  1. Snopes' Field Guide to Fake News Sites and Hoax Purveyors
  2. Facebook and Google move to kick fake news sites off their ad networks
  3. Google Advertising Policies -- Misrepresentation
  4. Facebook -- Mark Zuckerberg Post 11/18/2016
  5. News Feed FYI: Addressing Hoaxes and Fake News (Facebook)
  6. An Update On Information Operations On Facebook

Here are some resources to help you get started solving the problem:

These sources may or may not correctly list fake news sites. You must research and decide for yourself.

Extra Credit (3 pts)

The following are worth extra credit points.

  1. Display fake and real for the actual fake and real news sites. (1 point)
  2. Play the extra credit game: Lightbot 1. (2 points)
    1. Requires flash installed and does NOT work on Chrome.
    2. Complete the game through level 9
    3. Record the message shown at the beginning of level 10 in your Assn 5 Canvas Comment titled: Extra Credit.
    4. Please do not cheat. If you get stuck, just explain how far you got in the Canvas comment and record the message for the level you completed.
    5. If you go beyond level 9, make certain to still record the message for the beginning of level 10.

You must post a Canvas Comment in Assn 5 with the Extra Credit message to get credit for it!