-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathunit7_lesson_01_decomposition_overview.py
More file actions
31 lines (24 loc) · 1.72 KB
/
Copy pathunit7_lesson_01_decomposition_overview.py
File metadata and controls
31 lines (24 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
__author__ = 'Kalyan'
notes = '''
This lesson focuses on taking a reasonably sized problem, decomposing it into small tasks and then
modelling them as python classes and methods.
So far most of our work has been focused on small problems with just one or two functions. Real world problems
are much bigger and they cannot and should not jammed into a single main function :).
The assignments in this unit will give you an opportunity to get started on thinking about problem decomposition,
coding for readability, simplicity, testability and change.
Here is some REQUIRED READING, do read them multiple times as you do the assignments and try to solve them. You
wont internalize them on a single read or even two reads!
1. http://www.stevemcconnell.com/ieeesoftware/bp16.htm - how and why to write routines (functions)
2. http://www.stevemcconnell.com/ieeesoftware/bp06.htm - writing software is all about managing complexity, how should
you think about this?
3. http://blog.codinghorror.com/i-shall-call-it-somethingmanager/ - on naming things properly, use the ideas there
but use the python naming conventions when you are coding in python.
4. http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html - this is python specific and has a lot of
good advice on what makes for good idiomatic python code. I recommend multiple reads of this.
The goal for this unit is for you to write readable, well factored 50 line programs. This includes everything you have
learnt so far including debugging and testing
'''
unit_assignments = '''
The assignments in this unit will give you experience in decomposing a medium sized problem. Follow instructions in each
assignment to get started.
'''