Text
-
RSS Feed Creator
Difficulty: Intermediate
A program which can read in text from other sources and put it in RSS or Atom news format for syndication.
-
Morse Code Maker
Difficulty: Intermediate
Make a program which takes in a string from the user and then outputs that as a string of Morse Code. If you are unfamiliar with Morse Code, you can find it on Wikipedia.
-
Guestbook / Jounal
Difficulty: Beginner
Develop an application where the user can keep track of journal entries or create a public guestbook where multiple people can write in it to say “there were here”. This application lends itself perfectly for online sites but could certainly be done as a stand-alone application. It is also possible that this guestbook / journal could reside on a network and people can access it from multiple computers. The program should keep track of the date and time of a post, allow the user to browse through various days, edit/delete offensive posts or queue posts before showing publicly.
-
Nes Ticker and Game Scores
Difficulty: Intermediate
Create an application which links to major sporting web sites (or web services) and pulls down current news headlines and game scores then scrolls them across the desktop or web site.
-
Random Gift Suggestions
Difficulty: Intermediate
Make a program which asks the user to input people’s names and the various gift ideas they would eventually like to get for them. Ask the user to also input various important dates related to the people they input (like an anniversary, birthday, Christmas etc). When a given date rolls around, have the program remind the user of the date and show them the gift list they have created for that person.
-
Text to HTML Generator
Difficulty: Intermediate
Come up with a simple program that will allow a user to enter in various bits of text data. Have it then generate the HTML equivalent or create a HTML page based on the data. The idea here is to give the user the option of writing simple text data and it would generate the code afterward. For instance, if the user enters in a title and a few paragraphs, the program would generate the necessary <h1>, <p>, , bulleting tags needed to format that text on the web.
-
Pig Latin
Difficulty: Expert
Pig Latin is a game of alterations played on the English language game. To create the pig latin form of a word the inital consonant sound is transposed to the end of the word and an ‘ay’ is affixed. Example: “banana” would yield ‘ananabay’. Make a program that converts a word or a sentence to Pig Latin. For added difficulty, if users input only numbers notify them of a translation error.
-
Rovarspraket
Difficulty: Intermediate
Rovarspraket which means “Robber’s language” in Swedish is not very complicated. You take an ordinary word and replace the consonants with the consonant doubled with an ‘o’ between them. For example ‘b’ becomes ‘bob’, m becomes ‘mom’. Vowels are left intact. Make a program that translates any length of string into Rovarspraket. For added difficulty, make it able to translate to and from Rovarspraket.
-
Disemvoweler
Difficulty: Intermediate
Make a program that removes every vowel and whitespace found in a string. It should output the resulting disemvoweled string with the removed vowels concatenated to the end of it. For example ‘Hello world’ outputs ‘hllwrld eoo’.
-
In Order
Difficulty: Intermediate
Make a program that notifies a user if an entered word is in alphabetical order or not. For example, ‘almost’ would output ‘almost - in order’, ‘baton’ would output ‘baton - not in order’, ‘biopsy billowy chef’ would output ‘biopsy - in order billowy - in order chef - not in order’.
-
Typoglycemia
Difficulty: Intermediate
Make a program that accepts a string and outputs the typoglycemic version of it. Typoglycemia is the mind’s ability to decipher a mispelled word if the first and last letters of the word are correct. For example, an input of ‘I deciphered a mispelled word’ yields ‘I dceipeherd a msiepeelld wrod’.
-
Regex Query Tool
Difficulty: Intermediate
Create a tool that allows the user to specify a string and then a regular expression to match against it. It will then return all matches it finds as output. This can be done within a form where then each match can be highlighted in the string itself. This will help developers who want to know, on the fly, if a string can be matched by a given regular expression.
-
Fizz Buzz
Difficulty: Beginner
Develop a program that prints the numbers from 1 to 100. For multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
-
Reverse a String
Difficulty: Beginner
Develop a program that has the user enter a string. Your program should reverse the string and print it out.
-
Count Volwels
Difficulty: Beginner
Develop a program that has the user enter a string. Your program counts the number of vowels in the text and prints it out. For added complexity, have it report a sum of each vowel found and its position/index in the string.
-
Check if Palindrome
Difficulty: Beginner
Develop a program that checks if a string entered by a user is a palindrome. A palindrome is a word that reads the same forwards as backwards. An example is “racecar” or “madam”.
-
Count Words in a String
Difficulty: Beginner
Develop a program that counts the number of individual words in a string. For added complexity, try to see if you can find the number of paragraphs in it too.
-
Text Editor
Difficulty: Expert
Develop a Notepad style application that can open, edit, and save text documents. For added complexity, add syntax highlighting, find and replace, text formatting etc.
-
CD Key Generator
Difficulty: Intermediate
Develop a program which generates keys for an application that you may put on a CD. A great example would be the keys you use for installation of a major software product from companies like Microsoft or Adobe. Have the user specify the length of keys and the types of characters they can use in the key (only letters, letters & numbers or just numbers, any special characters etc). Your program will then generate a random key value that can also be verified. For added complexity, create the mechanism for validating the generated key.
-
Stock Tracker
Difficulty: Intermediate
Develop a program which can go online and check the current value of stocks for a list of symbols entered by the user. The user can set how often the stocks are checked and the program should show green up and red down arrows to show which direction the stock value has moved.
-
Post it Notes
Difficulty: Intermediate
A program where you can add text reminders and post them. You can have the program also add popup reminders.
-
Horoscope Teller
Difficulty: Intermediate
Develop a program which allows the user to specify their birthday, and based on that information along with today’s date, tell them their horoscope. This could be generated from a list of predefined horoscopes or pulled from a web site service.
-
Wandering Fingers
Difficulty: Intermediate
Software like Swype and SwiftKey lets smartphone users enter text by dragging their finger over the on-screen keyboard, rather than tapping on each letter. You’ll be given a string of characters representing the letters the user has dragged their finger over. For example, if the user wants “rest”, the string of input characters might be “resdft” or “resert”. Given the following input strings, find all possible output words 5 characters or longer from:
- qwertyuytresdftyuioknn
- gijakjthoijerjidsdfnokg
Your program should find all possible words (5+ characters) that can be derived from the strings supplied. Use http://norvig.com/ngrams/enable1.txt as your search dictionary. The order of the output words doesn’t matter.
-
Helf the String
Difficulty: Beginner
Make a program that prompts the user to enter a string. If the string’s length is an even number, output exactly half of it. If it is odd, notify the user that the string is invalid.
Submitted by Ayushman Thakur (Abt)
-
MD5 Hash Generator
Difficulty: Intermediate
Make an MD5 hash code generator for strings and files. MD5 is a widely used hash function algorithm that produces a 128 bit hash value.
Submitted by JoFo
-
Caesar’s cipher
Difficulty: Intermediate
The user first enters a number to be used as the shift parameter. The shift parameter is the key to the cipher and would be used for encrypting and decrypting text. During encryption, shifting is done to the left of the alphabets till the shift parameter matches the number of shifts done. For decryption, reverse the above process.
For example with a shift parameter of 3: Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cipher: XYZABCDEFGHIJKLMNOPQRSTUVW
During decryption: Plaintext: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG Ciphertext: QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD
Submitted by Neo
-
Calculator
Difficulty: Intermediate
Your program will accept a mathematical expression as a string, parse it and ouput the answer of the expression.
For example, “2*3+2-(4+5)” will output -1. For added complexity, add the ability to calculate expressions with scientific terms like cos, sin, tan, log, mod, sqr etc.
Submitted by David
-
Child Name Generator
Difficulty: Expert
Create a program that generates a name based on a query asked by the user. For example, the user could enter an alphabet like ‘A’, an origin like ‘Spain’, ‘Egypt’, profession like ‘Scientist’, or theme like ‘Flower’ and your program should output names that match the query like [Alisha, Abigail …], [Alejandro, Miguel …], [Seth, Osiris …], [Lily, Rose …] respectively.
For added complexity, add sorting by parameters like (Gender, Popularity etc.) Also, provide meanings for each name at the request of the user.
Submitted by James Blackburn
-
Spelling with Chemistry
Difficulty: Intermediate
The IUPAC Periodic Table of the Elements is one of the most recognizable features of modern chemistry - the organization of all known chemical elements along with some of their most fundamental properties, together with their names and symbols. Today we’re going to use that as we spell some words.
IMPORTANT: Read this document before proceeding. It contains information that you’d need to implement this idea. https://docs.google.com/document/d/1UDyXDY5M1L36dAdqyaQwqAzQRl1is_okAajM8r7scaU/edit?usp=sharing
The user enters a list of words, one per line, write a program that tries to spell the word with chemistry. For example, ‘genius’ should have your program output ‘GeNiUS (germanium nickel uranium sulfur)’. For added complexity, output if the word cannot be spelt with chemistry.
-
Voodlewoodlel
Difficulty: Beginner
Boodleb wanted to see how his friend’s name would look if he changed every vowel to “oodle”. But he has no idea what vowels are, or how to change them. Help him realize his life’s goal. The user inputs n lines, with one name in each line. Your program should print out the voodlewoodlel version of each name.
Example:
Peeves Sinistra
outputs
Poodleoodlevoodles Soodlenoodlestroodle
-
Scooby Doo
Difficulty: Intermediate
In the popular kids show “Scooby-Doo”, the main character has a speech impediment that makes him replace all consonants at the start of a word until it runs into a vowel with an “r”. For example, the word “scooby” would become “rooby”.
Write a program that “Scooby doos” any word or sentence a user inputs. You can choose to make the letter ‘Y’ either a consonant or a vowel.
-
Password Generator
Difficulty: Intermediate
Create a program that allows a user to enter a password name eg: “Facebook Account Password” and length eg: ‘24’. Your program should then proceed to generate a strong password. This strong password should be generated by concatenating random characters, words and numbers in lower or uppercase. The length of the generated password should match the length the user provided.
For added complexity, provide a list that shows all the previously generated passwords and their names. Also allow a user to regenerate a new for existing use. For example, if ‘Facebook Account Password’ was previously ‘p@ssw#rc/’ and the user clicks Regenerate, generate a new password for ‘Facebook Account Password’. Add the ability to save the password as a file that is encrypted using a master password that the user provides.
Submitted by Andrew J.