a course on programming and problem...
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/3.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/4.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022051913/600395da5aaa091c170e5b64/html5/thumbnails/18.jpg)
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