CSSE120 – Introduction to Software Development, Robotics

Spring 2010-11 (a.k.a. 201130)

Schedule Overview

Homework assigned at one session is due at the beginning of the next session. Exception: While you should strive to complete homework assigned Thursday by Friday, it will be accepted without penalty until Monday at 5 p.m..

Also note that future homework assignments are tentative based on previous course offerings. We may change assigned homework at any time before it is given. Schedule subject to change.

Schedule last updated Thu May 12.

Session quick links:  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

Week Session Prep HW Due Topics Resources Milestones
1

1

Tue Mar 8

 
  • Introduction: Students, assistants and instructor
  • Introduction: Course, computer science, software development
  • Introduction: Eclipse (IDE, Interactive Development Environment) and Subversion (SVN, version control)
  • Introduction: Python (our programming language)
  • The input/compute/output pattern: chaos.py
  • Slides: Introduction to the Course, Eclipse and Python
 
1

2

Thu Mar 10

  • Zelle, §1.3, 1.5–2.4
  • Basic program structure
  • The input/compute/output pattern
  • Defining functions without parameters
  • Printing versus returning a value
  • Constructing objects
  • Using objects: dot notation for methods and instance variables
  • zellegraphics as an example of constructing and using objects
  • Robots — introduction to physical properties of the iRobot Create
 
1

3

Fri Mar 11

  • Zelle, §2.5–2.8
  • HW 2
    But accepted without penalty until Monday at 5 p.m. (as usual for homework assigned on Thursday)
  • Formal parameters and actual arguments
  • Pair Programming
  • Robots — introduction to the Create class for programming the iRobot Create
 
2

4

Tue Mar 15

  • Zelle, §3.1–3.3
  • Review and Practice at topics we have covered
  • Practice at functions with parameters that return values, and calling them with actual arguments
  • Variables and assignment
  • Introduction to using a debugger
  • Counted Loops, including the range function
  • Accumulator loops
  • Slides: Loops — Counted and Accumulator
 
2

5

Thu Mar 17

  • Zelle, Chapter 4
    BUT much of Chapter 4 has details that you should just skim,
  • Note that our zellegraphics package replaces the author's graphics package
  • Types
  • Sequences (especially Lists)
  • Slides: Objects — constructing, applying methods, referencing instance variables (aka fields)
 
2

6

Fri Mar 18

  • Zelle, §3.4–3.6
  • HW 5
    But accepted without penalty until Monday at 5 p.m. (as usual for homework assigned on Thursday)
  • Practice: Loops Counted loops and Accumulator loops
  • Practice: Objects Constructing, applying methods, referencing instance variables (aka fields)
  • Practice: Robots Constructing, applying methods, using in functions
  • Robots: getting sensor input
  • No slides today
 
3

7

Tue Mar 22

  • Zelle, §5.1–5.3, and §5.6. Also review §2.6.
  • Strings: String operations. Lists and strings. String encoding. String formatting.
  • Processing files
  • Writing simple functions
  • Functions calling other functions.
  • No slides today
 
3

8

