Programming Practicum Day 1: Introduction and Problem Solving Aaron Tan NUS School of Computing.

Slides:



Advertisements
Similar presentations
Algorithms.
Advertisements

A backtrack data structure and algorithm
Standards Alignment A study of alignment between state standards and the ACM K-12 Curriculum.
EXPLORING THE TECHNOLOGY. Teacher Works CD Teacher Resources: Page 12/128 Page 6.
Part2 AI as Representation and Search
Whiteboard Content Sharing Audio Video Text Chat Polls & Recording Meet Now Skype Integration MS Lync 2013 Features, Tools & Tips for facilitators… Limitations.
An Introduction to Programming and Object Oriented Design using Java 2 nd Edition. May 2004 Jaime Niño Frederick Hosch Chapter 0 : Introduction to Object.
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
COMPSCI 125 Spring 2011 Section What is computer science? … the study of the theoretical foundations of information and computation and their implementation.
1 SYS366 Week 1 - Lecture 2 How Businesses Work. 2 Today How Businesses Work What is a System Types of Systems The Role of the Systems Analyst The Programmer/Analyst.
A Peek at Programming or, problem solving in Computer Science Aaron Tan
Breadth-Last Technical Electives: Integrating the CS Core via Computer Games and Mobile Robotics William W. White Southern Illinois University Edwardsville.
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
SOFTWARE ENGINEERING for REAL-TIME SYSTEMS (© J.E.Cooling 2003) Software design - core concepts - slide 1 Software engineering for real-time systems Section.
Conceptual modelling. Overview - what is the aim of the article? ”We build conceptual models in our heads to solve problems in our everyday life”… ”By.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
4 August st Century Computing Curricula 1 Richard J. LeBlanc, Jr. Professor, College of Computing Georgia Institute of Tech nology Atlanta, Georgia,
Introduction to the course January 9, Points to Cover  What is GIS?  GIS and Geographic Information Science  Components of GIS Spatial data.
Introduction to Computers and Programming
ECE 250 Algorithms and Data Structures Douglas Wilhelm Harder, M.Math. LEL Department of Electrical and Computer Engineering University of Waterloo Waterloo,
NCCSAD Advisory Board1 Research Objective Two Alignment Methodologies Diane M. Browder, PhD Claudia Flowers, PhD University of North Carolina at Charlotte.
Lesson 1 Week01.
CSE 3101E Design and Analysis of Algorithms Prof. J. Elder.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
learning development institute AECT-Atlanta-2001: Instructional Strategies in CS 1 11/08/01 The Use of Innovative Strategies in Computer.
Computational Thinking The VT Community web site:
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
CSCI-383 Object-Oriented Programming & Design Lecture 4.
Competence Analysis in the Two-subject Study Program Computer Science Jože Rugelj, Irena Nančovska Šerbec Faculty of Education Univesity of Ljubljana 1Beaver.
Design and Analysis of Algorithms CSC201 Shahid Hussain 1.
Living In the KnowlEdge Society VT, NCA&T, SCU, Villanova Living In the KnowlEdge Society (LIKES) – NC A&T Opening Session North Carolina A & T Santa.
1 1 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 1 April 30, 2008 The World of the Modern Systems.
Introduction to problem solving. Introductory Discussion? What problems are you faced with daily? Do you think a computer can be designed to solve those.
Automata, Computability, and Complexity Lecture 1 Section 0.1 Wed, Aug 22, 2007.
1 Nassau Community CollegeProf. Vincent Costa Acknowledgements: An Introduction to Programming Using Visual Basic 2012, All Rights ReservedAn Introduction.
Fundamentals of Algorithms MCS - 2 Lecture # 1
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
1 Research Thinking and Writing Toolbox Gordana Dodig Crnkovic School of Innovation, Design and Engineering, Mälardalen.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Human Computer Interaction
1 ISA&D29-Oct ISA&D29-Oct-13 Systems Analyst: problem solver IT and Strategic Planning.
1 Research Thinking and Writing Toolbox Gordana Dodig Crnkovic School of Innovation, Design and Engineering, Mälardalen.
Chapter 1 The Product Software is
An Introduction to NETS*S Edmonds School District February 7, 2005.
Volgograd State Technical University Applied Computational Linguistic Society Undergraduate and post-graduate scientific researches under the direction.
Faculty of Sciences and Social Sciences HOPE Structured Problem Solving Week 3: Algorithms Stewart Blakeway FML 213
Introduction to Operations Research. MATH Mathematical Modeling 2 Introduction to Operations Research Operations research/management science –Winston:
Programming Appreciation Camp
College of Computer Science, SCU Computer English Lecture 1 Computer Science Yang Ning 1/46.
The Level-2 Projects for Course Clusters Haojun Sun College of Engineering Shantou University.
Designing Lego Labs Using Lejos and Mindstorms Adapted from Lynn Stein “Radically ReThinking CS1” NSF Workshop.
Victorian Curriculum F–10 Online professional learning session Unpacking Digital Technologies Paula Christophersen Digital Technologies, Curriculum Manager.
New Computer Science Programme at the Department of Informatics Pedro Guerreiro University of Nis, March 24, 2006.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
ICS 3UI - Introduction to Computer Science
Role of the Systems Analyst
Theoretical informatics II
Ch. 11 Theory of Computation
Mapping Skills.
CS 21a: Intro to Computing I
An Introduction to Visual Basic .NET and Program Design
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
D10A Metode Penelitian MP-03: Computing Curricula
Chapter 0 : Introduction to Object Oriented Design
Chapter 1 Introduction(1.1)
Theoretical informatics II
The N-Queens Problem Search The N-Queens Problem Most slides from Milos Hauskrecht.
Theoretical informatics II
Presentation transcript:

