Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 CIS 700 Programming & Problem Solving Fall 2013

2 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

3 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

4 Q: “What is Computer Science?” A: The study of algorithms. Or, algorithmic problem-solving.

5 Create Implement Analyze Communicate

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

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

8 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 c lass meeting time for discussion, interaction, and directed guidance

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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!)

17 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

18 Questions?

19 Problem #1: Organisms

20 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

21 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

22 Problem #2: Mosquitoes

23 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

24 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

25 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

26 Problem #4 (possible): Cats & Dogs

27 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?

28 Problem #4 (possible): Airplanes

29 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

30 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

31 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


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

Similar presentations


Ads by Google