# Sage Days 38 Tutorials

**For the main Sage Days 38 wiki page go** here.

### Tutorial II: Calculus and Linear Algebra in Sage

Leader: Franco Saliola

Worksheet:

- Calculus and Linear Algebra in Sage (html version of the calculus part and html version of the linear algebra part of the worksheet)
Resources:

- Calculus Quick Reference Card
- Sage Calculus Tutorial
- Linear Algebra Quick Reference Card
- Sage Constructions: "How do I construct ... in Sage?"

### Tutorial III: Programming in Python and Sage

Leader: Florent Hivert

Worksheet:

- Programming in Python and Sage (html version of this worksheet)
- Additional Exercises (Sage worksheets):

- Collatz conjecture: practice writing functions, plotting and interact while exploring the 3n+1-conjecture.
- Dictionaries and Graph Theory: learn about dictionaries through graph theory exercises. (The Graph Theory Quick Reference Card might come in handy.)
- Strings and the Burrows-Wheeler Transform: 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 IV: Contributing to Sage

Leader: 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 V: Cython

Leader: Florent Hivert

Worksheet:

Related thematic tutorials:

Resources:

- Cython: all the benefits of Python with the speed of C
- A quick Cython introduction
- Cython tutorial: describes the Cython language and shows how it can be used both to write optimized code and to interface with external C libraries.
- Cython user's guide
- Cython, Sage, and the Need for Speed
- Getting Started With Cython
- Python extensions with C libraries made easy by Cython