Commemorating the arrivial of our GitHub swag. Photo: Aku Heinonen
Jump down to the list of course topics by week
- Mondays 8-10 or 10-12, A113-114, Physicum (5.9-17.10)
- Work sessions on Thursdays 8-10, A111-112, Physicum (8.9-20.10)
-
Henrikki Tenkanen
- Office: A120, Physicum
- Email:
[email protected]
- Phone: +358 50 4484436
-
David Whipp
- Office: D430, Exactum
- Email:
[email protected]
- Phone: +358 2941 51617
-
Vuokko Heikinheimo
- Office: A120, Physicum
- Email:
[email protected]
- Phone: +358 2941 50760
-
Jorina Schütt
- Office: D422, Exactum
- Email:
[email protected]
- Phone: +358 45 1865288
- Course sites for Period I:
- Main course site: https://github.com/Python-for-geo-people
- Pouta Blueprints site: https://pb.geo.helsinki.fi
- Automating GIS processes (Period II)
- Main course site: https://github.com/Automating-GIS-processes
- Moodle page: https://moodle.helsinki.fi/course/view.php?id=18331
- Introduction to Quantitative Geology (Period II)
- Main course site: https://github.com/Intro-Quantitative-Geology
- Moodle page: https://moodle.helsinki.fi/course/view.php?id=12453
- There are no required textbooks for this course. This course uses a wide range of sources for course information and the main textbooks are given below.
- Recommended textbooks (in order of relevance):
- Zelle, J. (2010) Python Programming: An Introduction to Computer Science, Second edition. Franklin, Beedle & Associates.
- Taylor, J. R. (1997) An Introduction to Error Analysis: The Study of Uncertainties in Physical Measurements, Second edition. University Science Books.
- Optional textbooks:
- Beazley, D. M. (2012) Python Essential Reference, Fourth edition. Addison-Wesley.
This part of these courses aims to:
- Introduce students to the Python programming language
- Develop basic programming skills
The majority of this course will be spent in front of a computer learning to program in the Python language and working on exercises. During Teaching Period I, the Automating GIS processes and Introduction to Quantitative Geology courses will meet together and focus on learning to program in Python. Previously, both these courses lacked sufficient time for students to properly learn the basic concepts of programming in Python. We hope this extended time learning Python will be helpful later in the course (i.e., in Period II) when we work on the course-related applications.
The computer exercises will focus on developing basic programming skills using the Python language and applying those skills to various problems. Typical exercises will involve a brief introduction followed by topical computer-based tasks. At the end of the exercises, you may be asked to submit answers to relevant questions, some related plots, and/or Python codes you have written or used. You are encouraged to discuss and work together with other students on the laboratory exercises, however the laboratory summary write-ups that you submit must be completed individually and must clearly reflect your own work.
Lecture content, readings and due dates are subject to change
5.9 - What is a programming language?; Why Python?; Elements of a computer program
- Lesson - Lesson 1: A taste of Python
- Assignment - Exercise 1: Creating a GitHub account and using the cloud
- Additional material - Lecture 1: Computers and programs
- Readings - Zelle, Chapters 1 & 2
12.9 - Basics of git online (e.g., GitHub.com); Data types and lists; Writing simple programs the right way
- Lesson - Lesson 2: Diving into Python
- Assignment - Exercise 2: Writing scripts and using GitHub
- Readings - Zelle, Chapters 1 & 2
19.9 - for
loops; Conditional statements
- Lesson - Lesson 3: Control flow
- Assignment - Exercise 3:
for
loops and conditional statements - Readings - Zelle, Chapters 6 & 7
26.9 - Using Spyder; Functions and Modules
- Lesson - Lesson 4: Functions and modules
- Assignment - Exercise 4: A temperature calculator
- Readings - None
3.10 - Reading and writing data files
- Lesson - Lesson 5: Reading and writing files
- Assignment - Exercise 5: Analysing NOAA climate data
- Readings - Zelle, Chapters 5
10.10 - Dealing with numerical data using NumPy
- Lesson - Lesson 6: Dealing with numerical data using NumPy
- Assignment - Exercise 6: Analyzing data using NumPy
- Readings - Zelle, Chapters 8
17.10 - Plotting data using Matplotlib + Plotly
- Lesson - Lesson 7: Plotting data using Matplotlib and plotly
- Assignment - Exercise 7: Plotting with Python
- Readings - None