cis 700 programming & problem solving fall 2013. instruction staff instructor: chris murphy...

31
CIS 700 Programming & Problem Solving Fall 2013

Upload: barbara-brooks

Post on 17-Dec-2015

214 views

Category:

Documents


2 download

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