layout | title |
---|---|
default |
Schedule |
I will be available Wednesdays after class and by appointment via our Google Plus community.
This schedule is a work in progress and will change based on our progress, your interests, and things that come up along the way. I'll make sure to announce any changes in our Google community.
We’ll have a series of programming professionals come in and discuss their experiences and their personal relationships to the topics we’re covering. A selection of speakers who have confirmed (but not yet scheduled):
-
Brian Marks, CTO, Trinket.io
-
Karen Cranston, co-PI, Open Tree of Life Project
-
Julia Elman, Lead Designer, Trinket.io
-
Alan Dipert, (Currently) Freelance Programmer
-
Jeff Heard, Senior Researcher, RENCI
Key Questions
-
What is Text?
-
What is a Computer?
-
How Can Text Control Computers?
- None (first day of class)
In-Class: Get set up on Google Plus
In-Class: Get set up on Github
In-Class Exercise: Modify the class blog
-
In-Class Exercise: Write an initial blog post
-
In-Class Exercise: Open your first issue
-
In-Class Exercise: Close your first issue
-
Note: As we’ll learn,
git
is an open source command line version control system. Github.com is the fastest growinggit
repository on the internet. This distinction isn’t always immediately apparent.
Key Questions
- How do I control Python code?
Readings:
- Think Python Chapter on Turtle
- Software Carpentry: Computational Thinking - This is intended as a wrap-up essay but I often find it useful to ‘start at the end’. Use the essay to orient yourself to concepts that we’ll be learning.
Read the text, do the exercises, and be prepared to explore what Turtles can do in class. The videos are optional- I find them less helpful than the text myself but you might find them helpful. Pay attention to the Flow of Control exercises
- In-Class Exercise: Write a simple post with syntax highlighting and a screenshot of your turtle program.
Readings:
-
Sparkfun: Intro to binary
-
Chapter 1 ThinkPython: The Way of the Program
-
ThinkPython Ch. 2: Variables, expressions, and statements
-
In-Class Exercise: Hands on with Code
"Programs must be written for people to read, and only incidentally for machines to execute."
- Abelson & Sussman, SICP, preface to the first edition
Readings:
-
Philip Guo: "Two Cultures of Programming"
-
Hitchhiker’s Guide to Python: Code Style - There will be lots in here that may not make sense to you. Practice your skimming/vocab learning skills.
-
Think Python: Strings
-
Think Python: Lists
Hands on with Python Data.
Setting up Nitrous.io
-
What is pseudocode?
-
How can I solve problems with pseudocode?
Readings:
-
Think Python: How to be a Successful Programmer
-
Think Python: Selection
-
In class/Homework: Codingbat.com
Nitrous.io exercise
Readings:
-
ThinkPython: More iteration
-
ThinkPython: Recursion
-
Software Carpentry: Data Storage: Sets and Dicts
-
In class/Homework: Codingbat.com
-
Check-in: Meetups
Nitrous Exercise
Extra Credit Exercise: ThinkPython: Using data structures An extra point on your final grade for a Github post with exercises 1-4 completed. This is especially relevant to those of you with an interest in data mining. Due Friday.
Working with real developer tools
- In class: Command line git posts
All posts from here on out should be via Nitrous!
Self-contained, reusable bits of code.
-
Think Python: Functions
-
Think Python: Modules
-
Software Carpentry: Libraries
-
In-Class: Command line: pip. Review some common python libraries. Focus on documentation, initial testing, beginning use
Nitrous Flask introduction
Catch-up
- Check-in: Meetups
Lightweight web framework.
Lightweight web framework.
Web framework continued
-
In-Class: Distributed teams & feature implementation
-
Reading: ProGit Ch. 3.1 What a Branch Is
-
Reading: ProGit Ch. 3.4 Git Branch Workflows
-
Reading: ProGit Ch. 5.1 Distributed Workflows
-
Optional Reading: ProGit Ch 6.4 Re-writing History (amend, rebase, split)
-
Optional Reading: ProGit Ch 7.3 Hooks
-
Revisit: Github Flow
How to give back or start a project. Code Refactoring and Cleanup. Documentation. Guests.
- Reading: ProGit Ch. 5.2 Contributing to a Project
Tactical help from me or peers on final projects.
Presentation and discussion of projects. A roadmap for where students want to go next.
Final projects due Sat, May 3rd, 8am.
- Software Carpentry: The Shell - Read the Introduction and come up to speed on Files and Directories, Creating and Deleting, Pipes and Filters, and Permissions.
-
In-Class Exercise: Bash scripting for simple data transformations
-
In-class: Brainstorm 3 project ideas & lightning talks
-
isis.unc.edu
-
scp & rsync
-
Check-in: Meetups