CSSE120 – Introduction to Software Development (Robotics sections)

Winter 2011-2012 (a.k.a. 201220)

Schedule Overview

Due dates Programming problems at one session are due at the beginning of the next session.
  • Exception: Programming problems assigned Thursday may be turned in any time before Monday at 8 a.m.
All other work assigned at one session is due at the beginning of the next session.

 

Schedule last updated Fri Jan 13.

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 Topics HW Due HW Assigned Resources
1

1

Tue Nov 29

Details
  • What it means to do:
    • Software Engineering
    • Software development
  • What a program is
  • Some key programming primitives
    • Calling functions
    • Assigning values to variables
    • Loops
    • Defining your own functions
    • Input and output
    • Documentation
  • Introductions to:
    • Eclipse, our IDE (Interactive Developement Environment)
    • Python, our programming language
  • How to use Eclipse to:
    • Execute statements in a Python shell
    • Get a program from a repository
    • Run a program and view its output
    • Edit a program to make it behave differently
 
1

2

Thu Dec 1

Details
  • Expressions
    • Evaluating expressions involving arithmetic
    • Precedence of operators for arithmetic
    • Parentheses in expressions
  • Types: ints, floats and strings
  • Assigning values to variables
  • Input and output
  • Input-compute-output programs
  • Calling functions and capturing returned values
  • Using Eclipse to correct error messages
1

3

Fri Dec 2

Details
  • Classes and Objects
    • Constructing objects
    • Calling methods
    • Using instance variables
  • zellegraphics as an application of using objects
  • Counted loops and range expressions
2

4

Tue Dec 6

Details
  • Defining your own functions with:
    • parameters
    • returned values
    Why to do so. How to do so.
2

5

Thu Dec 8

Details
  • Conditionals (if and if-else)
  • The Accumulator Pattern applied to:
    • Summing
    • Counting
    • Graphics applications
    • Robot navigation applications
  • Coding to a specification, design by contract, functions for testing
  • The Create robots as an application of using objects
  • Practice at everything so far
2

6

Fri Dec 9

Details
  • Conditionals
  • Accumulator patterns: Summing, counting
 
3

7

Tue Dec 13

Details
  • Sequences (iterators): Lists and Strings
  • Accumulator patterns with sequences
 
3

8

Thu Dec 15

Details
  • Mutators
    • What does it mean to mutate an object?
    • What are references (pointers)?
    • What really happens when a function is called
  • Tuples
  • Exam 1 (in-class, date may change)
 
3

9

Fri Dec 16

Details
  • WHILE loops
  • The wait-for-event pattern
    • And robot applications thereof
 
4

10

Tue Dec 20

Details
  • String processing
  • File processing
 
4

11

Thu Jan 5

Details
  • Top-down design
 
4

12

Fri Jan 6

Details
  • Divide and conquer for coding
  • Coding independently of teammates
 
5

13

Tue Jan 10

Details
  • Project Kickoff
  • Teaming
  • Integrating your code with teammates' code
  • Software development processes
 
5

14

Thu Jan 12

Details
  • Event-driven programming
  • GUI (graphical user interface) programming
  • Defining your own class to bundle data
 
5

15

Fri Jan 13

Details
  • Teaming, revisited
 
6

16

Tue Jan 17

Details
  • Sprint 1 ends
  • More GUI programming
 
6

17

Thu Jan 19

Details
  • Nested loops
  • Sequences of sequences
 
6

18

Fri Jan 20

Details
  • Project time
 
7

19

Tue Jan 24

Details
  • Sprint 2 ends
 
7

20

Thu Jan 26

Details
  • Project time
 
7

21

Fri Jan 27

Details
  • Exam 3 (evening exam)
 
8

22

Tue Jan 31

Details
  • Sprint 3 ends
 
8

23

Thu Feb 2

Details
  • Introduction to the C programming language
    • input and output
    • arithmetic expressions
    • loops (FOR and WHILE)
    • types
    • functions: calling and defining
 
8

24

Fri Feb 3

Details
  • C: Structures
 
9

25

Tue Feb 7

Details
  • C: Pointers
 
9

26

Thu Feb 9

Details
  • C: Arrays and their relationship to pointers
 
9

27

Fri Feb 10

Details
  • C: Two-dimensional arrays
  • Ascii Art project kickoff
 
10

28

Tue Feb 14

Details
  • C: File input and output
  • C: Strings
 
10

29

Thu Feb 16

Details
  • C: Dynamic memory allocation
 
10

30

Fri Feb 17

Details
  • Ascii Art project is due
  • None.