Upon successful completion of this course, you will be able to:
|Introduction||01/17||Introduction, Syllabus, Linux Shell||Homework 1||01/20|
|01/19||Vagrant, Git Notes|
|Packaging||01/24||Scripts, Modules Notes||Homework 2||01/27|
|Object-Oriented Programming||01/31||OOP Concepts Notes||Homework 3||02/03|
|02/14||Checklist 1 Test 1|
|Databases||02/16||Databases, SQL Notes|
|02/21||SQLite with Python Notes||Homework 4||02/24|
|02/23||Relational databases Notes|
|Server-Side Programming||02/28||HTTP, HTML Notes||Homework 5||03/03|
|03/07||Tornado templates||Homework 6||03/10|
|03/28||Checklist 2 Test 2|
|Client-Side Programming||03/30||HTML + CSS|
|04/04||Bootstrap Notes||Homework 7||04/07|
|04/11||AJAX Notes||Homework 8||04/14|
|04/25||Checklist 3 Practice code Test 3|
|Final Project||04/27||Planning, Design||Homework 9||04/28|
|05/08||Final Project Presentations|
|Homework Weekly reading assignments and corresponding writing prompts.||9 × 5|
|Projects Focused group programming projects.||30 + 40 + 40|
|Tests Examinations after each project.||25 + 35 + 35|
|Final Project Open-ended group programming project.||50|
All your Homework and Projects are to be submitted to your own private GitLab repository.
You are expected to attend and contribute regularly in class. This means answering questions in class, participating in discussions, and helping other students. Foreseeable absences should be discussed with the instructor ahead of time.
You are equally expected to follow and to use the class Slack team. If you have a question, ask on Slack first. That way everyone can benefit from the answer. If someone has a problem that you can help with, chime in.
In the case of a serious illness or other excused absence, as defined by university policies, coursework submissions will be accepted late by the same number of days as the excused absence.
Otherwise, there is a penalty of 25% per day late (except where noted). You may submit some parts of an assignment on time and some parts late. Each submission must clearly state which parts it contains; no part can be submitted more than once.
All work that you submit must be your own. Collaboration is encouraged but must be disclosed by all parties. Print or online resources are allowed, but must be disclosed. However, you may not copy-paste solutions from other current or past students, or any other source.
As a rule of thumb, you should be able to explain any written response or code you submit, and to reproduce it in your own words.
Any student who has a documented disability and is registered with Disability Services should speak with the professor as soon as possible regarding accommodations. Students who are not registered should contact the Office of Disabilities.
All of the course textbooks are freely available online.
A book dedicated to teaching beginnings how to program in Python. The website includes a variety of extra resources including videos.
A set of course materials for introducing Python to informaticians. The website includes a variety of resources including multiple versions of the book, slides, videos, audio, and more. The book is based on Think Python: How to Think Like a Computer Scientist.
A free book on programming using the Python language.
A collection of lecture notes used to train scientists interesting in utilizing Python in their workflows. The notes are available in PDF and HTML format.
All of the course software is freely available online.
The official Python programming language website.
A large and relatively complete Python distribution for large-scale data processing, predictive analytics, and scientific computing.
Free software for creating and running virtual machines on your personal computer.
A set of scripts to easily set up and maintain virtual machines from the command-line. In conjunction with VirtualBox, you can use this to create carefully-controlled, virtual Linux environments for project development.
These are additional resources and references that may be useful.
The documentation included with [http://www.python.org](Python 2.7), which is the version we will be using.
An interactive website you can use to visually trace through the execution of your Python code.
A collection of free Python books.
An incomplete Wiki Book about programming in Python.
A collection of tutorials on how to use a variety Python's many included modules.
A blog filled with tutorials and lessons on Python and its various libraries.
References for navigating the command line
Help on git commands and techniques
Paste in your own HTML or the URL of a site on the web to check against the language standards and see any bugs.
Official website for Bootstrap. Download your own copy, check the docs, look at examples.
Free, useful icons to spruce up your site.
Official site for the Tornado web framework.