<commit_before>---
layout: lab
num: lab02
ready: false
desc: "lab02, Next steps with github, Python functions, testing"
assigned: 2016-08-03 10:15:00.00-7
due: 2016-08-04 20:00:00.00-7
---

If you find typos or problems with the lab instructions, please report them on Piazza

# Learning Objectives

In this lab, you'll learn:

* A few Unix commands: `pwd`, `ls`, `cd`, `mkdir`, `cp`, `mv`, `rmdir`, `rm`
* How to clone a private repo at the Bash (Unix) command line
* How to store a Python file in a repo
* The basic git workflow of `git add...`, `git commit...`, `git push...`
* Testing of Python functions
* Submitting a Python function for autograding using Gradescope

# Unix commands

TBD

# Cloning a private repo at the bash (Unix) command line

TBD

# How to store a Python file in a repo

TBD

# The basic git workflow of `git add...`, `git commit...`, `git push...`

TBD

# Testing of Python functions

TBD

# Submitting a Python function for autograding using Gradescope

TBD<commit_msg>Update lab02.md<commit_after>---
layout: lab
num: lab02
ready: false
desc: "lab02, Next steps with github, Python functions, testing"
assigned: 2016-08-03 10:15:00.00-7
due: 2016-08-04 20:00:00.00-7
---

If you find typos or problems with the lab instructions, please report them on Piazza


# Overview

The first step  of this lab is something you'll take turns with your pair partner doing individually.  Each of you will 
*set up a github repo in which you'll submit your responses to APS problems* (we provide detailed instructions below).

You can also skip over this step and do it later, if you want to get started with the part you do as a pair.  Please do the APS step, though, sometime today or tomorrow, since you'll need this APS repo to work on your [APS homework aps01](/hwk/aps01/)

Then, as a pair, you'll work through some steps to practice a few skills involving Python, Unix, and github.   


# More specific Learning Objectives

The most important thing we want you to get out of this lab is the ability to
* create a solution to a Python problem for which there are test cases
* iterate until the test cases pass
* keep every step of that development process in a github repo
* then submit that solution for "automatic grading" using a system called Gradescope.

Here's a more complete list of our learning objectives:

* A few Unix commands: `pwd`, `ls`, `cd`, `mkdir`, `cp`, `mv`, `rmdir`, `rm`
* How to clone a private repo at the Bash (Unix) command line
* How to store a Python file in a repo
* The basic git workflow of `git add...`, `git commit...`, `git push...`
* Testing of Python functions
* Submitting a Python function for autograding using Gradescope

# Step-by-Step through {{page.num}}

## Step 1: Bring up a bash terminal shell

Bring up a bash terminal shell.  As a reminder, you can do this by selecting "Applications", then either "Terminal" or "Konsole" from the menu that pops up.  (Your Applications menu may have only Terminal, or only Konsole, or may have both.
For our purposes, they work equally well.)






# Unix commands

Our first step today is to bring up the bash shell.    You 

# Cloning a private repo at the bash (Unix) command line

TBD

# How to store a Python file in a repo

TBD

# The basic git workflow of `git add...`, `git commit...`, `git push...`

TBD

# Testing of Python functions

TBD

# Submitting a Python function for autograding using Gradescope

TBD
{'fraction_non_alphanumeric': 0.0835036496350365, 'fraction_numerical': 0.024233576642335768, 'mean_word_length': 3.764951321279555, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7338946', 'n_tokens_mistral': 1105, 'n_tokens_neox': 1001, 'n_words': 543}