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

CSSE 120
Introduction to Software Development (Robotics)

Fall, 2013-2014 (aka 201410)

What to do, When

Mondays Thursdays Fridays
Classes have not begun yet! Session 1, 9/5: Introduction.
Before this session, do Session 1 Preparation.
Session 2, 9/6: 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, 9/9: Counted loops.
Objects.
Application: Graphics.

Before this session, do Session 3 Preparation.
Session 4, 9/12: 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, 9/13: 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, 9/16: Accumulators: Counting, Graphical Patterns.
Writing good unit tests.

Before this session, do Session 6 Preparation.
Session 7, 9/19: Debugging techniques, Part 2.
Test 1 Practice.

Before this session, do Session 7 Preparation.
Session 8, 9/20: Waiting for Events.
Indefinite Loops.
Application: Robots II, Using sensors.

Before this session, do Session 8 Preparation.
Session 9, 9/23: Optional review for Test 1.
Test 1: Wednesday 9/25 evening, 7 to 9 p.m.
(so NOT Monday, NOT daytime.) Rooms:
Section 01(Olin 157), 02(Olin 159), 03(Olin 167), 04(Olin 169).

Covers all to date except the waiting-for-event pattern and indefinite loops.

Before this test, do Session 9 Preparation.

Session 10, 9/26: Sequences.
Iterating through sequences.

Before this session, do Session 10 Preparation.

Because the exam is Wednesday evening and this prep must be done before Thursday, we recommend that you do the Session 10 prep on Monday or Tuesday.
Session 11, 9/27: Patterns for sequences.
Building sequences.
Iterative enhancement.
Debugging techniques, Part 3.

Before this session, do Session 11 Preparation.
Session 12, 9/30: Procedural decomposition.
Application: Robots III, applying procedural decomposition.

Before this session, do Session 12 Preparation.
Session 13, 10/3: Conditionals, Part 2: logical operators, nested conditionals.
Application: String processing.

Before this session, do Session 13 Preparation.
Session 14, 10/4:
Test 2 practice.

Before this session, do Session 14 Preparation.
Session 15, 10/7: String methods, formatting strings for output, more exam practice
Before this session, do Session 15 Preparation.
Session 16, 10/10: Classes, Part 1: defining a class.
Defining constructors, fields, methods. What “self” means.

Before this session, do Session 16 Preparation.
Session 17, 10/11: Class is cancelled because of Thursday night exam. There is no required preparation for this session.
Test 2:  Thursday 10/10 evening, 7 to 9 p.m. (so NOT daytime.) Sections and rooms:  01-G313, 02-G315, 03-G317, 04-G310.

Covers all material through Session 14.

Session 18, 10/14: Defining classes, Part 2.
More practice on: Defining constructors, fields, methods. What “self” means.
Inheritance.

Before this session, do Session 18 Preparation.
No class — Fall break No class — Fall break
Session 19, 10/21: 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, 10/24: 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, 10/25: 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, 10/28: Tkinter III. More GUI objects.
Test 3 Practice.
Sprint 1 continues.
Before this session, do Session 22 Preparation.
Session 23, 10/31: Dictionaries.
Application: File I/O.
Exceptions and try/except.
Application: Robot speech (via IR).
Sprint 1 continues.
Before this session, do Session 23 Preparation.
Session 24, 11/1: No class. However, your team must meet sometime Friday to end Sprint 1 and begin Sprint 2.
Sprint 1 ends, Sprint 2 begins.
Before this session, do Session 24 Preparation.
Test 3: Wednesday 10/30 evening, 7 to 9 p.m. (so NOT daytime.) Rooms:
Section 01(Olin 157), 02(Olin 159), 03(Olin 167), 04(Olin 169).

Covers all through and including Session 22, but with nothing on robots. Emphasizes: implementing classes and simple event-driven programming with tkinter.

Session 25, 11/4: Application: Image processing.
Application: Multiple threads and processes.
Sprint 1 demonstrations (15 minutes, some in-class, some out of class).
Sprint 2 continues.
Before this test, do Session 25 Preparation.
Session 26, 11/7: Sprint 2 demonstrations (15 minutes, some in-class, some out of class).
Sprint 2 ends. Sprint 3 begins.
Before this session, do Session 26 Preparation.
Session 27, 11/8: Nested Loops.
Sequences of sequences.
Sprint 3 continues.
Before this session, do Session 27 Preparation.
Session 28, 11/11: Work on project.
Sprint 3 continues.

Before this session, do Session 28 Preparation.
Session 29, 11/14: Final Exam Practice begins.
Sprint 3 demonstrations (30 minutes, most in-class Thursday or Friday, a few out of class at times TBD).
Sprint 3 ended at 11:59 p.m. the night before this session.

Before this session, do Session 29 Preparation.
Session 30, 11/15: Final Exam Practice continues.
Sprint 3 demonstrations (30 minutes, most in-class Thursday or Friday, a few out of class at times TBD).

Before this session, do Session 30 Preparation.
Project due: Wednesday, November 13, at 11:59 p.m.  Code committed after that time will not be graded.
Don't forget to update your feature list and task list for the end of Sprint 3
Demonstrate your project to your instructor. Thursday, 11/14 or  Friday, 11/15. 30 minute demonstration.
You will focus on you showing your instructor your project's working features.   You should also be prepared to explain details of your code, and the general ideas of your team members' code.  Each of you should know how to demonstrate all features of the project.  This is not a "formal presentation"; Does not require you to "dress up". 
Final Exam: Wednesday 11/20, 6 to 10 p.m. Rooms: Section 01-O267, 02-O269, 03-O257, 04-O259.

Resources

Human (and other) Help