CSSE120 – Introduction to Software Development (Robotics sections)

Spring 2011-2012 (a.k.a. 201230)

Schedule Overview

Due dates Homework assigned Tuesday is due at the beginning of class Thursday. Wednesday's are work sessions, with no additional homework assigned on them. Homework assigned Thursday is due the following Monday morning (but try hard to complete any reading by Friday's class time). Homework assigned Friday is due at the beginning of class the following Tuesday.

 

Schedule last updated Tue Apr 17.

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 Mar 6

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 Mar 8

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 Mar 9

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 Mar 13

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

5

Thu Mar 15

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 Mar 16

Details
  • Conditionals
  • Accumulator patterns: Summing, counting
 
3

7

Tue Mar 20

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

8

Thu Mar 22

Details
  • Tuples
  • Accumulator patterns with sequences
 
3

9

Fri Mar 23

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

10

Tue Mar 27

Details
  • Test 1
  • More practice on Sequences
 
4

11

Thu Mar 29

Details
  • Pointers and mutation
    • What does it mean to mutate an object?
    • What are references (pointers)?
    • What really happens when a function is called
 
4

12

Fri Mar 30

Details
  • Nested loops (loops within loops)
 
5

13

Tue Apr 10

Details
  • Top-down design, bottom-up implementation
  • Iterative enhancement
  • Practice at implementing a larger project
 
5

14

Thu Apr 12

Details
  • Practice Project
  • Teaming
  • Divide and conquer for coding
  • Coding independently of teammates
  • Integrating your code with teammates' code
 
5

15

Fri Apr 13

Details
  • Project Kickoff
  • Software development processes, Release Plans
  • Event-driven programming
  • GUI (graphical user interface) programming
  • Teaming, revisited
 
6

16

Tue Apr 17

Details
  • Defining your own class to bundle data
  • More GUI programming
 
6

17

Thu Apr 19

Details
  • Sprint 1 ends
  • Sequences of sequences
 
6

18

Fri Apr 20

Details
  • Practice for Test 2
  • Project time
 
7

19

Tue Apr 24

Details
  • Test 2 (in class)
 
7

20

Thu Apr 26

Details
  • Sprint 2 ends
  • Project time
 
7

21

Fri Apr 27

Details
  • Project time
 
8

22

Tue May 1

Details
  • Exam 3 (evening exam)
 
8

23

Thu May 3

Details
  • Sprint 3 ends at (about) 11 p.m.
  • Project time
 
8

24

Fri May 4

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

25

Tue May 8

Details
  • C: Arrays
 
9

26

Thu May 10

Details
  • C: Structures
 
9

27

Fri May 11

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

28

Tue May 15

Details
  • Pointers
  • Mutation, arrays as pointers
  • C: File input and output
  • C: Strings
 
10

29

Thu May 17

Details
  • C: Dynamic memory allocation
 
10

30

Fri May 18

Details
  • Ascii Art project is due
  • None.