Top Banner
CIS 700 Programming & Problem Solving Fall 2013
31

CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Dec 17, 2015

Download

Documents

Barbara Brooks
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

CIS 700Programming & Problem Solving

Fall 2013

Page 2: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Instruction Staff

• Instructor: Chris Murphy– PhD Computer Science, Columbia Univ– Seven years professional experience– cdmurphy @ seas.upenn.edu

• TA: Anne Foster– Second-year MCIT student– anfoster @ seas.upenn.edu

Page 3: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Programming & Problem Solving

• Originally offered as a seminar course by Donald Knuth at Stanford

• Later taught by Stanford alum at Columbia Univ, NYU, etc.

• This is the fourth offering here at Penn

Page 4: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Q: “What is Computer Science?”

A: The study of algorithms.

Or, algorithmic problem-solving.

Page 5: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Create

Implement

Analyze

Communicate

Page 6: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Computer Science is an activity

in which we create, implement,analyze, and communicate

solutions to algorithmic problems.

Page 7: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Educational Objectives• Emphasize four aspects of problem

solving in Computer Science– Create an approach (algorithm)– Implement a solution (programming)– Analyze the results (understanding behavior)– Communicate so that others may understand

• Along the way, you may learn something about Java, graph theory, AI, analyzing algorithmic complexity, organizing a technical paper, working in groups, etc.

Page 8: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Educational Approach

• Problem-Based Learning (PBL)– Learn by doing something, not by listening to

someone else talk about it

– Work on a problem and then use class meeting time for discussion, interaction, and directed guidance

Page 9: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problems (“Projects”)• Generally consist of programming the

behavior (“intelligence”) of an actor (“agent”) in some sort of simulation

• There are no “right” solutions!• You may want to pursue a solution that is

good in the general case• You may instead want to pursue a solution

that is best in very specific cases

• Most important that you explore, implement, understand, and communicate a solution

Page 10: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Starting a Problem Cycle• Each cycle starts with an introduction of the

problem and addressing any clarification issues• A simulator will be provided to you (so that you

can implement the “agent”) and we will discuss the API that you will use

• Then we create groups of 2 students – You can’t work with the same person more than once

• The deliverable for the next class meeting will be discussed, as well as metrics for measuring how “good” a solution is

Page 11: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Class Meetings

• Some deliverable is due at the start of every class meeting

• Each class meeting will consist of short demos by each group and a discussion of their progress

• We will agree upon further deliverables as a group and modify the project definition, restrictions, assumptions, etc. as needed

Page 12: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Class Participation• Every group is expected to show

measurable progress at every class meeting

• Every student is expected to contribute to the group discussions

• Attendance is essentially mandatory!– If you miss more than two class meetings, you

will be asked to drop the course

Page 13: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Finishing a Problem Cycle• Each problem cycle should last around

three weeks

• If we feel that we are not making progress as a group, we may move on to the next one a bit earlier than planned

• At the end of the cycle, the TA will run a final simulation of all groups’ submissions and will post the results

Page 14: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Final Deliverable

• After the final simulation, you will write a report in which you describe your solution(s) to the problem and analyze the results of the simulation

• On the final class meeting for a problem cycle, each group will present their results to the class

Page 15: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Course Grading: Tentative

• Quality of your solutions to each problem (70% of grade)– Based on final report and analysis

• Individual contribution to group project (15%)– As evaluated by your teammates

• Individual contribution to class discussion (15%)– As evaluated by the instruction staff

Page 16: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Admission to the Course

• Enrollment is strictly limited to 20 students

• If you’re still interested by the time this class meeting is over and have not registered, please speak to me

• Students may not audit or sit in (sorry!)

Page 17: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Course Pre-requisites

• Proficient in Java (at least two years)

• Recommended:– Some Algorithms course: 320; 502– Some AI or ML course: 391; 520, 521

• You also should have experience working in groups, preferably in some sort of leadership role

Page 18: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Questions?

Page 19: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #1: Organisms

Page 20: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #1: Organisms

• Organisms live in a world in which they can eat, move, or reproduce

• Food appears and grows randomly

• Goal: implement a behavior such that your species survives the longest

• We will have variations in which there are multiple species in the world simultaneously

Page 21: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #1: Logistics

• Sept 3: Introduce problem, install simulator, form teams, etc.

• Sept 20ish: submit final implementation

• Sept 24: Final presentations

• Sept 26: Final report due

Page 22: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #2: Mosquitoes

Page 23: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #2: Mosquitoes

• Move lights around a “world” to try to attract mosquitoes and then bring them to a collector

• Obstacles in the world mean you need to do some planning

• Goal: collect all mosquitoes as quickly as possible

Page 24: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #2: Logistics

• Sept 26: Introduce problem, etc.

• Oct 8: Class canceled!

• Oct 18ish: submit final implementation

• Oct 22: Final presentations

• Oct 24: Final report due

Page 25: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #3: TBA

• This will be a new problem not previously used in CIS 700

• Oct 24: Introduce problem, etc.

• Nov 8ish: submit final implementation

• Nov 12: Final presentations

• Nov 14: Final report due

Page 26: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #4 (possible): Cats & Dogs

Page 27: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #4 (possible): Cats & Dogs

• 2-player game in which there are 4 cats and 45 dogs on a 7x7 grid

• Principle of Unequal Forces: players have different rules for moving and different goals for winning

• Minimax is an obvious approach: but is it better to spend time on your heuristic, or looking farther ahead?

Page 28: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #4 (possible): Airplanes

Page 29: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #4 (possible): Airplanes

• Given a flight manifest of origins, destinations, and departure times, come up with a plan to get all planes to their destinations as quickly as possible

• Planes may not come within a certain distance of each other

• Planes move at a constant velocity

• Planes can only turn by a certain amount per time step

Page 30: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

Problem #4: Logistics

• Nov 14: Introduce problem, etc.

• Nov 28: Happy Thanksgiving!

• Dec 6ish: submit final implementation

• Dec 10: Final presentations

• Dec 12ish: Final report due

Page 31: CIS 700 Programming & Problem Solving Fall 2013. Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional.

For Next Time…

• If you have not yet registered but are interested, please talk to me soon

• If you’re on board, please bring a laptop with Eclipse (preferably Java 7) installed to the next class

• Next class meeting: LEVINE 307