Woman engineer drawing UML diagram on glass Students using Create robots in CSSE 120

CSSE 120
Introduction to Software Development (Robotics)

Winter, 2013-2014 (aka 201420)

What to do, When

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)
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.

Session 9, 12/20: Class is cancelled because of the Thursday evening exam.
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.
Before this test, do Session 16 Preparation.

 
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.

Resources

Human (and other) Help