This is the course website CSCI P-14110
|
|
This course is an introduction to programming methods as they pertain to numerical solutions to the astrophysics problem of motion under the influence of multiple gravitating bodies and the visualization of this information. The increasing prevalence of massive data sets and falling computational barriers have rendered computational modeling and data visualization necessary in most of the contemporary sciences. With this in mind, this course prepares students to select and properly undertake commonly encountered modeling and visualizing tasks. The course first teaches relevant concepts from programming using hands-on activities. Students then apply their new programming skills to guided problems of orbital motions of multiple planetary systems (like that around our Sun and other stars) and end the course with both two and three dimensional interactive movies of their datasets.
Because there are many ways to approach a problem, there are thus many ways to learn effective problem solving techniques in a particular field. With this in mind, we will be cultivating a “growth mindset” in this class with predominantly inquiry based activities - in other words, we will spend a little bit of time talking about science but a lot more time actually doing science because this is how we will improve our skills.
A good working knowledge of geometry, trigonometry, and algebra. Students must bring a full-sized laptop computer (not a netbook) to each class meeting. No previous programming experience is required.
Days will be split roughly into two parts, with the first spent on astrophysical or data visualization concepts and the second spent on programming with these concepts.
Below is a draft schedule - subject to slight changes depending on class pace/interests.
Day | Topics |
---|---|
Day 1 | Intro to class Intro to gravity Intro to programming |
Day 2 | More on gravity The 2 body problem More on intro to programming |
Day 3 | Compare 2 body analytically and numerically |
Day 4 | The Multi-body problem in 2D - planetary simulations Different numerical solvers |
Day 5 | The Multi-body problem in 3D - planetary and galactic simulations |
Day 6 | What is sci/data viz? Lying with data. Simple 2D movies, data manipulation with Pandas, interactivity |
Day 7 | Data organization, filtering more interactivity, info-viz (grammar-of-graphics, bqplot, linked data views if time) |
Day 8 | Representations of data, Graphical concepts 3D plotting in Python & widgets Optional: deploying to the web |
Day 9 | 3D grapchics concepts Online interactive 3D geometry with Sketchfab |
Day 10 | Types of viz (know your audience!) Where to go from here, finalize projects and Viz party! |
Students will demonstrate an understanding of computational physics as it relates to calculating the orbits planets around stars and/or motion of stars in galaxies and visualizing these orbits with a variety of methods. By the end of the course, students will have a basic understanding of how objects move under the force of gravity and basic concepts behind data visualization. In particular, each student will be able to:
There is no textbook for this course. All course materials will be posted to the GitHub repository at https://github.com/jnaiman/csci-p-14110_su2019.
As the course progresses, a list of recommended readings will be generated for each class.
Dr. Jill Naiman’s background is in theoretical and computational astrophysics with a current research emphasis on scientific data visualization. She is currently a Visiting Scholar at the Advanced Visualization Lab at the National Center for Supercomputing Applications. She is currently involved in projects related to increasing access to industry-standard special effects software for scientists - more info can be found here and here. Information about her astrophysical research and outreach efforts can be found here.
Leaders are expected to clearly articulate issues and problems and how analytical tools can help. The way we foster this in the course is that you must participate in the classroom discussion. You are not required to “speak up” during every class session, but you do need to attend and contribute to the class and/or forum discussion over the semester.
Leaders are also expected to foster productive environments for those around them. Those in this class come from a variety of backgrounds and comfort levels with the material and programming - it is expected that all students (and instructor!) will remain cognizant of this fact at all times and any demeaning language or behavior will not be tolerated.
Please review and reflect on the academic integrity policy of Harvard Summer School, https://www.summer.harvard.edu/resources-policies/student-responsibilities to which we subscribe. By turning in materials for review, you certify that all work presented is your own and has been done by you independently.
If, in the course of your writing, you use the words or ideas of another writer or programmer, proper acknowledgement must be given. Not to do so is to commit plagiarism, a form of academic dishonesty. If you are not absolutely clear on what constitutes plagiarism and how to cite sources appropriately, now is the time to learn. Please ask me!
Please be aware that the consequences for plagiarism or other forms of academic dishonesty will be severe. Students who violate university standards of academic integrity are subject to disciplinary action.
To obtain accessibility-related academic adjustments and/or auxiliary aids (academic and physical) students must contact the Accessibility Services Office. Please see their website for more information: https://www.summer.harvard.edu/resources-policies/accessibility-services
No curriculum develops in a vacuum. Here are some sources to check out that were used in this one’s development: