Skip to content

Latest commit

 

History

History
79 lines (64 loc) · 6.23 KB

SYLLABUS.md

File metadata and controls

79 lines (64 loc) · 6.23 KB

Syllabus and Course Guide

by: Johnrob Y. Bantang, Ph.D.

Main

Class Details

  • Course name: Physics 215
  • Course title: Computational Methods of Physics
  • Description: Numerical methods; introduction to linear and dynamic programming; principles of simulation and modeling; computer langueges for numerical solutions and algebraic manipulations.
  • Course credit: 3.0 u
  • Class schedule: WF 5:30-7pm (PST)

Course Goals

At the end of the semester, the student will be able to:

  • [G1] Identify basic principles in high-performance computation, in particular those accessible via Julia as a programming language;
  • [G2] Solve at least one ODE-based problem using numerical approach in Julia, showing the solutions in graphical plots;
  • [G3] Implement known numerical methods / algorithm for solving or simulating basic physical models using Julia as the programming language;
  • [G4] Identify critical principles of simulation and modeling in at least one project involving physical system modeling or simulation;
  • [G5] Submit at least one completed project implemented using Julia programming language clearly demonstrating at least two out of the first four (G1-G4) above.

Class mode

This semester, we will have a mixture of the following modes:

  1. Wednesdays: Face to face physical class meeting (bring your own laptop)
  2. Fridays: Asynchronous mode when you are expected to work with your classmates on the assigned machine problem / exercise. Interaction with classmates and experts in the Discord server is encouraged. During this mode, you are expected to work on certain machine activity or problem assigned.

Necessities:

  1. Computer (laptop or desktop) with Internet access1
  2. Browser bookmarks of the following sites:
    1. The Julia documentation page: The one authoritative documentation website.
    2. Wikibooks: Introducing Julia: A good tutorial site with sample codes to tryout.
    3. A Julia packages shortcut repository: For finding the right package you might need.
  3. Access to book references such as follows
    1. [MAIN] Avik Sengupta. Julia High Performance, 2nd Ed. (Packt Publishing, 2019). Details are found in its website. Warning: Paid book. You might not need to buy it for this semester.
    2. Storopoli, Huijzer and Alonso (2021). Julia Data Science. An online course focused on Data Science. (ISBN: 9798489859165)
    3. _. Julia for Optimization and Learning (stable version). An online book course on optimization and basic neural network. The first few chapters are very useful as introductory course.
    4. Kyle Novak. Numerical Methods for Scientific Computing, 2nd Ed. (Equalshare Press, 2022). Download PDF file copy.
    5. Ben Lauwens and Allen Downey. Think Julia: How to think like a computer scientist. This is a good basic reference for Applied Physics 155 level of introduction for Julia.
    6. Stephen Boyd and Lieven Vandenberghe. Introduction to Applied Linear Algebra, VLMS (accessible online January 2024)
    7. Other resources may appear in the Google Classroom, and in the Discord server.
  4. Patience and enthusiasm

Topics

The sequence of topics will generally follow the MAIN book reference following each chapter. Discussions during classes and class hours will be done every Wednesdays to discuss the chapter and computational physics topics. I expect everyone to use the Friday schedule to finish the allocated homework sessions posted in the Google Classroom. This list may change as determined by the instructor. Each number will generally be allocated for the week number of the semester.

This semester, I decided to try and use known machine problems for application of the HPC concepts discussed.

The listing of the topics is found in the Main Page.

Course Requirements

Students are expected to submit the following requirements with their corresponding percentage of the total course grade.

  1. Exercises (Ex≥5 machine problems, individual): 60%
  2. Projects:
    1. Mini-projects (Pm≥1 project, individual up to trio): 20%. Must demonstrate at least one(1) of the Course Goals.
    2. Final Project (Pf=1 project, individual up to trio): 20%. Must demonstrate at least two(2) of the Course Goals.

Class Policy

Class attendance. Class attendance is not required but the completed Exercises and Project must be submitted before the deadline set. Late submissions may still be accepted but have final scores reduced by a factor of the remaining days before the Grade Submission deadline. All class sessions and class consultations will be done via available online platforms such as Zoom, Google Meet, or Discord. Submissions must be done via the Google Classrooms. Submissions via other means may tend to be lost in transmission and deemed unreliable.

Exercises. Each topic will require submission of exercise(s) which will individually contribute to the total score under the category of Exercises. Exercise solutions will be submitted online.

Mini-project(s). At least one mini-project will be required towards the mid-semester from which the Final project may be based from. At least one of the Course Goals (one of G1 through G4] must be demonstrated as achieved in mini-projects.

Final project. Only one(1) final project more complex than the mini-projects will be required to be submitted by the end of the semester. Given the practicality of the circumstances, either a live oral or recorded video presentation of the results may be required (submitted). At least two(2) of the Course Goals (one of G1 through G4] must be demonstrated as achieved in the final-project.

Submission modes

Submission modes are described in the Main Page.

Notes

[1] Must have at least two CPU cores. Having GPU cores is desirable but not required. The Internet access is necessary for downloading and installing related apps and codes Julia and GitHub.