# Sage Days 40 Tutorials

This page is based on the corresponding page for Sage Days 38, which you can find here.

### Tutorial II: Programming in Python and Sage

Leader: Nicolas Borie and Nicolas Thiéry

Worksheet:

- Programming in Python and Sage
- Additional Exercises (Sage worksheets):

- days38_tutorials/CollatzConjecture.sws: practice writing functions, plotting and interact while exploring the 3n+1-conjecture.
- days38_tutorials/Dictionaries-GraphTheory.sws: learn about dictionaries through graph theory exercises. (The Graph Theory Quick Reference Card might come in handy.)
- days38_tutorials/Strings-BWT.sws: learn about strings while exploring the Burrows-Wheeler Transform.
Related thematic tutorials:

- Loops and Iterators
- Objects and Classes in Python and Sage
- Functional Programming for Mathematicians
- Testing a conjecture in parallel
- Implementing Algebraic Structures
Learn-to-program resources:

- Project Euler: Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. This is a great source of problems to attempt while learning Sage/Python. (Projet Euler en Français; Проект Эйлера (Russian).)
- Learn to Code: The Full Beginner's Guide from lifehacker.com: 5 lessons on the basics of programming (PDF version)
- Google's Exploring Computational Thinking
- Python challenge
Python resources:

- Learn Python in 10 minutes (disponible en français)
- Instant Python: a minimal crash-course in Python.
- Dive into Python is a Python book for experienced programmers. Also available in French, Plongez au coeur de Python, and other languages.
- Code Like a Pythonista: Idiomatic Python is an interactive tutorial that covers many essential Python idioms and techniques in depth.
- Python tutorial: the "official" Python tutorial from the Python Software Foundation
- Learn Python the Hard Way is a very beginner book for people who want to learn to code.
- Google's Python class for people with a little bit of programming experience; includes videos of lecture, written materials and exercises.
- Discover Python is a series of articles published in IBM's developerWorks technical resource center.
- Python Programming Wikibook
- Python Standard Library
- High Performance Python

### Tutorial III: Contributing to Sage

Leader: Franco Saliola and Anne Schilling

Guides:

- How to Referee Sage Trac Tickets by William Stein
- How to contribute to Sage by Sébastien Labbé
- Introduction to Sage Development by Mike Hansen
- Short step-by-step checklist for reviewing a patch by Franco Saliola
- Sage Developer's Guide:
Videos:

- Contributing to Sage : Who, What and How: video of a talk by William Stein
Related thematic tutorials:

ReStructuredText resources:

- Quick reStructuredText: quick reference for reStructuredText
- reStructuredText: more detailed reference
- reStructuredText (saifoo.net)
Mercurial resources:

- Hg Init: a Mercurial Tutorial. In this user-friendly, six-part tutorial, Joel Spolsky teaches you the key concepts of Mercurial.
- Learning Mercurial in Workflows. This page illustrates the use of Mercurial in various workflows.
- Mq Tutorial. A tutorial on Mercurial queues.
- A Git User’s Guide to Mercurial Queues

### Tutorial: New functionalities in symmetric functions and k-Schur functions in Sage

Leaders: Mike Zabrocki and Anne Schilling

Worksheet:

### Tutorial: Demo on crystals in sage

Leader: Anne Schilling

Worksheet:

### Talk: Chromatic quasisymmetric functions and regular semisimple Hessenberg varieties

Speaker: John Shareshian

Slides: days40_tutorials/johnbeamer8.pdf

## SageTeX and the Sage cell server

Leader: Dan Drake

Check out sagetex-examples.tar.bz2. The main cell server is aleph.sagemath.org; here are some more cell server links: