On Teaching Introductory Programming - PowerPoint PPT Presentation

About This Presentation
Title:

On Teaching Introductory Programming

Description:

On Teaching Introductory Programming Abhiram Ranade – PowerPoint PPT presentation

Number of Views:124
Avg rating:3.0/5.0
Slides: 18
Provided by: ar63
Category:

less

Transcript and Presenter's Notes

Title: On Teaching Introductory Programming


1
On Teaching Introductory Programming
  • Abhiram Ranade

2
Background
  • I recently taught the IITB introductory
    programming course, CS 101.
  • 700 students, varying preparation
  • 60 Teaching Assistants
  • Lack of a good textbook
  • All usual teaching related issues content,
    delivery.
  • Report of personal experience.
  • Main focus content and delivery

3
Outline
  • The new student
  • Basic Premises on learning motivation, fun.
  • Course Themes
  • Graphics
  • Every lecture must solve a nice problem
  • Depth helps learning
  • Connect to other disciplines
  • Cool Algorithms/Fun
  • Concluding remarks

4
The New Student
  • Less reverent than 20 years ago
  • More oppressed in school years, expects more
    freedom in college.
  • Wants to know why he/she should learn what is
    being taught
  • Is swayed by immediate gratification.
  • Has many distractions

5
Basic Premises on learning
  • Motivation must be very clear
  • The student must develop ownership of the
    questions being answered in the course
  • Topics must be fun!
  • Beauty vs. Utility? Beauty and utility.

6
Fun
  • Eating ice cream
  • Climbing a mountain
  • Swimming or playing a sport
  • Seeing a movie, natural panorama
  • Seeing a magic show
  • Learning should have all kinds of fun!

7
Fun and programming
  • Sense of accomplishment students should be able
    to do something significant of interest to
    themselves.
  • Should relate CS to other sciences, even life!
  • Should be surprised by cool algorithms. Must be
    occasions of Wow!.

8
Theme 1 Graphics Turtle Geometry
  • Available to students, from lecture 1. Used to
    teach many concepts
  • Notion of program as sequence of instructions.
  • Iteration repeated patterns
  • Recursion recursive patterns
  • Procedures draw_house()
  • Graphical debugging
  • Visualization Trees, Newtons method for finding
    roots.

9
Turtle Geometry Graphics (contd)
  • Class heirarchy

Shape
Polygon
Circle
Line
Turtle
10
Introductory Lecture
  • Traditional Printing Hello world
  • Lots of syntax with little excitement.
  • Instead use graphics package to draw nice
    pictures. Non trivial picture drawing exercises
    from day 1.
  • Lecture 1 sets the tone of the course.

11
Theme 2 Begin with a problem
  • Every lecture begins with a probleme g. we want
    to plot movement of gas particles on the screen.
  • Can we do this using the language we know so far?
    No.
  • Here is a new statement/concept which will help.
  • Not Today we will learn about arrays..

12
Theme 3 Depth helps learning
  • For every concept have
  • good motivating examples
  • discuss implementation, e.g. recursion, pointers
  • interesting programming exercises.
  • Generalization helps learning
  • pointers lists are good, but trees really force
    you to learn!
  • Mix ideas Use graphics to draw out trees
    recursively...

13
Connect to Other Disciplines
  • Newtons method
  • Simulate movement of charged particles
  • Hemachandra (Fibonacci) numbers as they arise in
    counting the number of different possible poetic
    meters of n beats.

14
Cool Algorithms
  • Newtons algorithm
  • Searching trees visualize with turtle moving on
    the screen.
  • Shortest paths good combination of
  • matrix multiplication over , min
  • C supports representation of infinity
    HUGE_VAL gt very elegant, short code for
    computing shortest paths
  • Students feel they are improving their math!

15
Fun!
  • Graphics package includes X windows event loop
    wait for event to happen and based on event do
    whatever.
  • Used by many students to develop video games in
    final project
  • Did not talk about event driven programming,
    listeners etc. because too much syntax.

16
General Remarks
  • Carefully designed lab exercises. TAs graded
    them. Final weightage of labs was less because
    of fear of copying.
  • Students liked assignments and said they helped
    learn.
  • Switched to writing on board (tablet) because of
    student demand. Students said lecture developed
    better than slides.
  • Some students found the course too mathematical.

17
What I would have liked to do but didnt
  • String class examples
  • Assertions, reasoning about programs..
  • STL and algorithms class use.
  • Programming style
  • Debuggers/IDEs.
  • Would have been possible with 3 lectures/week.
Write a Comment
User Comments (0)
About PowerShow.com