Lecturer: Hossein Hajiabolhassan

The Webpage of the Course: Fundamental of Computer and Programming with Python

Data Science Center, Shahid Beheshti University

## Course Overview:

This is an Introduction to Computer Programming. By the end of this course, you should be comfortable programming in Python, understand how good style is critical, and be familiar with core computer science topics like algorithms and complexity. Topics include functions, iteration, recursion, strings, and function calls.

## Main TextBooks

- Think Python: How to Think Like a Computer Scientist, Second Edition, by Allen B. Downey (free PDF book)
- How to Think Like a Computer Scientist by Brad Miller and David Ranum
- Python for Everybody by Charles R. Severance (free PDF book)
- Practical Programming (2nd edition): An Introduction to Computer Science Using Python 3 by Paul Gries, Jennifer Campbell, and Jason Montojo, 2013.
- The Python Tutorial (available from the Python website)

## Slides & Jupyter NoteBooks:

- Python (Faster Data Science Education by Kaggle) by Colin Morris

## Practice Python Online

You can learn python via the following websites:

- SoloLearn (A great website for getting started with coding. It offers easy to follow lessons, interspersed with quizzes to help you retain what you are learning).
- Google Developer Python Tutorial (highly recommended as a way to master python in just a few hours!)
## Project Euler

If you want to solve interesting problems with Python, then we recommend to solve the problems of Project Euler!

## Anaconda

Anaconda Distribution: With over 6 million users, the open source Anaconda Distribution is the fastest and easiest way to do Python and R data science and machine learning on Linux, Windows, and Mac OS X. It’s the industry standard for developing, testing, and training on a single machine.

## Class time and Location:

Saturday and Monday 08:00-09:30 AM, Main Computer Lab

## Prerequisites:

Assumes basic high school mathematics (no calculus) but no programming experience.

## Grading:

- Homework – 10%
- Midterm – 40%
- Endterm – 50%

## Questions?

I’ll be having office hours for this course on Saturday 10:00 AM–12:00 AM. If this isn’t convenient, email me at hhaji@sbu.ac.ir or talk to me after class.