You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,18 @@ I believe you can learn serious things through silly games. I also think you wil
6
6
7
7
I won't necessarily show you beforehand how to write each program. I'll describe what the program should do and provide some discussion about how to write it. I'll also create an appendix with short examples of how to do things like how to use `argparse`, how to read/write from/to a file, how to process all the files in a directory, how to extract k-mers from a string, etc. I'll provide some building blocks, but I want you to figure out how to put the pieces together.
8
8
9
+
When you are done with this books you be able to:
10
+
11
+
* Write command-line Python programs
12
+
* Process a variety of command-line arguments, options, and flags
13
+
* Write and run tests for your programs and functions
14
+
* Manipulate of Python data structures including strings, lists, tuples, sets, dictionaries
15
+
* Use higher-order functions like `map` and `filter`
16
+
* Write and use regular expressions
17
+
* Read, parse, and write various text formats
18
+
* Use and control of randomness
19
+
* Create and use graphs, kmers, Markov chains, Hamming distance, the Soundex algorithm, and more
20
+
9
21
## Forking GitHub repo
10
22
11
23
First use the GitHub interface to "fork" this repository into your own account. Then do `git clone` of *your* repository to get a local copy. Inside that checkout, do:
@@ -52,6 +64,18 @@ Your goal is to pass all the tests. The tests are written in an order designed t
52
64
53
65
A fair number of the program rely on a dictionary of English words. To be sure that you can reproduce my results, I include a copy of mine in `inputs/words.zip`.
54
66
67
+
## Why Not Notebooks?
68
+
69
+
Notebooks are great for interactive exploration of data, especially if you want to visualize thing, but the downsides:
70
+
71
+
* Stored as JSON not line-oriented text, so no good `diff` tools
72
+
* Not easily shared
73
+
* Too easy to run cells out of order
74
+
* Hard to test
75
+
* No way to pass in arguments
76
+
77
+
As I want you to learn
78
+
55
79
## Author
56
80
57
81
Ken Youens-Clark is a Sr. Scientific Programmer in the lab of Dr. Bonnie Hurwitz at the University of Arizona. He started college as a music major at the University of North Texas but changed to English lit for his BA in 1995. He started programming at his first job out of college, working through several languages and companies before landing in bioinformatics in 2001. In 2019 he earned his MS in Biosystems Engineering, and enjoys helping people learn programming. When he's not working, he likes playing music, riding bikes, cooking, and being with his wife and children.
0 commit comments