For the academic year 2016-17, the lecture is split into two series: info1 and info2
- Info1 is for complete beginners with no experience of coding at all (instructor Sylvain Charron sylvain.charron@polytechnique.edu).
- Info2 is for students who already have basic or intermediate knowledge of coding (instructors Christophe Pallier christophe@pallier.org and Ewan Dunbar emd@umd.edu)
If you are already programming fluently in some languages other than Python, we will happily recommend some books to learn Python and give you some programming challenges
These courses are mostly intended for beginners but students who already have rudiments in programming (e.g. only know Matlab) can benefit from them. Also, note that knowledge of Python and of the skills listed below is a requirement for the other hands-on classes of the Cogmaster (Atelier d'experimentation, de simulation, ...) .
The aim of these lectures is to help you:
- Learn the principles of how computers work
- Learn the basic concepts of programming (instructions/variables/loops...)
- learn the bases of Python programming
- Learn how to execute, design, write and debug programs
At the end of this series of lectures, you should:
Know a little bit about computers' architecture
- Computer = Automaton + Memory store (Turing machines)
- Intro to Machine language (Register machine Rodrego)
- High-level languages. Compilation/interpretation.
- What does an operating system do?
Know the basic programming concepts:
- forever loops
- conditional statements
- constants integers/floats/strings (insist that there are different types)
- variables
- lists/dictionaries
- loops over sequences
- functions/parameters/local variables/recursion
- modules
- file input/output
Have acquired some practical skills:
-
Download some source code (e.g. Python) from the Internet (e.g. github) and display it.
-
Run a program from the command line
- open a terminal, interact with the shell
- navigate the directory structure with cd/ls
- type commands, possibly with options or arguments
- interrupt a running program (using the process manager)
-
Execute a python script.
-
Install missing modules
-
Launch ipython and use it interactively (distinction shell/interpreter python)
-
Use an editor (atom) to view/edit a Python script
-
Find/read Python's documentation
-
what to do when there is a crash/error message
The files of the lectures are available on the web site http://www.pallier.org/ressources/AIP2016.
In particular, check the books folder and the list of all html and pdf documents.
You can keep a local copy of all the lectures using git with the repository at https://github.com/chrplr/AIP2016, following these instructions. (NOT YET UPDATED FOR 2016!!! WAIT)
For beginners:
- read the free online introduction to programming and computer science at http://composingprograms.com/
- read How to think like a computer scientist.
For intermediate students:
- MIT's Introduction to computer science and programming online course.
- Another excellent resource to go beyond this lecture is https://mitpress.mit.edu/sicp/sicp.html
For advanced students:
-
read Think Complexity, a book is about complexity science, data structures and algorithms, intermediate programming in Python, and the philosophy of science.
-
Python for signal processing: http://www.scipy-lectures.org/