We have already worked on large group projects and project management. The ICS4U CA is a small individual project. The focus of the project is to solve a unique problem that requires the storage of data, and the return information to the user. You are free to choose the project's complexity. Be creative. Think 'pet project' ... some thing small, yet immediately useful to you. Talk to me before you use external Python Modules.
You will be given 10 days to:
- propose the idea
- have the idea approved by me
- plan your project
- code your application
- document your application
- Be Object Oriented if necessary. Take a look at this Python-centric example Why is Object-Oriented Programming Useful? (With a Role Playing Game Example) from Invent with Python.
- Use data structures appropriately: use arrays (1D and 2D where appropriate). Feel free to use Lists, Dictionaries and Tuples.
- Will read and write to a file
- Be able to search and sort data. I have links to data sets at the bottom of this page.
- If you make a data set, then you will not have above level 4- (KNOWLEDGE) consideration.
- If you use a published data set, then you are eligible for above level 4- (KNOWLEDGE).
- If you do not use a published data set, please include a data set. For example, you write a Grocery List manager, you have to include a grocery list as an input file so that I don't have to populate the data set.
- For above level 4- (THINKING) consideration: use recursion where appropriate OR use an external Python module
- Make sure you understand the submission checklist and the sample run (APPLICATION)
- Documentation (COMMUNICATION)
The rubric is located at the bottom of this page.
- A zip archive names Lastname_CA. zip containing:
- source code
- documentation
- your external Python Module (if you choose that option)
- 3 Levels of documentation
- File naming convention:
- Lastname_CA.py (This is the python file you want me to run)
- Lastame_CA_README.txt
- Lastname_CA_AdditionalFile.py (If you are using OOP and spread your classes out)
- Lastname_CA_INPUTFILE.txt (Where your raw data is stored)
- Lastname_CA_OUTPUTFILE.txt (Where your information is stored)
- If you choose an external Python module, you need to include it as I will not have it installed.
- TEST your code by making sure that you UNINSTALL THE LOCAL COPY OF THE MODULE(S) YOU WANT TO USE. Then, follow the steps outlined here, and run your code. This way you know that your project will use the same external module that you are sending me.
- Expect the user to start your program, read the help, open and view the Lastname_CA_INPUTFILE.txt FROM WITHIN YOUR PROGRAM.
- Expect that the user will run your program with the data set you have provided in Lastname_CA_INPUTFILE.txt.
- Expect that the user will open and view the Lastname_CA_OUTPUTFILE.txt FROM WITHIN YOUR PROGRAM.
- Expect that the user modify your data set FROM WITHIN YOUR PROGRAM and then repeat steps 7(run) & 8 (view).
You have a 'Grocery List manager':
- From IDLE, I will only run Lastname_CA.py
- make sure you supply a grocery list named Lastname_CA_INPUTFILE.txt.
- I will view this file from your program.
- I will run your searching and sorting features of your program.
- I will then view the resulting Lastname_CA_OUTPUTFILE.txt from your program.
- I will then make changes to your grocery list (by adding and removing data) from within your program.
- I will then run it again, and check the Lastname_CA_OUTPUTFILE.txt.
- Inventory
- Games
- Movies
- Grocery List
- Invoice
- Parts
- Game Cards
- Library of Items for a class
- Managing
- Marks
- Lockers
- Passwords
- Laundry
- Contacts
- Shift Scheduling
- Workout Routines
- Recipes
- Television Show episodes
- File / Project Maintainer
- Sleep Schedule
- Finance
- Team or Club members
- Goals
- Party
- Video Game Player Stats
- Video Game Economy Stats
- RPG character builder
- Natural Language
- API
- searching YouTube for titles or genre
- Imgur picture desktop
- Flickr Image uploader
- Getting Data from a Website
- Video game player stats
- Geocache data
- Song Lyrics
- High school athlete stats
- Quote finder
- Recipes
- RPG character builder
- Drawing Charts
- Betting data and visualizing the results
- Personal Finance charts
- Image Manipulation
- Email
- Sending reminders or other notes via email.
Using External Modules When You Can't Install Them Locally
The subsequent section, External Module vs Recursion, was written because of the way extra libraries are added to the school computers.
Alden D. was instrumental in altering the 'modules installed at school' portion of the CA.
Here is a very simple way for you to use an external module without having to install it.
This example uses the classic PrettyTable module for Python.
- You need to download the module you want to use but can't install from PyPI.org.
- Extract the archive and move that directory to the same directory you are working in.
- Renamed the directory containing the local module from prettytable-0.7.2 to prettytableLOCAL
- In your code, import the module that you want to use but can't install
from prettytableLOCAL.prettytable import PrettyTable
x = PrettyTable()
x.field_names = ['Length', 'Width', 'Area']
x.add_row([2, 3, 6])
print(x)
Here is Alden's video tutorial https://youtu.be/8yaKsGGOm3I if you want to see that in action.
External Module vs Recursion
Because you can choose whether or not your problem 'deserves' recursion, you may want to use an external module. I must approve of your external module. Please note that the module you choose cannot be installed at school. You will still need to demonstrate that your project works.
Demonstrating the Project
- Record a screen cast (OBS was used by previous students)
- Record a screen cast (VLC comes to mind)
- Bring in a laptop with the appropriate libraries installed.
- Don't install an external module.
What external modules are installed at school?
easyGUI - Not a choice for the ICS4U CA
pygame - Not a choice for the ICS4U CA
guiZero
pillow - The friendly PIL fork
NumPy - NumPy is the fundamental package for scientific computing with Python.
wxPython - A blending of the wxWidgets C++ class library with the Python programming language.
What is installed at home or at school?
From the interpreter, type this command and be patient:
Still looking for external modules? Here are some interesting resources:
Where can I find a data set for this project?
If your project needs data to search through....
Are you a visual person? Are you into BIG DATA?
Visualizing Data with Processing - Hello World! Processing on Vimeo
Visualizing Data with D3.js
Visualizing Data with Project Jupyter . Read about Economist Paul Romer, a co-winner of the 2018 Nobel Prize in economics.
Big Data contest for high school students - HIGH SCHOOL BIG DATA CHALLENGE from STEM Fellowship.org
Maybe you need Inspiration?
How to Extract Wikipedia Data Using Python - https://hackernoon.com/how-to-extract-wikipedia-data-using-python-l34l32wo