Computing and Programming for Environmental Research (ESE5023)
https://zhu-group.github.io/ese5023

Instructor:
Lei Zhu
School of Environmental Science and Engineering
Office: 907, CoE North
Email:
Office Hours: By appointment

Teaching Assistants (TAs):
Xingyi Wu
School of Environmental Science and Engineering
Office: 903B, CoE North
Email:
Office Hours: Friday 14:00-15:00

Jiaming Zhang
School of Environmental Science and Engineering
Office: 903B, CoE North
Email:
Office Hours: Thursday 9:00-10:00

Xiangchen Wang
School of Computer Science and Engineering
Office: 550B, CoE South
Email:
Office Hours: Monday 15:00-16:00

Class Time:
Wednesday 19:00-21:50

Location:
307, Teaching Building #3

Credit:
The course has a credit of 3.0, with a total class hour of 48.

Overview:
Computing is an indispensable tool for Environmental scientists. Being able to analyze and visualize data sets through programming efforts has become one of the most critical skills for carrying out studies in Environmental Science. However, incoming ESE graduate students often find their opportunities to get access to such courses limited at SUSTech.

This course will introduce students to modern computing software, programming tools, and practices that are broadly applicable in their later research. This course will include an introduction to Linux, version control and data backup with Git, programming in two commonly used languages (Python and FORTRAN), data analysis and visualization tools, and high-performance computing exercises on cluster computers. This course will boost students’ programming and computing skills, which are in high demand in the era of Big Data.

This course is a hands-on and project-oriented course that facilitates student learning through lectures, in-class exercises, labs, assignments, final project, and one-on-one interactions. Class topics will be taught through example data sets, demos, and research problems from Environmental Science.

Structure:
The course will meet on Wednesday weekly. During class 09-10, new material will be demonstrated by the instructor, followed by in-class exercises. For class 11, the class will turn into a lab, when class time will be devoted to working on in-class exercises and assignments, discussing the final project, and one-on-one interactions between students and the instructor/TAs. Students are also welcome to Office Hours held by the instructor and TAs for specific questions.

Prerequisites:
C or C++; Applied Mathematics; Or permission of the instructor.

Textbook:
There is no required textbook. Readings will be freely available from online resources made available through the course website.

Laptop:
Students are required to bring laptops to the class to learn the material, participate in in-class exercises, and work on the assignments. Students are encouraged to check resources for software/tools used in the course.

Grading:
Students will be evaluated at the end of the semester based on their assignments (50%), final project (40%), and class participation (10%).

Schedule:
Schedule for 2024 Fall


This course is inspired by the excellent course Research computing in earth sciences freely available on the Github.