Skip to content

Object Oriented Programming for Natural Sciences, features 4 projects

Notifications You must be signed in to change notification settings

philipfleischer/Object-oriented-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Object-oriented-Programming

IN1910 — Programming for Scientific Applications

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.

Project Histories

Projects (with full original history)

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 Overview

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

Learning Outcomes

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

Project Folder

Projects/

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.

Technologies and Tools

  • Language: Python 3
  • Libraries: NumPy, Matplotlib, SciPy
  • Testing: pytest
  • Version control: Git + GitHub
  • Documentation: docstrings and Markdown

Example Topics Covered

  • 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

Structure

  • Lectures/ # Notes during lectures and Live Coding tracing
  • Projects/
    • project1/
    • project2/
    • project3/
  • README.md # This file

Purpose

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

Author

Philip Elias Fleischer Bachelor’s student in Informatics: Programming and System Architecture University of Oslo (UiO)

About

Object Oriented Programming for Natural Sciences, features 4 projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published