My name is Daniel Steeneveldt. I'm currently in the final year of my computational science bachelor's degree at the University of Oslo. On this page, you can view some of the stuff I've been up to there.
A project-based course at the University of Oslo, taught by Morten Hjorth-Jensen in autumn 2023.
The course encompasses vital algorithms and methods for data analysis and machine learning. We were introduced to fundamental research problems and practiced communicating scientific findings. All projects were Python-based and primarily coded from scratch, utilizing libraries such as NumPy and later JAX/jaxlib for automatic differentiation and efficient JIT compilation. We also benchmarked our methods against popular ML libraries like scikit-learn and TensorFlow.
The following are three projects I completed in collaboration with August Femtehjell and Philip Hoel:
- Linear Regression and Resampling Methods: Applied to Franke's function and topographical data, including OLS, Ridge, and Lasso regression complemented with bootstrap and k-fold cross-validation techniques.
- Classification and Regression: We performed regression on Franke's function using neural networks and classified benign and malignant tumors through logistic regression and neural networks.
- Numerical Solutions to the Heat Equation: We examined two numerical approaches to solve the one-dimensional heat equation, specifically the forward Euler method and Physics-Informed Neural Networks (PINNs).
A project-based course at the University of Oslo, thaught by Ingeborg Gjerde, Miroslav Kuchta and Min Ragan-Kelley autumn 2022.
In this Python-focused course, I tackled three key projects. First, I developed a package for image filter applications, learning about package setup with .toml files and code optimization using Numba and line profilers. Next, I extracted NBA player stats via web scraping, gaining skills in urllib, BeautifulSoup, regex, and asyncio for efficient data retrieval. Finally, I built a simple FastAPI website showcasing Norwegian electricity prices and usage costs, documented with Sphinx, which blended backend coding with user-friendly data presentation.
The course focused on enhancing computational code performance using C and involved scientific calculations with iterative methods. It covered details about machine hardware, such as memory storage and cache efficiency, and applied strategies like loop-unrolling for optimizing code. Later, we explored parallel optimization with OpenMP and MPI, emphasizing thread communication essential for effective parallel programming.

