The preliminary grading can be found on moodle.uni-graz.at.
Course dates, important information and homework assignments are available in my calendar. An outline of the topics is available as spreadsheet.
Slides
IPython Notebooks
Make sure jupyter-notebook is installed (sudo -H apt install jupyter-notebook
). After downloading a notebook, use it via
jupyter-notebook ${notebookname}
Software
There are essentially three options for obtaining all the software for this course. Be aware that students taking this class in the past had considerable trouble installing the required tools in alternative operating systems. Hence you are encouraged to either use a Debian-based Linux distribution natively or in a virtual machine.
- If you prefer not to install Linux natively, the recommended way
is to use virtual machine software.
VirtualBox is an
excellent open source choice.
In this case you can download a virtual machine image with all the required software (~2.5 GB; you can obtain username and password from your lecturers). Once the virtual machine works on your computer, the user name is student and the password is changeme. - The most straightforward way is to natively install any Debian-based Linux
distribution (eg.
KDE Neon). This
allows you to simply use the package manager to install anything that's
required:
sudo apt install git git-gui \ kate \ kdiff3 \ ipython3 \ jupyter-notebook \ python3-matplotlib \ python3-numpy \ python3-pandas \ python3-pip \ python3-pulp \ python3-pyqt5 \ python3-pytest \ python3-scipy \ python3-virtualenv
- You can use any other operating system as well -
however, you will not receive any support. The tools and programs you have
to install and configure include
- Python 3
- a good programmer's text editor (like the award winning Kate)
- ipython3
- pytest
- the Python 3 versions of numpy, pandas, pip, pulp, scipy, matplotlib, pyqt5, flask and virtualenv
- git
- openssh-client
- a three-way diff program
On the plus side there exist scientific Python distributions (like WinPython or Anaconda) for some operating systems. These facilitate the installation and cover most of our needs.
In case you have trouble with your software setup and need to continue with your homework, try https://www.pythonanywhere.com which is enough for many of the tasks.
Homework Assignments
- 1st homework assignment
- 2nd homework assignment
- 3rd homework assignment
- 4th homework assignment
- 5th homework assignment
- 6th homework assignment
- 7th homework assignment
- 8th homework assignment
- 9th homework assignment
- 10th homework assignment
- 11th homework assignment
CMS 1 Term Project
CMS 1 project proposalsPrior Final Exams
- f2013_final.pdf
- f2014_final.pdf
- f2015_final.pdf
- s2017_final.pdf
- s2017_final_solution.pdf
- s2018_final.pdf
- s2019_final.pdf
- s2019_final_solution.pdf
- f2019_final.pdf
- f2019_final_solution.pdf
- f2020_final.pdf
- f2020_final_solution.pdf
Notes
- Argparse
- Debugging
- Django
- IPython
- Introduction to KDE Neon
- Mixed Integer Linear Programming
- Profiling
- Refactoring
- SQLite 3
- Virtualenv
Literature
Primary
- The Python Tutorial
- Non-Programmer's Tutorial for Python 3
- Python Documentation
- Head First Programming: A learner's guide to programming using the Python language (buy on Amazon)
Further Reading
- Argparse Tutorial
- Dive Into Python 3, 2nd edition (buy on Amazon)
- Head First Python (buy on Amazon)
- Matplotlib Pyplot Tutorial
- Programming in Python 3, 2nd edition (buy on Amazon)
- Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython (buy on Amazon)
Online Video Resources
- Introduction to Python
- Computer Science 61A, 001 - Fall 2012 (undergraduate CS course at UC Berkeley)