Computational Physics, Rutgers-Newark#
Why do we need to study computational methods and programming?#
Computers have become the “mathematics” of the modern era—they are, in essence, the capability to solve problems. In the 17th century, mathematics had its golden age: by mastering math, one could tackle many practical issues in astronomy, physics, and engineering. In other words, mathematics represented “problem-solving ability.”
In the 21st century, the types of problems solvable solely by mathematics have basically already been solved. What remain are complex systems and complex engineering challenges. These problems inevitably require computing power, storage capabilities, and AI.
So, why study computational methods? Because in today’s world, it is essentially the discipline of “problem-solving.” Once you’ve mastered computational science skills, you can apply them to solve complex problems and handle complex projects across all industries.
About AI/ChatGPT
In today’s age of AI and ChatGPT, many people might wonder why we still need to learn programming. After all, these powerful tools seem capable of doing so much already. However, rather than diminishing the importance of programming, AI has actually made it more essential than ever.
Tools like ChatGPT/Gemini/Claude operate within the framework we set for them. To maximize their benefits and customize or extend them to fit our needs, programming skills are crucial. By learning to code, we gain a better understanding of how these technologies work, giving us control rather than simply being passive users.
Programming is a form of creative expression. Even though AI can assist with code generation or problem-solving, truly understanding how to implement features or optimize algorithms still requires engineering thinking and creativity. Mastering programming skills allows for flexible realization of complex ideas.
Technology changes rapidly, with new frameworks, languages, and use cases emerging all the time. Learning to program fundamentally means learning a systematic problem-solving approach. Regardless of how technology evolves, this mindset will help you quickly adapt to new tools and platforms.
In short, if you know how to program, AI will be like adding wings to a tiger—making you even more powerful. But if you don’t know how to code and only rely on ChatGPT to solve problems, you’ll become increasingly dependent on AI and, over time, lose your competitive edge.
Learning Objectives#
By the end of this course, you will be able to:
Write Python programs to solve physics and engineering problems
Implement numerical methods for integration, differentiation, and interpolation
Solve ordinary and partial differential equations computationally
Apply Monte Carlo methods and stochastic simulations
Use optimization techniques including global optimization algorithms
Apply basic machine learning algorithms to scientific data
Prerequisites#
Basic calculus (derivatives, integrals)
Linear algebra fundamentals (vectors, matrices)
No prior programming experience required
Location: Smith Hall 242#
Schedule: Mondays/Thursdays 1:00 - 2:20 pm#
Instructor |
Prof. Li Zhu |
|---|---|
Website |
|
Office |
Smith 504 |
Office hours |
by appointment |
Course Outline#
Subjects |
|
|---|---|
1 |
Python basics I |
2 |
Python basics II |
3 |
Python basics III |
4 |
Integrals |
5 |
Derivatives |
6 |
Interpolation |
7 |
Fitting |
8 |
Fourier transform |
9 |
Fast Fourier transform |
10 |
Ordinary differential equations |
11 |
Partial differential equations |
12 |
Stochastic method I |
13 |
Stochastic method II |
14 |
Monte carlo III |
15 |
Optimization I |
16 |
Optimization II |
17 |
Global Optimization I |
18 |
Global Optimization II |
19 |
Global Optimization III |
20 |
Machine Learning I (Algorithms) |
21 |
Machine Learning II (Applications) |
22 |
Machine Learning III (Neural Networks) |
23 |
Machine Learning IV (Graph Neural Networks) |
Textbook: Computational Physics, M. Newman (not required)#
Additional Resources#
Python: Python.org Tutorial
NumPy: NumPy Quickstart
Matplotlib: Pyplot Tutorial
Grade Distribution:#
Items |
Percentage |
|---|---|
Attendance |
10% |
Homeworks |
30% |
Midterm Project |
30% |
Final Project |
30% |
Course Description#
This course is open to both undergraduate and graduate students interested in scientific programming and data analysis. There will be weekly assignments and two projects during the semester.
Please bring your laptop/tablet (iPhone/Android) to class. All practices will be based on Python 3.
We recommend using Colab (https://colab.research.google.com/) as the coding environment. The advantage of Colab is that it can be used on various computational devices, including laptops, tablets, and even smartphones, if you choose.
AI Policy#
You are encouraged to use AI tools (ChatGPT, Claude, Copilot) as learning aids. However:
You must understand and be able to explain any code you submit
Cite AI assistance in your submissions
Lecture Notes#
You can find the lecture notes on Google Drive.
Please make sure to save a copy to your own Google Drive.
The lecture notes will be uploaded to the course Google Drive prior to each class.
Homework Submission#
Assignments will be provided in the form of Jupyter (.ipynb) notebooks.
Please save a copy of each assignment to your own Google Drive and complete it there.
To submit the assignment, follow both steps below:
Export the notebook to PDF (File → Print → “Save as PDF”) and submit the PDF file to Canvas.
Click Share in the top-right corner of the notebook, set access to “Anyone with the link – Viewer”, copy the link, and paste it into the Submission Comments box in Canvas along with uploading your PDF file.