Programming Practicum Day 1: Introduction and Problem Solving Aaron Tan NUS School of Computing

2 Contents Why are You here? What is Computer Science? What is Problem Solving? What is Algorithmic Problem Solving? [Programming Practicum, December 2009]

3 Why are You here? What are your objectives? What is your level of programming skills? What you think programming is about? 3 [Programming Practicum, December 2009]

4 What is Computer Science? (1/2) Computing Curricula 2001 (Computer Science) Report identifies 14 knowledge focus groups Applications within and outside of Computing  Discrete Structures (DS)  Programming Fundamentals (PF)  Algorithms and Complexity (AL)  Architecture and Organization (AR)  Operating Systems (OS)  Net-Centric Computing (NC)  Programming Languages (PL)  Human-Computer Interaction (HC)  Graphics and Visual Computing (GV)  Intelligent Systems (IS)  Information Management (IM)  Social and Professional Issues (SP)  Software Engineering (SE)  Computational Science (CN) 4 [Programming Practicum, December 2009]

5 What is Computer Science? (2/2) Some recommended readings  How to Think about Algorithms Jeff Edmonds, Cambridge, 2008  Algorithmics: The Spirit of Computing David Harel, 2 nd ed, Addison-Wesley (3 rd ed. available)  Introduction to Algorithms T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, 2 nd ed, MIT Press  The New Turing Omnibus: 66 Excursions in Computer Science A.K. Dewdney, Holt 5 [Programming Practicum, December 2009]

6 Problem Solving Process (1/5) Analysis Design Implementation Testing Determine the inputs, outputs, and other components of the problem. Description should be sufficiently specific to allow you to solve the problem.

7 Problem Solving Process (2/5) Analysis Design Implementation Testing Describe the components and associated processes for solving the problem. Straightforward and flexible Method – process Object – component and associated methods [Programming Practicum, December 2009]

8 Problem Solving Process (3/5) Analysis Design Implementation Testing Develop solutions for the components and use those components to produce an overall solution. Straightforward and flexible [Programming Practicum, December 2009]

9 Problem Solving Process (4/5) Analysis Design Implementation Testing Test the components individually and collectively. [Programming Practicum, December 2009]

10 Problem Solving Process (5/5) [Programming Practicum, December 2009]

11 Problem Solving Exercises The exercises in the next few slides are of varied nature, chosen to illustrate the extent of general problem solving. Different kinds of questions require different domain knowledge and strategies. Apply your problem solving skills and creativity here! [Programming Practicum, December 2009]

12 Exercise #1: Bear A bear, starting from the point P, walked one mile due south. Then he changed direction and walked one mile due east. Then he turned again to the left and walked one mile due north, and arrived at the point P he started from. What was the colour of the bear? [Programming Practicum, December 2009]

13 Exercise #2: Silver chain A traveller arrives at an inn and intends to stay for a week. He has no money but only a silver chain consisting of 7 links. He uses one link to pay for each day spent at the inn, but the innkeeper agrees to accept no more than one broken link. How should the traveller cut up the chain in order to settle accounts with the innkeeper on a daily basis? [Programming Practicum, December 2009]

14 Exercise #3: Glasses of milk Six glasses are in a row, the first three full of milk, the second three empty. By moving only one glass, can you arrange them so that empty and full glasses alternate? [Programming Practicum, December 2009]

15 Exercise #4: Puzzles What am I?  You can catch me but not throw me.  I go all around the world but stay in the corner.  You throw away the outside and eat the inside. Then you eat the outside and throw away the inside. [Programming Practicum, December 2009]

16 Exercise #5: Mad scientist A mad scientist wishes to make a chain out of plutonium and lead pieces. There is a problem, however. If the scientist places two pieces of plutonium next to each other, BOOM!!! The question is, in how many ways can the scientist safely construct a chain of length n? [Programming Practicum, December 2009]

17 Exercise #6: Dominoes Figure 1 below shows a domino and Figure 2 shows a 4  4 board with the two squares at opposite corners removed. How do you show that it is not possible to cover this board completely with dominoes? All dominoes should lay flat on the board, without overlapping one another, and should not cover area outside the board. Figure 1. A domino. Figure 2. A 4  4 board with 2 corner squares removed.  General case: How do you show the same for an n  n board with the two squares at opposite corners removed, where n is even?  Special case: How do you show the same for an n  n board with the two squares at opposite corners removed, where n is odd? [Programming Practicum, December 2009]

18 Exercise #7: Triominoes Figure 3 below shows a triomino and Figure 4 shows a 4  4 board with a defect (hole) in one square. How do you show that the board can be covered with triominoes?  General case: How do you show that a 2 n  2 n board (where n  1) with a hole in one square (anywhere on the board) can be covered with triominoes? Figure 3. A triomino. Figure 4. A 4  4 board with a hole. [Programming Practicum, December 2009]

19 Algorithmic Problem Solving An algorithm is a well-defined computational procedure consisting of a set of instructions, that takes some value or set of values, as input, and produces some value or set of values, as output. Algorithm InputOutput ExactTerminateEffectiveGeneral [Programming Practicum, December 2009]

20 Task 3: NE-Paths To find the number of north-east paths between any two points. North-east (NE) path: you may only move northward or eastward. How many NE-paths between A and C? C A A A A 20 [Programming Practicum, December 2009]

21 THE END