Thu Mar 24

  • Sections 5.6-5.10
    20 pages
  • 4.1-4.9
    (36 pages, BUT much of Chapter 4 has details that you should just skim,
  • Note that our zellegraphics package replaces the author's graphics package.
  • Using a Debugger
  • Introduction to Objects and object-based programming
  • Graphics
  • Animation
  • Slides: Sequences — Lists, Strings, Tuples
 
3

9

Fri Mar 25

  • Chapter 6
    (26 pages)
  • HW 8
    But accepted without penalty until next Monday at 5 p.m. (as usual for homework assigned on Thursday)
  • Review Functions: Defining, calling, returning values.
  • Optional parameters
  • Returning more than one value from a function
  • Mutators — Mutation of parameters
  • Practice, including debugging
  • Slides: Sequences and Robots
 
4

10

Tue Mar 29

  • Chapter 7
    (26 pages)
  • Exam 1 topics
  • Decision structures (if statements)
  • Boolean constants and variables (a.k.a. flags)
  • Boolean operators: and, or, not
  • Slides: Exam 1 preview, Decision structures (if .. elif .. else), Files
 
4

11

Thu Mar 31

  • Chapter 8
    (26 pages)
  • Prepare for Exam 1
  • Exam 1 is MONDAY EVENING, 4/4/2011
  • OPTIONAL review session during regular daytime class session today (Thursday)
  • Slides While loops, Exam 1 advice
 
4

12

Fri Apr 1

 
  • The software engineering process, including specification, analysis, design, implementation, and testing
  • Exam 1 is MONDAY EVENING, 4/4/2011
  • OPTIONAL review session Sunday evening, 7 p.m. to 9 p.m., in Moench F-217 (CSSE lab)
  • Bring to the exam:
    • Laptop, including power adapter and network cable
    • Cheat Sheet (one 8.5 by 11 page, back and front, handwritten or printed), for the On-Paper part
    • Any printed or handwritten materials you want, for the On-the-Computer part
Exam 1
is MONDAY EVENING
4/4/2011

7 p.m. to 9 p.m.

(but you may start as early as 6 p.m. and continue as late as 11 p.m.)
SectionRoom
1 (6th-7th periods)O257
2 (8th-9th periods)O259
5

13

Tue Apr 5

  • 9.1-9.2
    (6 pages)
  • Loop patterns for input
  • The max-min loop pattern
  • The wait-for-event loop pattern
  • Structure charts
  • Robot line following
 
5

14

Thu Apr 7

  • 9.3
    (13 pages)
  • Nested loops
  • Mutators and Box-and-Pointer Diagrams
  • Robot Line Following
 
5

15

Fri Apr 8

  • 9.4-9.6
    (13 pages)
  • HW 14
    But accepted without penalty until Monday at 5 p.m. (as usual for homework assigned on Thursday)
  • Top-Down design -- Blackjack exericise
  • Bottom-up testing
 
6

16

Tue Apr 12

  • None
  • None
  • Python project: Sharing Secrets
 
6

17

Thu Apr 14

  • None
  • Continuing Sprint 1 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
6

18

Fri Apr 15

  • None
  • Continuing Sprint 1 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
7

19

Tue Apr 26

  • None
  • Sprint 1 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
7

20

Thu Apr 28

  • None
  • Continuing Sprint 2 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
7

21

Fri Apr 29

  • None
  • Continuing Sprint 2 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
8

22

Tue May 3

  • None
  • Sprint 2 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
8

23

Thu May 5

  • None
  • Continuing Sprint 3 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
8

24

Fri May 6

  • None
  • Continuing Sprint 3 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
 
9

25

Tue May 10

  • None
  • Sprint 3 of your Python project: SharingSecrets
  • Python project: Sharing Secrets
Exam 2
is WEDNESDAY or THURSDAY EVENING (your choice)
5/11/2011 or 5/12/2011

7 p.m. to 9 p.m.

(but you may continue as late as 10 p.m.)
SectionRoom
1 (6th-7th periods)O269
2 (8th-9th periods)O257
9

26

Thu May 12

 
  • Introduction to the C Programming Language
  • Some Python-esque features of C
  • Essential C (a good reference source for C, if you feel the need for a reference)
 
9

27

Fri May 13

  • HW 26 is to be completed before class today:
    Projects from previous session: Session25_C_NestedLoops and Session25_C_FunctionCalls
  • Structures, including #typedef and #define
  • Pointers in C, especially using pointers to implement mutators
  • Essential C (a good reference source for C, if you feel the need for a reference)
 
10

28

Tue May 17

  • HW 27 is to be completed before class today:
    Projects from previous session: Session27_C_Structures and Session27_C_Pointers
  • Arrays (but no dynamic allocation)
  • Arrays are Pointers
  • 2D arrays
  • File input/output
  • Introduction to the Ascii Art Project
  • Essential C (a good reference source for C, if you feel the need for a reference)
 
10

29

Thu May 19

  • Do the following BEFORE class today (Thursday).
  • Do this Take-home Quiz while watching the following videos.
  • (5:44) Char Concepts [local] [slides]
  • (7:42) Worked example: Counting Chars [local] [slides]
  • (14:27) String Concepts [local] [slides]
  • (6:17) Worked example: String Length [local] [slides]
  • (14:58) Optional worked example: First Word [local] [slides]
  • (10:34) Optional worked example: Camel Case [local] [slides]
  • HW 28 is to be completed before class today:
    Project from previous session: Arrays.
    Ascii Art project: Read, make a design, and do significant coding of the Ascii Art Project.
    It is due before you go to bed Saturday night.
  • Essential C (a good reference source for C, if you feel the need for a reference)
 
10

30

Fri May 20

  • Do the following BEFORE class today (Friday).
  • Do this Take-home Quiz while watching the following videos.
  • (12:52) Calculate Average [local] [slides]
  • HW 29 is to be completed before class today:
    Project from the previous session: StringFunctions
    Finish most (if not all) of the Ascii Art Project
    It is due before you go to bed Saturday night.
  • Introduction to dynamic allocation of memory
  • Course evaluations
  • Final exam review
  • Continue working on the Ascii Art Project if you have not yet completed it
  • Essential C (a good reference source for C, if you feel the need for a reference)
Final Exam: Wednesday (5/25) afternoon
1 p.m. to 5 p.m.
SectionRoom
01 (6th-7th periods)O267
02 (8th-9th periods)O269