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?
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 growing git
repository on the internet. This distinction isn’t always immediately apparent.
Key Questions
Readings:
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
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
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
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.
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.
In-class: Brainstorm 3 project ideas & lightning talks
isis.unc.edu
scp & rsync
Check-in: Meetups