CSSE 120
Introduction to Software Development (Robotics)
Summer 2013-2014 (aka 201440)
This is an online class. The days (MWF) and dates (6/9, 6/ 11, etc.) exist only to suggest the approximate pace. See Question 2 of How this online course will work for details. |
||
What to do, When |
||
Mondays | Wednesdays | Fridays |
---|---|---|
Session 1, 6/9:
Introduction to Python.
Tools for software development: Eclipse, Pydev console, Subversion (SVN). Before this session, do Session 1 Preparation. |
Session 2, 6/11:
Input-Compute-Output. Coding to a specification. Calling functions. Debugging techniques I: Correcting compile-time (syntax) errors. Before this session, do Session 2 Preparation. Note: This session's preparation is, BY FAR, the largest "before-the-session" work of the term. Plan a solid 2 to 4 hours to do this important work. |
Session 3, 6/13:
Counted loops.
Objects. Coding: First Solve It By Hand. Debugging techniques II: Run-time errors, stack traces. Application: Graphics. Before this session, do Session 3 Preparation. |
Session 4, 6/16:
Implementing functions with parameters.
Accumulators: Summing. Unit testing. Writing simple tests. Test-first development. Before this session, do Session 4 Preparation. |
Session 5, 6/18:
Pair programming.
Debugging techniques III: Tracing by hand and with the debugger. Application: Robots I: Motion. Before this session, do Session 5 Preparation. |
Session 6, 6/20:
Conditionals I: boolean values; if, if-else, if-elif...
Accumulators: Counting, Graphical Patterns. Writing good unit tests. Before this session, do Session 6 Preparation. |
Session 7, 6/23:
Debugging techniques IV: Deciphering run-time error messages.
Practice tracing code by hand. Test 1 Practice. Before this session, do Session 7 Preparation. |
Session 8, 6/25:
Waiting for Events.
Indefinite Loops. Application: Robots II: Sensing its environment. Before this session, do Session 8 Preparation. |
Session 9, 6/27:
Test 1.
You MUST have completed Session07_Test1Practice
(including its paper-and-pencil exercise)
BEFORE you take Test 1.
It is your ADMISSION TICKET to the test.
Talk to your instructor if that poses a problem for you.
Before this session, do Session 9 Preparation. |
Session 10, 6/30:
Sequences and indices.
Patterns for iterating through sequences, I: Forward/backwards, with steps; Selecting items; Counting/summing/etc. Before this session, do Session 10 Preparation. |
Session 11, 7/2:
Patterns for iterating through sequences, II: Find; Max/min; Two indices at each iteration; Two sequences in parallel.
Building sequences. Before this session, do Session 11 Preparation. |
Session 12, 7/4:
References to objects. Mutating objects.
Conditionals II: Logical operators; Nested conditionals; Pitfalls. More practice tracing code by hand. Before this session, do Session 12 Preparation. |
Session 13, 7/7:
Debugging techniques V: Locating the source of a run-time error.
String methods. Application: String processing. Test 2 practice. Before this session, do Session 13 Preparation. |
Session 14, 7/9:
Nested Loops I: Simple loops within loops.
Looping patterns: Summary I. Blocking messages versus nonblocking messages. Application: Robots III, singing and dancing. Before this session, do Session 14 Preparation. |
Session 15, 7/11:
Test 2.
You MUST have completed Session13_Test2Practice
(including its paper-and-pencil exercise)
BEFORE you take Test 2.
It is your ADMISSION TICKET to the test.
Talk to your instructor if that poses a problem for you.
Before this session, do Session 15 Preparation. |
Session 16, 7/14:
Iterative enhancement.
Procedural decomposition I. Before this session, do Session 16 Preparation. |
Session 17, 7/16:
Procedural decomposition II.
Exceptions and try/except. Application: File I/O. Before this session, do Session 17 Preparation. |
Session 18, 7/18:
Defining classes I:
Object-oriented Design; IS-A, HAS-A relationships in UML class diagrams; Defining constructors, fields, methods; What “self” means. Before this session, do Session 18 Preparation. |
Session 19, 7/21:
Defining classes II:
Inheritance. Multiple implementations of the same interface. Before this session, do Session 19 Preparation. |
Session 20, 7/23:
Defining classes III: More practice.
Test 3 Practice. Before this session, do Session 20 Preparation. |
Session 21, 7/25:
Project Kickoff.
Agile/Scrum: Sprints, Features. Event-Driven Programming. Tkinter I: root/mainloop, frame, buttons, responding to button-clicks. Teaming I: responsibilities. Sprint 0 begins.
Before this session, do Session 21 Preparation.
|
Session 22a, 7/28:
How to divide up and later integrate work:
Integration testing.
Tkinter II. Using classes for shared data. Inheritance: Extending tkinter classes. Teaming II: roles. Project planning at the beginning of a sprint. Sprint 0 ends, Sprint 1 begins.
Before this session, do Session 22a Preparation.
|
Session 22b, any time before 8/11:
Test 3.
You MUST have completed Session20_Test3Practice
(including its paper-and-pencil exercise)
BEFORE you take Test 3.
It is your ADMISSION TICKET to the test.
Talk to your instructor if that poses a problem for you.
Before this session, do Session 22b Preparation. |
|
7/29 to 8/10:
Catch-up time.
David Mutchler will have limited availability during this time.
|
||
Session 22c, 8/11:
Tkinter III. More GUI objects.
Dictionaries. Attributes are implemented using dictionaries. Sprint 1 continues.
Before this session, do Session 22c Preparation. |
Session 23, 8/13:
Protocols.
Application: Robot speech (via IR). Sprint 1 continues.
Before this session, do Session 23 Preparation.
|
Session 24, 8/15:
Application: Image processing.
Sprint 1 ends, Sprint 2 begins.
Before this test, do Session 24 Preparation.
|
Session 25, 8/18:
Application: Multiple threads and processes.
Sprint 2 continues.
Before this test, do Session 25 Preparation.
|
Session 26, 8/20:
Nested Loops II: More complicated loops within loops.
Finite state machines: Application to more complicated logic. Looping patterns: Summary II. Sprint 2 continues.
Before this session, do Session 26 Preparation.
|
Session 27, 8/22:
More practice at integrating code.
Sprint 2 ends. Sprint 3 begins.
Before this session, do Session 27 Preparation.
|
Session 28, 8/25:
Work on project.
Sprint 3 continues.
Before this session, do Session 28 Preparation. |
Session 29, 8/27:
Work on project.
Test 4 practice. Sprint 3 continues.
Before this session, do Session 29 Preparation. |
Session 30, after you return to Rose-Hulman for the fall term:
Sprint 3 ends.
Demonstrate your project to your instructor.
At Rose-Hulman,
with your teammates, at times TBD.
Test 4.
At Rose-Hulman, at times TBD.
You MUST have completed Session29_Test4Practice
(including its paper-and-pencil exercise)
BEFORE you take Test 4.
It is your ADMISSION TICKET to the test.
Talk to your instructor if that poses a problem for you.
Before this session, do Session 30 Preparation. |