a course on programming and problem...

19
A COURSE ON PROGRAMMING AND PROBLEM SOLVING Swapneel Sheth, Chris Murphy , Ken Ross, Dennis Shasha University of Pennsylvania Columbia University New York University http://programming-and-problem-solving.github.io/ 1

Upload: others

Post on 22-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

A COURSE ON PROGRAMMING AND PROBLEM SOLVING

Swapneel Sheth, Chris Murphy, Ken Ross, Dennis Shasha

University of PennsylvaniaColumbia UniversityNew York University

http://programming-and-problem-solving.github.io/1

Page 2: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

PROGRAMMING AND PROBLEM SOLVING

• Originally taught by Donald Knuth at Stanford in the 1970s

• Later taught by Ken Ross at Columbia since 1999

• Taught by Swapneel Sheth and Chris Murphy at Penn since 2013

• Taught by Dennis Shasha at NYU since 2001

2

Page 3: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

• NO exams

• NO homework

• NO (expensive) textbooks

• NO lectures

3

Page 4: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

• 4 open-ended projects

• No “correct”answers

4

Page 5: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

WHAT IS COMPUTER SCIENCE?

Computer Science is an activity in which we create, implement, analyze, and communicate solutions to algorithmic problems

5

Page 6: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

EDUCATIONAL OBJECTIVES• Emphasize four aspects of problem solving:

- Create/Think about an approach (develop intuition, identify algorithms, data structures)

- Implement a solution (programming, reuse and modify code, team collaboration)

- Analyze the results (understand behavior)

- Communicate your solution to others (group discussion, written reports, presentation, incorporate feedback from others)

6

Page 7: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

EDUCATIONAL OBJECTIVES (2)

• Using Bloom’s taxonomy:

- A lot of courses focus on “knowledge” and “comprehension”

- This course focuses on “analysis,” “synthesis,” and “evaluation”

• Problem-Based Learning (PBL)

7

Page 8: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

COURSE DETAILS• Intended Audience

- Upperclassmen and graduate students

- Prerequisites: Data Structures, Algorithms, 2+ years of programming experience

- Recommended: Machine Learning, Artificial Intelligence, etc.

• Class Size and Teams

- 20-30 students; teams of size 3-4

- New teams for each project; two students cannot work together more than once8

Page 9: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

COURSE DETAILS (2)• Course Structure

- 4 projects, roughly 3 weeks each

- Start: introduce problem; provide simulator, GUI, API; team formation

- Students work with their groups outside of class time

- Subsequent Class Meetings: discuss students’ insights and ideas; demonstrate progress; demos; cooperative problem solving

- End: Tournaments run by TA

9

Page 10: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

COURSE DETAILS (3)• Open Source Nature

- Steal other people’s ideas/code!

- But you must attribute/cite it

• Communication and Presentation

- Final report containing details of solution, analysis of approach, overview of implementation, analysis of tournament results

- 10 minute presentation in class

10

Page 11: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

COURSE DETAILS (4)• Evaluation and Grades

- Novelty of Approach

- Correctness, Generality, and Efficiency of the solution

- Thoroughness and Clarity of report and presentation

- Class participation (attendance is mandatory!)

- Peer Evaluations11

Page 12: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

PROBLEM 1 - PARALLEL SOCCER

12

Page 13: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

PROBLEM 2 - ORGANISMS

13

Page 14: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

PROBLEM 3 - GUNSLINGER

14

Page 15: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

PROBLEM 4 - MOSQUITO

15

Page 16: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

DEMO

Page 17: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

OUTCOMES

• The class has been taught 35+ times across 3 institutions by the authors

• More details in the paper

17

Page 18: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

WANT TO ADOPT THIS COURSE?• Recommendations and Advice

- Teaching the class; What makes a good problem?

• Repository of Existing Problems available

- Three different sets of problems maintained at the three institutions

- 85+ problems available

- For all problems - code, GUI, simulators available

18

Page 19: A COURSE ON PROGRAMMING AND PROBLEM SOLVINGprogramming-and-problem-solving.github.io/paper/pps-sigcse2016.pdf · EDUCATIONAL OBJECTIVES • Emphasize four aspects of problem solving:-Create/Think

programming-and-problem-solving.github.io

19