On Teaching Introductory Programming Abhiram Ranade.

Slides:



Advertisements
Similar presentations
My Experiences At the Learning Zone By: Patricia Mosqueda.
Advertisements

Giving a Presentation. Preparation Objectives Limitations Main Points Beginning Middle End Review & Revise Visuals.
New Mexico Computer Science For All
Recursion. Recursion is a powerful technique for thinking about a process It can be used to simulate a loop, or for many other kinds of applications In.
1 RUNNING a CLASS (2) Pertemuan Matakuliah: G0454/Class Management & Education Media Tahun: 2006.
Dr. Heidi Hansen Dr. Glen Richgels Bemidji State University.
Fundamentals of Computer Science Lecture 14: Recursion Instructor: Evan Korth New York University.
Fundamentals of Computer Science Lecture 14: Recursion Instructor: Evan Korth New York University.
1 Overview of Class #10 Comments, questions? Multiplication: concept of multiplication and its main interpretations and models; multiplication algorithm.
CS 206 Introduction to Computer Science II 10 / 01 / 2008 Instructor: Michael Eckmann.
CS 206 Introduction to Computer Science II 10 / 14 / 2009 Instructor: Michael Eckmann.
CS10 The Beauty and Joy of Computing Lecture #1 Welcome; Abstraction At CES 2011 in Vegas, companies showed lots of tablets and internet TV.
Overview Discrete Mathematics and Its Applications Baojian Hua
Overview Discrete Mathematics and Its Applications Baojian Hua
PROFESSIONALDEVELOPMET PROGRAMME PROGRAMME 14 April 2011.
©2003 Pearson Education, Inc., publishing as Longman Publishers. Study Skills Topic 6 Learning Styles & Teaching Styles PowerPoint by JoAnn Yaworski.
FUNDAMENTALS OF PRACTICAL COMPUTING Ken ChurchFUNDAMENTALS OF PRACTICAL COMPUTING Ken Church Intended audience: – Students considering a major.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Computer Math AP Computer Science Computer Programming.
Platforms for Learning in Computer Science July 28, 2005.
Introduction to Computational Thinking Vicky Chen.
Learning Styles and Time Management. Goals for Today: Help students understand how they learn and effective strategies for academic success. Objectives:
CSC1401: Introductory Programming Steve Cooper
CS 101: Arrays Abhiram Ranade. Computers manipulate many objects Given the position, masses, and velocities of all stars, where will they be after the.
Media Computing Instructor Byung Kim Olsen 231 Office hours – MWF 9:00-10:00 AM or by appointment.
Recursion Opening Discussion zWhat did we talk about last class? zDo you have any questions about the assignment? zWhat is a recursive function?
Supplementary materials
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Presenter’s Guide to Multiple Representations in the Teaching of Mathematics – Part 1 By Guillermo Mendieta Author of Pictorial Mathematics
CS 101: Introduction to computer programming and utilization Abhiram Ranade.
Learning Styles Sara Grady Matt Birtel Michael Saks.
ALGORITHM CHAPTER 8. Chapter Outlines and Objectives  Define an algorithm and relate it to problem solving.  Define three construct and describe their.
CAP4730: Computational Structures in Computer Graphics Course Introduction.
What are some challenges ELL students face? Think of your content area ELL challenge!
Using Alice in an introductory programming course for non-CS majors Adelaida A. Medlock Department of Computer Science Drexel University
Melissa Nelson EDU 521 Fall First Grade Standards Whole Class KWLLearning Centers Small Groups Math : Determine and compare sets of pennies.
Computer Science Made Easy? J. Philip East Computer Science Department University of Northern Iowa Some students want to explore computer.
CS 345 – Software Engineering Nancy Harris ISAT/CS 217
SC Introduction to Programming Lecture 1: 5 th May 2003.
A Puzzle for You. Puzzle Someone is working for you for 7 days You have a gold bar, which is segmented into 7 pieces, but they are all CONNECTED You have.
How the Session Works Outline Practical on arrival Talk 1 Reflect on practical Clarify concepts Practical exercises at your own pace Talk 2: Further concepts.
Overview of Differentiating Instruction Fdlrs-South Cynthia Magnus.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
CS 161 Computer Science I Andrew Scholer
Visual C++ Programming: Concepts and Projects Chapter 10A: Recursion (Concepts)
Progression in KS3/4 Algorithms MONDAY 30 TH NOVEMBER SUE SENTANCE.
Unit 3, Chapters: 5, 6, 8 Amanda Lewis. Chapter 5: The Curriculum- Selecting & Setting Learning Expectations 1.Defining Curriculum and Instruction 2.Planning.
Background Level: P2 Topic: Jobs Task: Students write about their dream job Language Focus: Vocabulary: Jobs – people who help us Use the simple present.
Getting Started With Python Brendan Routledge
Introduction to the course Aug 30, Day 1 Object-oriented Programming thru Video Games TIDE 1840 Harry Howard Tulane University.
MS. NANCY HARRIS LECTURER, DEPARTMENT OF COMPUTER SCIENCE CS 149 – Programming Fundamentals (Accelerated)
Programming Languages Dan Grossman 2013
Teaching students to think like scientists
CREATE - ASSESSMENT LEVEL GRADE CREATE: Your final Game design.
Analysis and Comparison is ICS4U
Learning Styles & Teaching Styles
Staff and student experience of flipped teaching
Planning for Social Studies Instruction
Math Standards Math 120—Algorithms for Arithmetic
From Big Ideas to Lesson Plans
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Last Class We Covered Asymptotic Analysis Run “time” Big O
Math Standards Math 120—Algorithms for Arithmetic
CS 2530 Intermediate Computing Dr. Schafer
How to Stay Organized in an Online Class
Introduction to Algorithm and its Complexity Lecture 1: 18 slides
CMPT 102 Introduction to Scientific Computer Programming
CMPT 120 Lecture 15 – Unit 3 – Graphics and Animation
CMPT 120 Lecture 18 – Unit 3 – Graphics and Animation
Presentation transcript:

On Teaching Introductory Programming Abhiram Ranade

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

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

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

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.

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!

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!”.

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, Newton’s method for finding roots.

Turtle Geometry + Graphics (contd) Class heirarchy: Shape Line PolygonCircle Turtle

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.

Theme 2: Begin with a problem Every lecture begins with a problem:e 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..”

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...

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

Cool Algorithms Newton’s 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” ==> very elegant, short code for computing shortest paths –Students feel they are improving their math!

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.

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.

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.