r/learnpython • u/masterpookie • 1d ago
Looking for interesting Python project ideas for a university assignment (3-week deadline)
Hi everyone!
I'm a physics student and I have to complete a Python programming project for one of my university courses. I have approximately 3 weeks to work on it, and I'm looking for some interesting and original project ideas.
Here are the requirements the project must meet:
The code must be functional, readable and written in a Jupyter Notebook.
Proper documentation is required.
It must include data import or export, as well as data processing.
It must use programming structures such as classes and functions.
It must include at least one visualization (graphs, data representation, etc.).
It must implement at least two numerical methods.
I'm still a beginner in Python and don't have much programming experience yet. So I'm looking for something achievable within three weeks, without being overly complicated technically.
One idea I had was to build a movie recommendation system, but I'm open to pretty much anything, including projects unrelated to physics!
What kind of projects would you recommend that could meet these requirements? If you've worked on similar projects or have any examples, I'd love to hear about them!
5
u/patryk_builds 1d ago
I'd drop the movie recommender. the two numerical methods requirement is awkward to fit there, and you're a physics student, so use that.
Idea: a damped pendulum, simulated and compared with real data.
- Numerical methods: solve the motion with euler and with runge-kutta (rk4), same time step. that's your two, and comparing them is the interesting part, since euler slowly gains energy that isn't there
- Data import: film a real pendulum on your phone or grab a public dataset, load it from csv
- Processing: fit the damping coefficient so the simulation matches the measurement
- Classes: one Pendulum class holding the parameters, one function per solver
- Visualization: angle vs time for both solvers against the real data, plus the energy drift plot
It's small enough for three weeks and every requirement has an obvious place. if pendulums bore you, the same structure works for a projectile with air drag or a cooling cup of coffee.Start with euler on day one. it's about ten lines, and once that plot shows up the rest feels a lot less scary
1
u/magoilic 1d ago
Build something you would like to use for one of your hobbies. I play dnd so I created dnd tools ilic.cl/dm Movie rec system sounds cool, do you have the data tho? Nerd hobbies have thousands of fan made databases
1
u/Accomplished_Exam493 1d ago
Why not link up with an ESP32 module with sensors and use it to gather the data. E.g Weather station, Hydroponic monitor, house air quality/thermo/hydrostat, empirical physics experiment monitor.
1
u/ectomancer 1d ago
My first project, natural logarithm, took 3 months of domain research, so that takes too long.
I revisited natural logarithm, expecting to take 2 weeks as the research was already done, took 2 months plus extra time to refactor. I used binary logarithm and change of base formula, so that takes too long.
1st numerical method, prompt LLM for Python code, real natural logarithm using limits, 1 day.
2nd numerical method, using limit formula above, convert to complex natural logarithm, 1 day.
Real natural logarithm of complex modulus of input + arctan of imaginary part of input/real part of input.
Code a program to create input data, i.e. 0.5, 1, 1.5, 2, 2.5, 3, 3.5, ... and write to a file. Don't show this simple program.
Open the file for input to your natural logarithm, complex natural logarithm, math.log and cmath.log and plot them on a graph or graphs. Doesn't matter if your functions aren't as accurate as math.log.
1
u/baubleglue 1d ago
Find COVID statistics online, show how vacation changed hospitalization and death rates. You may need to use pandas and pyplotlib, should be doable in 3 weeks.
1
u/Zisan_algo 1d ago
Since you are a physics student and specifically need to implement at least two numerical methods alongside data import/export, classes, and visualization, a movie recommendation system might actually make it harder to naturally fit the "two numerical methods" requirement.
A much cleaner project that hits every single rubric requirement in under 3 weeks is a **Planetary Orbit or Projectile Simulator with Air Resistance**:
**Classes & Functions:** Create a `Body` or `Projectile` class (storing mass, position, velocity) and a `Simulator` class to run the time-steps.
**Two Numerical Methods:** Implement both **Euler's Method** and the **4th-Order Runge-Kutta (RK4) Method** to solve the differential equations of motion, then compare their accuracy and energy drift over time.
**Data Import/Export:** Import initial parameters (like planetary masses/velocities or atmospheric drag coefficients) from a CSV file, and export your simulated trajectory arrays back to a new CSV.
**Visualization:** Plot the 2D trajectories and a graph comparing the error/energy conservation between Euler and RK4 using `matplotlib` right inside your Jupyter Notebook.
If you want something unrelated to physics, an **Option Pricing or Portfolio Risk Analyzer** using historical stock CSV data works great too—you can implement **Monte Carlo Simulation** and the **Newton-Raphson Method** (to calculate implied volatility) as your two numerical methods.
1
u/MasterpieceNovel3619 1d ago
Choose a dataset on Kaggle the interests you. Look at what other people have done with it on the site (it all shows in Jupyter). Do something of your own design using the dataset or some other dataset.
1
u/acfot 1d ago
Honestly the one I'd actually want to do is use your own data instead of another Kaggle download, because the cleaning part is where most of the real work is anyway. I keep a little spreadsheet of my own YouTube Shorts stats, views, hook, length, that kind of thing, and trying to predict which ones do well from that would be a solid sklearn project and it's a dataset nobody else in your class will have. The weather pipeline idea someone mentioned is good too, but your own data means you actually care about the answer, which helps when you're three weeks in and sick of it. Not sure how big your data would need to be, but even a few hundred rows is enough to mess around with a simple model.
1
u/herocoding 1d ago
Being a physics student - think of something physical :-)
I have an app "phybox" on my mobile phone for several "measurements" using the mobile phone's sensor - like it's accelerometer&gyro. Do record data for some defined movements for "calibration", then do some more complex movements - and use Python and physical laws to reconstruct a 2D and/or 3D positions.
1
5
u/pachura3 1d ago
This is not really a "Python programming" project, but more of a "data analysis" project - especially that it has to be done in Jupyter Notebook. You cannot e.g. create a Tetris clone in Pygame.
So, the most important thing for you is to... obtain the data. Ideally, a relatively large amount of it. Then you can think what to do with it. Also, an important step in your pipeline should be cleaning the data - making sure it is normalized, getting rid of junk records, etc.
There's a lot of public/open datasets available - for instance on Kaggle. On on scientific research.
One idea would be trying to detect how many newspaper articles/blog entries/movie descriptions/research papers are nowadays (and historically) written using AI.