Skip to content

Instantly share code, notes, and snippets.

@numberwhun
Last active October 3, 2015 15:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save numberwhun/43dd3363bbca17c0c5e4 to your computer and use it in GitHub Desktop.
Save numberwhun/43dd3363bbca17c0c5e4 to your computer and use it in GitHub Desktop.
This list includes beginner, intermediate and advanced ideas for projects. Happy coding and learning!
- In the USA yo have the following currency options:
100 Dollars
50 Dollars
20 Dollars
10 Dollars
5 Dollars
1 Dollar ( the 2 Dollar bill is very rare, ignore it)
25 cents ( the 50 cent coin is rare, also ignore it)
10 cents
5 cents
1 cent
Let's say a customer has a charge of $161.13 and pays with two 100 Dollar bills. Write a Python program to figure out how to pay the customer his change with the least amount of currency items.
- Here's one that I actually wrote for home use cataloging several thousand pictures:
Write a program to scan a user-supplied directory for .jpg files. Then, output the list of files, sorted by date picture was taken, as an HTML file with hyperlinks to each pic.
Bonus points: make the scan recursive so that all subdirectories are scanned also.
Double Bonus points: make it possible to run your program a second time, supply a different directory, and add to your list of pictures. A couple of things about this one are non-trivial!
You will need a module to help you read the .jpeg metadata. See here:
http://www.emilas.com/jpeg/
or
http://pyexif.sourceforge.net/
- I have put together a dictionary of the Morse code:
morseDict = {
'A': '.-',
'B': '-...',
'C': '-.-.',
'D': '-..',
'E': '.',
'F': '..-.',
'G': '--.',
'H': '....',
'I': '..',
'J': '.---',
'K': '-.-',
'L': '.-..',
'M': '--',
'N': '-.',
'O': '---',
'P': '.--.',
'Q': '--.-',
'R': '.-.',
'S': '...',
'T': '-',
'U': '..-',
'V': '...-',
'W': '.--',
'X': '-..-',
'Y': '-.--',
'Z': '--..'
}
# test it
print morseDict
Write a Python program that takes a text string and converts it into a string of Morse code characters separated by a space.
If you have a PC with Windows OS, then you can sound off this string on the internal speaker:
# if you have a computer using Windows you can
# sound a morse code string off on the internal computer speaker
# using winsound.Beep(frequency-cps, duration-ms)
# you can experiment with tone frequency and duration
import winsound
import time
morseStr = "--.. ..- .-.. ..-" # ZULU
for c in morseStr:
print c
if c == '-':
winsound.Beep(800, 500)
elif c == '.':
winsound.Beep(800, 100)
else:
time.sleep(0.4) # rest between each letter
time.sleep(0.2) # rest between each dash/dot
(Research a way to do the sounds on Linux/Mac OSx)
A much more complicated project would be to catch Morse code (microphone?) and convert into an alphabetic string.
- Write a Python "Data Mining" program
- Write a Python program the applies Artificial Intelligence (AI)
- Create a program to encrypt/decrypt a Caesar cypher depending on offset
- Topic: Encryption
#1 Write a program that that encrypts a string based on a alphanumeric key input by the user (or a number for a step encrypt program).
#2 enhance your program in #1 so that is the encrypted output is different every time, but can still be decrypted with the key.
#3 Modify the program in #2 so that it can handle private/public keys.
#4Write a script that can generate private and public keys for use with #3
#5 Write a program that can look for patterns in and break simple encryptions. Test it on #1, #2 and #3 (but do not write it based on your knowledge of howw they work). Be sure to set timouts, ie., if your loops exceed a certain amount of runs, force to program to stop, instead of hanging.
In the above:
Think of an innovative way to use dictionaries in any/all.
the random module will help in #2. But using it incorrectly will yield an undesired result. A bit of thinking and planning would be required. Perhaps there is way way to do this without random. Can you think of it?
char() and ord() functions in python are useful.
Comment your code, and use meaningful variable names. You will soon find that your program will swell at a rapid rate and otherwise understanding will be difficult. It is also a good practise to employ regardless what what you program
- How about making a program that will get your weather forecast for tomorrow?
You can use modules such as urllib2 and things like that to get the source code of your favourite web weather forecaster and then scrape off all of the html tags to leave you with your forecast for the next few days.
- A program to go through MP3's and modify the id3 data.
- Assume you have filed all your code snippets into one directory. Write a Python program that searches this directory for keywords and brings up the names of the files that contain these keywords.
- Create a password generator.
- I don't know if this has been said but a good one may be a bit hard is creating a Personal Assistant.
- Write a Python program that checks a given directory for any file changes over a given period.
- Create an example of a nested list comprehension
- Implement a custom importer in conformance with PEP 302 utilizing code from the "importlib" and "imp" modules. This importer can emulate Python import functionality, or you can alter it to suit your desired behavior. For instance, implement an importer that returns a copy of a module instead of modules stored in "sys.modules", or implement an importer that can import from archive formats other than zip files.
- Don't waste time writing and editor or an IDE! Don't reinvent the wheel! Go to the wikipedia list of algorithms(http://en.wikipedia.org/wiki/List_of_algorithms), which points to virtually hundreds or thousands of clever algorithms, and implement a few of them in python.
- Unique ID (UID) Management System Project
- Authentication and Adaptive Security for DNS System
- Agent Based Blocking and Response, Intrusion Detection using Signature
- Sockets Programming in Python –Building a Python Chat Server
- Bug Tracking System
Some links:
http://studentsprojectclub.com/computer-science-projects/
http://studentsprojectclub.com/it-projects/
- Improving RFID System to Read the Tags Efficiently RFID Security
- Library Management System
- Automated fault tracking system: The main objective of a bug-tracking solution is to track every identified issue so that defects that affect customer satisfaction or business financial success or company reputation can be fixed in a timely manner.
(me) - In response to the previous idea, an Agile style bug tracking/story system with a plethora of story types. Including types that can handle break-fix's (ie: Things that don't need to wait for sprints).
- Password Recovery Tool
- Fetch Current Weather – Get the current weather for a given zip/postal code.
- Country from IP Lookup – Enter an IP address and find the country that IP is registered in.
- Whois Search Tool – Enter an IP or host address and have it look it up through whois and return the results to you.
- Zip / Postal Code Lookup – Enter a zip or postal code and have it return which city/cities that are in that zip code.
- Library Catalog – Create a book class with a title, page count, ISBN and whether or not it is checked out or not. Manage a collection of various books and allow the user to check out books or return books. For added complexity generate a report of those books overdue and any fees. Also allow users to put books on reserve.
- Product Inventory Project – Create an application which manages an inventory of products. Create a product class which has a price, id, and quantity on hand. Then create an inventory class which keeps track of various products and can sum up the inventory value.
- Password Safe – A program which keeps track of passwords for sites or applications and encrypts them with a key so that no one can read them.
- Mp3 Tagger – Modify and add ID3v1 tags to MP3 files. See if you can also add in the album art into the MP3 file’s header as well as other ID3v2 tags.
- Additional: Maybe have it read an entire directory of mp3 files and go through them 1 by 1, allowing you to edit the information for each file and save before moving on to the next one.
- RPG Character Stat Creator – Make a program which will randomly create a character’s stats based on several rules set forth by the user. Have it generate a class, gender, strength/magic/dexterity points, and extra abilities or trades. Have it save it to a file which can then be printed out by a dungeon master.
- Python code to take a csv file and import it into:
- a mysql database
- a mongodb database
- ability to add other db support (postgresql, etc)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment