Updates to UW CSE's 142143 Courses - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Updates to UW CSE's 142143 Courses

Description:

CSE143 (CS2) switched to Java in Fall, 2001 ... Focus remains on programming fundamentals, not Java language or libraries per se ... – PowerPoint PPT presentation

Number of Views:179
Avg rating:3.0/5.0
Slides: 21
Provided by: halpe
Category:
Tags: cse | courses | perse | updates

less

Transcript and Presenter's Notes

Title: Updates to UW CSE's 142143 Courses


1
Updates to UW CSE's142/143 Courses
  • Craig Chambers
  • UW CSE
  • (Planned and executed withHal Perkins, Ben
    Dugan, and Martin Dickey)

2
Quick Summary
  • Revisions to UW CSE intro courses
  • CSE142 (CS1) switched to Java in Summer, 2001
  • CSE143 (CS2) switched to Java in Fall, 2001
  • C version of CSE143 also offered through Winter
    2002, then no more
  • Not just about Java other improvements to both
    courses

3
Outline
  • Motivation
  • Overview of changes
  • CSE 142 content (in some detail)
  • CSE 143 content (briefly)
  • Textbooks, programming tools
  • Open issues

4
Problems with old 142/3 versions
  • C C are complicated unsafe
  • Pointers are particularly nasty
  • No interesting data structures in 142
  • Objects/classes delayed until middle of 143
  • Programming environments are complicated
  • Too much focus on detail
  • Skewed view of programming and CS?

5
Changes
  • Switched to Java for both courses
  • Smaller, cleaner, safer language
  • Extensive, portable libraries
  • Simple programming environments available
  • Focus remains on programming fundamentals, not
    Java language or libraries per se
  • Java enables us to teach the fundamentals better,
    without distractions or complications

6
CSE 142
  • Use objects from the beginning
  • Allows interesting data structures throughout
  • Supports a view of programming as building new
    things from existing things
  • Most of the usual topics are still covered
  • Conditionals, loops, functions, variables, arrays
    (sequences), classes (i.e., structs or records)

7
In more detail
  • Start with using some existing objects
  • Used our home-grown library of graphical shape
    objects that can be added (drawn on) windows
  • Nice immediate feedback for students
  • Use Jeva a simple Java command-line interpreter

8
  • Then build new classes from existing classes
  • Composite shape classes,e.g., House, Tree,
    Landscape
  • Instance variables, constructors, methods,
    parameter passing, returns
  • Use BlueJ a simple development environment

9
  • Then do conditionals, console I/O
  • Draw decision trees
  • Use home-grown Input class
  • Inputting and analyzing weather data
  • Then do assignment state change
  • BankAccount class

10
  • Then introduce collections
  • Use ArrayList
  • Store weather data in a list
  • Then introduce iteration over collections
  • Use Iterators and while loops, initially
  • Use indexing and for loops, later
  • Draw flow charts

11
  • Then introduce interfaces and interface
    inheritance
  • Home-grown animation frameworkStage class,
    Actor interface, Prop interface
  • Examples asteroid field, quaking landscape, gas
    particle simulation

12
  • Then teach other collections
  • Arrays a lower-level variation on ArrayList
  • HashMaps a different kind of collection
  • Then teach collections of collections
  • Includes multidimensional arrays
  • Board games

13
  • Other possible topics
  • Exceptions
  • Some algorithms, e.g. searching sorting

14
Some Philosophy
  • Teach uniformly reference-based data model
  • Use primitive data, but describe like objects
  • Mention "warts" late
  • Avoid static methods, wrapper classes
  • Use only classes with real instance variables
  • No code inheritance
  • Interface inheritance late, for animations

15
CSE 143
  • Main topics
  • Object-oriented programming, specifications
  • Data structures, algorithms, complexity
  • Recursive functions and data
  • Streams, networks
  • Exceptions
  • Builds on framework from CSE 142
  • No language, environment, or paradigm transition
    needed
  • Basics of classes, methods, heap data already
    learned

16
Textbooks
  • CSE 142
  • An Introduction to Programming in Java, Ben
    Dugan, course notes required
  • Introduction to Computer Science via Software
    Development in Java, David Riley, Addison Wesley
    recommended
  • CSE 143
  • An Introduction to Programming and
    Object-Oriented Design using Java, Jaime Nino
    and Frederick Hosch, Wiley required
  • Probably replacing Riley with Nino in 142 too

17
Programming Tools
  • Jeva interpreter, from MIT
  • Easy to get started a sandbox
  • Good for experimenting with messages, expression,
    and statement evaluation
  • Cannot define classes no debugger
  • BlueJ editor, compiler, debugger, from Monash
    University
  • No interpreter

18
UW Resources
  • Regular CSE 142/143 web sites
  • Slides, outlines, course software, materials from
    previous quarters
  • Source code for slides and course software
    available upon request

19
Some Issues
  • Learn programming at a higher level of
    abstraction where do students learn lower-level
    programming knowledge?
  • Lower-level data, pointer, memory model
  • A later course using C or C
  • How do students with prior programming background
    enter the UW CSE 142/143 sequence?

20
Conclusion
  • Switch to Java enables us to
  • focus on important programming ideas
  • avoid distracting detail and complexity
  • instill a higher-level approach to thinking about
    programming
  • Still a work in progress
Write a Comment
User Comments (0)
About PowerShow.com