Disclaimer: this work is not finalized and is still in development.
This will be a seminar-style elective course whose base curriculum meets once a week and is one credit.
This course is designed to introduce students to what it's like to do computational research as a career, day-after-day. Most courses focus on the technical aspects of program development without introducing students to what their day-to-day is actually going to look like. This course serves as an overview an precursor to what their days would look like if they choose to do computational research.
2 Programming courses
Entire Calculus Suite
Preferred:
Introductory Physics Suite
At the end of this course, students shall:
Understand intuitively what it's like to do computational research
Be able to read and analyze poorly documented (& well documented) code
Understand the overall set-up and flow of common open-source codebases
Differentiate heavily modular programming versus monolithic programming styles
Determine whether they would like to do computational research in the future
The first iteration will most likely use the code xpdp1 through the PTSG code suite. Future iterations can branch into other PTSG codes or additional open-source codebases.
Week 1:
Introduction to the Course
Set-up VirtualBox and download the PTSG virtual machine
Assignment:
Read original paper
Explain what xpdp1 does (due Week 2)
Week 2:
Discuss overarching structure of xpdp1 and the number of subroutines and different files
Assignment:
Go over function 1 (TBD) and add comments
Due week 3
Week 3:
Discuss function 1
Assignment:
Go over function 2 and add comments
Due week 4
Week 4-11:
Repeat pattern
Other weeks can be filled or cancelled as necessary.
Relevant, published journal articles will be provided in supplement to going over certain functions.
All 1-credit work
Final Project:
Identify a flaw/gap in the codebase and propose a function to address it
Submit the solution as a report that address why and how
All 2-credit work including final project
Meet an additional time per week that goes over additional papers of other open-sourced commonly used codebases.
If the students are interested in continuing computational research, they can enact the final project proposal as part of my research group after the semester.