This repository contains my work from the IN1910 course at the University of Oslo (UiO), focused on object-oriented programming (OOP) and scientific computing in Python. The course combines programming concepts, mathematical modeling, and numerical methods used in natural sciences.
Each project below was originally developed as part of the IN1910 — Object-Oriented Programming for Scientific Applications course at the University of Oslo. The full development history (commits, merges, authorship, and evolution) has been preserved using git filter-repo.
All projects are preserved with complete Git history from the original UiO repositories.
| Project | Description | Browse | Commit History |
|---|---|---|---|
| Project 0 | Numerical modeling basics | Files | Commits |
| Project 1 | Classical mechanics and ODE solvers | Files | Commits |
| Project 2 | Simulation and energy analysis | Files | Commits |
| Project 3 | Advanced OOP project with plotting and physics | Files | Commits |
Course name: Programming for Scientific Applications Code: IN1910 Institution: University of Oslo (UiO) Focus areas:
- Object-oriented programming (OOP) in Python
- Scientific problem-solving through programming
- Code structure, testing, and documentation
- Numerical computation and visualization
- Simulation and data analysis
After completing this course, I can:
- Design modular and reusable Python programs using classes, inheritance, and encapsulation
- Implement numerical algorithms for solving physical and mathematical problems
- Apply NumPy, Matplotlib, and object-oriented design patterns in scientific code
- Write maintainable and well-documented code for research and engineering contexts
- Integrate simulation results with analytical and visual components
This folder contains the three major course projects that demonstrate the practical application of programming in scientific contexts.
Each project includes a detailed report, source code, and results illustrating both theoretical understanding and practical programming skills.
- Language: Python 3
- Libraries: NumPy, Matplotlib, SciPy
- Testing: pytest
- Version control: Git + GitHub
- Documentation: docstrings and Markdown
- Object-Oriented Programming (OOP)
- Classes, methods, attributes, and inheritance
- Encapsulation and abstraction
- Numerical differentiation and integration
- Simulation of physical systems
- Random processes and Monte Carlo methods
- Visualization and scientific plotting
- Lectures/ # Notes during lectures and Live Coding tracing
- Projects/
- project1/
- project2/
- project3/
- README.md # This file
This repository serves as a demonstration of:
- My ability to combine programming and mathematics to solve scientific problems
- Clean, modular, and reproducible code practices in Python
- A foundation for future work in scientific computing, data analysis, and software development
Philip Elias Fleischer Bachelor’s student in Informatics: Programming and System Architecture University of Oslo (UiO)