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

Slides:



Advertisements
Similar presentations
CS 858 – Hot Topics in Computer and Communications Security Fall 2010 Introduction.
Advertisements

 Communication:  Provide context, e.g., s …  TA Office hour for next Tuesday: CANCELLED  My name is: ??  Show  Scores on-line, Quiz-1 results.
Lecture 1: Overview CMSC 201 Computer Science 1 (Prof. Chang version)
Department of Intelligent Computer Systems University of Malta Finding Literature, Taking Notes, and Giving a Presentation Dr. Chris Staff
CompSci Recursion & Minimax Playing Against the Computer Recursion & the Minimax Algorithm Key to Acing Computer Science If you understand everything,
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
General information CSE 230 : Introduction to Software Engineering
CEP Welcome September 1, Matthew J. Koehler September 1, 2005CEP Cognition and Technology Who’s Who?  Team up with someone you don’t.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
Intelligent Pac-Man Ghost AI
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
HONORS THESIS INFO SESSION (updated) April 1, 2014 Professor Thies, Director of Undergraduate Studies Professor Frasure-Yokley, Honors Program Director.
Kick-off meeting EL2421, Automatic Control, Project Course.
1 UTeach Professional Development Courses. 2 UTS Step 1 Early exposure to classroom environment (can be as early as a student’s first semester)
BIT 115: Introduction To Programming1 Sit in front of a computer Log in –Username: 230class –password: –domain: student Bring up the course web.
ST-CS Introduction to Web Interface Design Fall 2010 Dr. Angela Guercio ( Course Web.
Math 119 ELEMENTARY STATISTICS. Contact Information INSTRUCTOR: Olga Pilipets INSTRUCTOR: Olga Pilipets
EECE 310 Software Engineering Lecture 0: Course Orientation.
LRNA 95 / PSME 95 Fridays 2:30pm-4:15pm Diana Alves de Lima Doli Bambhania Today’s special guests: Melissa Aguilar, Yuan Kuo Sign in on the attendance.
1 General Introduction CPRE 416-Software Evolution and Maintenance-Lecture 1.
Xx-341: Communication in Groups &Organizations Robert Kraut HCII/Tepper NSH 3515 Office hours – after class & send
CIS 499 Senior Seminar Introduction to IT project management.
Review of Course Approach and Assignment on Class Discussions These slides from session 1 of the class and can be found on the class website.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
ICS 6B Boolean Logic and Algebra Fall 2015
Introduction to Data Structures
Welcome!! CIT 593 Intro to Computer Systems aka “Introduction to Computer Architecture” Fall 2012.
Math 105: Problem Solving in Mathematics
Introduction to CS Senior Design Project I / II Prof. Dr. H. Altay Güvenir.
CIS 4930/6930: Systems Security Instructor: Xinming “Simon” Ou TA: Xiaolong “Daniel” Wang Class time: MW 2-3:15 1.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Introduction.
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
Course Purpose and Approach. Course Purpose This course is designed to help students apply the principles of Business Process Management (BPM) to improve.
Most of contents are provided by the website Introduction TJTSD66: Advanced Topics in Social Media Dr.
The Evolution of Peer Assisted Learning at Penn State, University Park.
Introduction to Management
CSE8A: Introduction to Programming in Java Fall 2012 Prof. Christine Alvarado cse8afall.weebly.com.
WELCOME to CS244 Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin -
What is an IPRC? Regulation 181/98 of Education Act
BME 110L / BIOL 181L Computational Biology Tools Introductory Remarks and Overview - who - why - what - how Logistics.
Quoridor and Artificial Intelligence
CSCE 1030 Computer Science 1 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
CS 139 – Algorithm Development MS. NANCY HARRIS LECTURER, DEPARTMENT OF COMPUTER SCIENCE.
Classroom logistics and practices PROGRAMMING FUNDAMENTALS.
CS 4620 Intelligent Systems. What we want to do today Course introductions Make sure you know the schedule for the next three weeks.
Algorithms CS280 – 10/20/05. Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We.
Requirement Engineering
CM220 College Composition II Friday, January 29, Unit 1: Introduction to Effective Academic and Professional Writing Unit 1 Lori Martindale, Instructor.
Introduction to Management
Data Structures and Algorithms in Java AlaaEddin 2012.
Welcome to Survey of Social Problems! “When solving problems, dig at the roots instead of just hacking at the leaves.” (Anthony J. D’Angelo) There is Audio!
CompSci Recursion & Minimax Recursion & the Minimax Algorithm Key to Acing Computer Science If you understand everything, ace your computer science.
TU-C2040 Strategy Fieldwork Marco Clemente Natalia Vuori.
Welcome to Introduction to Psychology! Let’s share a bit about where we are all from…
Computer Network Fundamentals CNT4007C
Computer Networks CNT5106C
Introduction to CS Senior Design Project I / II
Introduction to CS Senior Design Project I / II
Introduction to CS Senior Design Project I / II
Utilizing Modeling Instruction & Standards Based Grading
Modeling Instruction in Science Classrooms
CS 139 – Programming Fundamentals
Modeling Instruction in Science Classrooms
Automata and Formal Languages
Introduction to CS Senior Design Project I / II
Course Introduction Data Visualization & Exploration – COMPSCI 590
Presentation transcript:

CIS 700 Programming & Problem Solving Fall 2013

Instruction Staff Instructor: Chris Murphy –PhD Computer Science, Columbia Univ –Seven years professional experience seas.upenn.edu TA: Anne Foster –Second-year MCIT student seas.upenn.edu

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

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

Create Implement Analyze Communicate

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

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.

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

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

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

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

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

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

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

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

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

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

Questions?

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

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

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

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

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

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?

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

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

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