Back to Basics in CS1 and CS2 - PowerPoint PPT Presentation

About This Presentation
Title:

Back to Basics in CS1 and CS2

Description:

Title: Back to Basics in CS1 and CS2 Author: Stuart Reges User Last modified by: Stuart Reges User Created Date: 3/2/2006 2:30:37 AM Document presentation format – PowerPoint PPT presentation

Number of Views:221
Avg rating:3.0/5.0
Slides: 15
Provided by: StuartRe9
Category:
Tags: back | basics | cs1 | cs2 | junit

less

Transcript and Presenter's Notes

Title: Back to Basics in CS1 and CS2


1
Back to Basicsin CS1 and CS2
  • Stuart Reges
  • University of Washington

2
In a Nutshell
  • Major redesign of the CS1/CS2 courses at the
    University of Washington
  • New CS1 emphasizes procedural programming,
    objects later
  • New CS2 includes OOP concepts and traditional
    concepts (recursion, linked lists, binary trees)
    with a collections theme
  • Student satisfaction up enrollment up female
    admissions up

3
  • I used to believe
  • Programs with sophisticated graphics and GUIs
    would be more fun for CS1 students than console
    and file based programs
  • I found
  • They were often less fun
  • I now believe
  • Students enjoy writing complete programs
  • Students prefer standard Java
  • Graphics gets old fast
  • Our sophisticated programs are fairly crude
  • The problem solving challenge is more important
    than surface appearance

4
  • Confession I have them write a program that
    produces this (console output, ascii art)
  • /\
  • //\\
  • ///\\\
  • ////\\\\
  • /////\\\\\
  • ../\..../\..
  • ./\/\../\/\.
  • /\/\/\/\/\/\
  • \/\/\/\/\/\/
  • .\/\/..\/\/.
  • ..\/....\/..
  • \/\/\/\/\/\/
  • .\/\/..\/\/.
  • ..\/....\/..
  • ../\..../\..

5
  • I used to believe
  • I could teach object oriented design in CS1
    instead of procedural design
  • I found
  • Java objects involve a lot of syntactic detail
  • There are no 50-100 line programs where OOD helps
  • Many object based assignments end up being paint
    by numbers rather than problem solving
  • Many students dont get the object concept
  • I now believe
  • A large number of mid-level students who can
    master procedural concepts (loops, conditionals,
    methods, parameters, arrays) struggle with the
    object concept
  • Therefore, it is better to start with procedural
    programming if you have a broad audience

6
Confession I have my students write code like
this (with static methods) public class
DrawFigure public static final int
SUB_HEIGHT 3 public static void
main(String args) drawLine()
drawTop() drawBottom()
drawLine() // Produces a solid line
public static void drawLine()
System.out.print("") for (int column
1 column lt (2 SUB_HEIGHT) column)
System.out.print("-")
System.out.println("") ...
7
A few more CS1 details
  • Students use objects early, define them later
  • We use a custom DrawingPanel to explore objects
    (Graphics, Color, )
  • Scanner is helpful for console and file input
  • while (input.hasNextLine())
  • String text input.nextLine()
  • Scanner data new Scanner(text)
  • ltprocess datagt
  • Input files make programs interesting

8
Some objections
  • Stuart is guilty of crimes against Java
  • Ive been in trouble before
  • Why not a procedural language like Python for
    CS1?
  • Were using Java in CS2 and switching languages
    is tough for mid-level students
  • Why do you have to use the s-word so much?
  • Procedural Object Oriented Programming is a
    slippery slope (look what it spells)

9
A few words about CS2
  • Eliminated some useful but less fundamental
    topics (GUIs, junit testing, javadoc, streams)
  • Brought back emphasis on fundamentals (recursion,
    linked lists, binary trees) including recursive
    backtracking
  • Less emphasis on OO design, but basic OO concepts
    included (encapsulation, inheritance, interfaces)
    including a client view of data structures
  • Collections framework as a case study

10
Results student satisfaction
Question C Mean Old Java Mean New Java Mean
The course as a whole was 3.71 3.30 4.06
The course content was 3.71 3.40 4.01
The instructors contribution to the course was 3.82 3.42 4.43
The instructors effectiveness in teaching the subject matter was 3.70 3.20 4.35
11
Results CS1 enrollment
12
Results female admission
13
Conclusions
  • New courses are working for us
  • Impossible to tell which changes have helped the
    most
  • Too early to infer long-term trend (particularly
    with female admission)
  • We serve as an existence proof that back to
    basics can work

14
For more information
  • http//www.cs.washington.edu/homes/reges
  • Building Java Programs by Stuart Reges and Marty
    Stepp, Addison Wesley, expected early 2007
Write a Comment
User Comments (0)
About PowerShow.com