CSSE 120
Introduction to Software Development (Robotics)
Winter, 2013-2014 (aka 201420)
| Mondays | Wednesdays | Fridays |
|---|---|---|
| Session 1, 12/2:
Introduction.
Before this session, do Session 1 Preparation. |
Session 2, 12/4:
Input-Compute-Output. Coding to a specification. 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 1 to 2 hours to do this important work. |
Session 3, 12/6:
Counted loops.
Objects. Application: Graphics. Before this session, do Session 3 Preparation. |
| Session 4, 12/9:
Functions and Parameters.
Accumulators: Summing. Unit testing. Writing simple tests. Test-first development. Debugging techniques, Part 1: The debugger. Before this session, do Session 4 Preparation. |
Session 5, 12/11:
Conditionals, Part 1: if, if-else, if-elif...
Pair programming. Application: Robots I, Making a robot move. Before this session, do Session 5 Preparation. |
Session 6, 12/13:
Accumulators: Counting, Graphical Patterns.
Writing good unit tests. Before this session, do Session 6 Preparation. |
| Session 7, 12/16:
Debugging techniques, Part 2.
Test 1 Practice. Before this session, do Session 7 Preparation. |
Session 8, 12/18:
Waiting for Events.
Indefinite Loops. Application: Robots II, Using sensors. Before this session, do Session 8 Preparation. |
Test 1:
Thursday 12/19, 7 to 9:30 p.m. (EVENING exam)
Session 9, 12/20:
Class is cancelled because of the Thursday evening exam.
Rooms: Section 01(G-310), 02(G-313), 03(G-315), 04(G-317). Covers all to date except the waiting-for-event pattern and indefinite loops. Before this test, do Session 9 Preparation. 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. |
| No class, 1/6: Classes cancelled because of snow storm. | Session 10, 1/8:
Sequences.
Iterating through sequences. Before this session, do Session 10 Preparation. |
Session 11, 1/10:
Patterns for sequences.
Building sequences. Iterative enhancement. Debugging techniques, Part 3. Before this session, do Session 11 Preparation. |
| Session 12, 1/13:
Procedural decomposition.
Application: Robots III, applying procedural decomposition. Before this session, do Session 12 Preparation. |
Session 13, 1/15:
Conditionals, Part 2: logical operators, nested conditionals.
Application: String processing. Before this session, do Session 13 Preparation. |
Session 14, 1/17:
Test 2 practice. Before this session, do Session 14 Preparation. |
| Session 15, 1/20:
String methods, formatting strings for output, more exam practice
Before this session, do Session 15 Preparation. |
||
|
Test 2:
Tuesday 1/21, 7 to 9:30 p.m. (EVENING exam)
Rooms: Section 01(G-310), 02(G-313), 03(G-315), 04(G-317).
Covers all to date.
|
||
| Note: To re-synchronize our numbering in light of the Snow Day earlier this term, we will refer to the Tuesday evening Test 2 as “Session 16” even though it is not a regular session. | Session 17, 1/22:
Classes, Part 1: defining a class.
Defining constructors, fields, methods. What “self” means. Before this session, do Session 17 Preparation. |
Session 18, 1/24:
Defining classes, Part 2.
More practice on: Defining constructors, fields, methods. What “self” means. Inheritance. Before this session, do Session 18 Preparation. |
| Session 19, 1/27:
Defining classes, Part 3.
More practice on: Defining constructors, fields, methods. What “self” means. Multiple implementations of the same interface. Before this session, do Session 19 Preparation. |
Session 20, 1/29:
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 20 Preparation.
|
Session 21, 1/31:
Classes, Part 4: Designing your own classes.
UML Class Diagrams. IS-A and HAS-A.
How to divide up and later integrate work: Integration testing. Tkinter II. Using classes for shared data. Teaming II: roles. Project planning at the beginning of a sprint. Sprint 0 ends, Sprint 1 begins.
Before this session, do Session 21 Preparation.
|
| Session 22, 2/3:
Tkinter III. More GUI objects.
Work on project. Sprint 1 continues.
Before this session, do Session 22 Preparation.
|
Session 23, 2/5:
Dictionaries.
Before this session, do Session 23 Preparation.
Test 3 ** CANCELLED **:
Sprint 1 continues.
|
Session 24, 2/7:
Application: File I/O.
Exceptions and try/except. Application: Robot speech (via IR). Sprint 1 ends, Sprint 2 begins.
Sprint 1 demonstrations (15 minutes, some in-class, some out of class).
Before this session, do Session 24 Preparation.
|
| Session 25, 2/10:
Application: Image processing.
Application: Multiple threads and processes. Sprint 2 continues.
Before this test, do Session 25 Preparation.
|
Session 26, 2/12:
Nested Loops.
Sequences of sequences. Sprint 2 continues.
Before this session, do Session 26 Preparation.
|
Session 27, 2/14:
Sprint 2 ends. Sprint 3 begins.
Sprint 2 demonstrations (15 minutes, some in-class, some out of class).
Before this session, do Session 27 Preparation.
|
| Session 28, 2/17:
Work on project.
Sprint 3 continues.
Before this session, do Session 28 Preparation. |
Session 29, 2/19:
Work on project.
Final Exam Practice begins.
Sprint 3 ends Wednesday evening at 11:59 p.m.
Before this session, do Session 29 Preparation.
Project due:
Wednesday 2/19, at 11:59 p.m.
Reminder: update your feature and task lists to reflect the end of Sprint 3.
|
Session 30, 2/21:
Final Exam Practice continues.
Before this session, do Session 30 Preparation.
Demonstrate your project to your instructor:
45 minutes, Thursday or Friday, times TBD.
|
|
Final Exam:
Day and time and place TBD.
|
||