Useful Links
Physics
Applied and Interdisciplinary Physics
Scientific Computing
1. Introduction to Scientific Computing
2. Mathematical Foundations
3. Foundational Computational Tools and Concepts
4. Core Numerical Methods
5. Modeling and Simulation in Physics
6. High-Performance Computing
7. Data Analysis and Visualization for Scientific Computing
8. Advanced Topics and Applications
9. Professional Development and Career Aspects
Foundational Computational Tools and Concepts
Computer Systems Fundamentals
Computer Architecture Overview
Operating Systems Basics
File Systems and Storage
Process and Memory Management
The Command-Line Environment
Unix/Linux Shell Basics
Shell Types
Command Syntax and Structure
File System Navigation
Directory Structure
File Manipulation Commands
Permissions and Ownership
Text Processing Tools
Regular Expressions
Scripting with Shell
Writing Shell Scripts
Variables and Control Flow
Automating Tasks
Programming Languages for Scientific Computing
Python
Core Syntax and Data Structures
Variables and Types
Control Structures
Functions and Modules
Object-Oriented Programming
Exception Handling
File I/O Operations
Scientific Libraries
NumPy
Array Operations
Broadcasting
Linear Algebra Functions
SciPy
Optimization
Integration
Signal Processing
Statistics
Matplotlib
Plotting Basics
Customizing Plots
3D Plotting
Pandas
Data Structures
Data Manipulation
Data Analysis
Compiled Languages
C++
Syntax and Data Types
Memory Management
Pointers and References
Object-Oriented Features
Standard Template Library
Performance Considerations
Fortran
Syntax and Structure
Array Operations
Use in Legacy Scientific Codes
Modern Fortran Features
Just-In-Time Compilation
Numba
Accelerating Python Code
Supported Data Types and Functions
GPU Programming with Numba
Julia
Language Features
Performance Characteristics
Package Ecosystem
Software Development Practices
Version Control with Git
Repositories and Commits
Branching and Merging
Collaboration Workflows
Remote Repositories
Conflict Resolution
Debugging Techniques and Tools
Print Debugging
Interactive Debuggers
Profiling Tools
Memory Debugging
Testing and Validation
Unit Testing
Integration Testing
Test-Driven Development
Continuous Integration
Code Documentation and Style
Writing Docstrings and Comments
Code Formatting Standards
Linting and Static Analysis
API Documentation
Understanding Computer Hardware
CPU Architecture
Instruction Set Architecture
Multicore Processors
Pipeline and Superscalar Execution
Memory Hierarchy
Cache Levels
RAM and Virtual Memory
Data Locality and Access Patterns
Memory Bandwidth and Latency
Floating-Point Arithmetic
IEEE 754 Standard
Precision and Rounding
Common Pitfalls
Numerical Stability Issues
Introduction to Parallel Architectures
CPU vs GPU
SIMD and MIMD Architectures
Vector Processing Units
Previous
2. Mathematical Foundations
Go to top
Next
4. Core Numerical Methods