Enhance your skills for scientific computing
Increase your productivity
Choose right tool for right task
Reduce time debugging
Improve reproducibility
Help you to write more efficient code, so you can:
Build intuition more rapidly
Analyze larger datasets ("Big Data")
Increase resolution of simulations
Include more complex physics
Perform more analyses/simualtions to explore sensitivity to parameters/assumptions
Increase impact of your software
Software Development Practices
Writing efficient serial code
Parallelizing code efficiently
Common programming paterns
Version control
Writing Tests
Continuous Integration
Debugging
Documentation/Literate Programming
Coding standards
Reviewing code
Reproducibility
Workflow
Processor architectures
Memory hierarchy
Networking
Programming languages
Choosing algorithms
Benchmarking
Profiling
Compiler optimizations
Optimizing
Shared-memory (e.g., one workstation)
Distributed-memory (e.g., cluster)
Accelerators
GPUs
TPUs (volunteers?)
Cloud
Increase technical knowledge
Readings, online lessons & class discussion
Practice fundamentals on a small scale
Lab/homework exercises
Make lots of mistakes quickly & learn from them
Make good habits routine
Transfer skills into real work environment
Class project
Apply new skills to your research
Build deeper expertise in topics most relevant to you
Share what you learn with the class
Textbooks
Writing Scientific Software: A Guide to Good Style
ThinkJulia: How to Think like a Computer Scientist
Introduction to High Performance Computing for Scientists and Engineers (definitely optional)
Online PDFs
Online tutorials
Recordings (will try, no guaranty)
Students are welcome/encouraged to wear masks, but are not required to mask at this time. (Policy may change based on government/university guidance.)
Please err on the side of caution:
If not feeling well, please stay home. (You can still earn full credit.)
If have reason to believe may have been exposed recently, please stay home or at least wear a high-quality, well-fitting mask.
If engage in risky activities outside of class, please consider taking precautions to mitigate risk.
I'll be wearing a mask in class.
I'll send announcement via Canvas if any classes need to move online
Let's learn from each other
Introductions
Name (& pronouns if you like)
Department (if not Astro)
Year of your program
What skill you hope to strengthen through this course