1 Introduction to Computing and Algorithms 3 rd lecture and RRM (Required Reading Material) More on Algorithms Once an algorithm for performing a certain.

Slides:



Advertisements
Similar presentations
IB Portfolio Tasks 20% of final grade
Advertisements

Project Analysis Course ( ) Final Project Report Overview.
1 CS 446 – Tutorial 6 Frid. Nov. 6 th, 2009 Implementation Tutorial.
Lecture 6: Software Design (Part I)
Algorithms An algorithm is a finite sequence of instructions, logic, an explicit step-by-step procedure for solving a problem. Specific algorithms sometimes.
PROBLEM SOLVING TECHNIQUES
CHAPTER 2 GC101 Program’s algorithm 1. COMMUNICATING WITH A COMPUTER  Programming languages bridge the gap between human thought processes and computer.
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Chapter 3: Modules, Hierarchy Charts, and Documentation
How Are Algorithms Developed?
Chapter 2: Modularization
Algorithms and Problem Solving
Computer Programming Rattapoom Waranusast Department of Electrical and Computer Engineering Faculty of Engineering, Naresuan University.
Damian Gordon.  This module is concerned with program design skills, with particular reference to using flowcharts, pseudocode and programming language.
Detailed Design Kenneth M. Anderson Lecture 21
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Chapter 2: Algorithm Discovery and Design
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
introduction to MSc projects
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
PRE-PROGRAMMING PHASE
Computational Thinking Related Efforts. CS Principles – Big Ideas  Computing is a creative human activity that engenders innovation and promotes exploration.
Fundamentals of C programming
Semantic Web Technologies Lecture # 2 Faculty of Computer Science, IBA.
C OMPUTER P ROGRAMMING 1 Introduction to Programming.
IT 499 Bachelor Capstone Week 9.
Introduction to Programming Lecture Number:. What is Programming Programming is to instruct the computer on what it has to do in a language that the computer.
An ordered sequence of unambiguous and well-defined instructions that performs some task and halts in finite time Let's examine the four parts of this.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
IT 499 Bachelor Capstone Week 8. Adgenda Administrative Review UNIT Seven UNIT Eight Project UNIT Nine Preview Project Status Summary.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
An Intelligent Analyzer and Understander of English Yorick Wilks 1975, ACM.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
1 Introduction to Software Engineering Lecture 1.
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
The Next Generation Science Standards: 4. Science and Engineering Practices Professor Michael Wysession Department of Earth and Planetary Sciences Washington.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
ALGORITHM List of instructions for carrying out some process step by step. A sequence of instructions which has a clear meaning and can performed with.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
EFFECTIVE WRITING 8 Readability. Writing - time and resource consuming, stressful process Texts have a strong tendency of using more complex, more sophisticated.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
Environmental Systems and Society Internal Assessment.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Flowchart. a diagram of the sequence of movements or actions of people or things involved in a complex system or activity. a graphical representation.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
STEP 3- DEVELOP AN ALGORITHM At this stage we break down the problem into simple manageable steps so that they can be handled easily.
Chapter 6 Guidelines for Modelling. 1. The Modelling Process 1. Modelling as a Transformation Process 2. Basic Modelling Activities 3. Types of Modelling.
Progression in KS3/4 Algorithms MONDAY 30 TH NOVEMBER SUE SENTANCE.
M253 Students Study Guide Mrs. Fatheya Al Mubarak – AOU Dammam.
CMSC 104, L041 Algorithms, Part 1 of 3 Topics Definition of an Algorithm Example: The Euclidean Algorithm Syntax versus Semantics Reading Sections 3.1.
Part of the Mathematics glossary: An algorithm (pronounced AL-go-rith-um) is a procedure or formula for solving a problem. The word derives from the name.
Algorithms and Problem Solving
Pseudocode and comments
Algorithms, Part 1 of 3 The First step in the programming process
Topic: Introduction to Computing Science and Programming + Algorithm
ECE361 Engineering Practice
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Algorithm and Ambiguity
Lecture 2 Introduction to Programming
Introduction to Computer Programming
Algorithms and Problem Solving
Pseudocode and comments
Presentation transcript:

1 Introduction to Computing and Algorithms 3 rd lecture and RRM (Required Reading Material) More on Algorithms Once an algorithm for performing a certain task has been found, the performance of that task no longer requires an understanding of the principles on which the algorithm is based Instead the performance of that task is reduced to the process of merely following directions The intelligence required to do that task is encoded in the algorithm The level of intelligence displayed by the machine is limited by the intelligence that can be conveyed through algorithms.

2 More on Algorithms Explanation of previous slide is as follows… Only if we can find an algorithm that directs a performance of a task can we construct a machine to perform that task In turn if no algorithm exists for performing that task then the performance of that task lies beyond the capabilities of machines

3 Some Questions Answered What is the role of algorithm designer? They should have the ability to capture and convey intelligence by means of algorithms. Only then can machines display intelligent behaviour So why are algorithms so important in computing? Major undertaking through out the computing field is the development of algorithms because they impart intelligence to the machine to perform a specific task. It is for this reason that considerable part of CS is concerned with issues relating to Algorithms. How are algorithms discovered in the first place? To discover an algorithm for solving a problem is essentially to discover a solution for the problem. This heavily relies on areas such as psychology of problem solving and theories of education.

4 What happens once an algorithm has been discovered? The next step is to represent the algorithm so that it can be communicated to the machine or to other humans How is the algorithm communicated to the machine? The conceptual algorithm must be transformed into clear set of instructions and these instructions must be represented in an unambiguous manner. Note More on Algorithm Representation later…

5 Algorithm Representation RRM (slide 5 to 11) There is a distinction betweeb Algorithm and its Representation. –A distinction that is analogous to that between a story and a book –Story is abstract or conceptual- book is a physical representation of the story –If a book is translated into another language or republished in another format…does the story change? –Can this example be applied to Algorithms? In context of distinguishing between Algorithm and its Representation, we must clarify the distinction between 2 other related concepts –Programs –Processes Program: –is a representation of an Algorithm, infact computer sciencetists use the term program to refer to a formal representation of an algorithm designed for a computer application. –Is merely a static set of directions Note : RRM is required reading material i-e mandatory reading for all students. Please read this before coming to the next class.

6 Process: –The activity of executing a program –This is a dynamic activity whose properties changes as time progress –The process encompasses the current state of the activity called program state –This state includes the current position in the program being executed –Roughly speaking the process state is the snapshot of the machine at that time. –At different times during the execution of a program(at different times in a process) different snapshots(different process states will be observed) –More on this when we do operating systems. –Concluding that processes, algorithms and programs are distinct yet related entities. Algorithms can be expressed in many kinds of notation, including –Natural Languagesatural Languages –PseudocodePseudocode –Flowchartslowcharts –Programming Languagesrogramming Languages

7 Natural Languagesatural Languages Can algorithms be represented in Natural Languages? Natural language expressions of algorithms tend to be verbose and ambiguous, and are rarely used for complex or technical algorithms PseudocodePseudocode & Flowcharts Pseudocode and flowcharts are structured ways to express algorithms that avoid many of the ambiguities common in natural language statements, while remaining independent of a particular implementation language Note More on pseudocode and flowchart later… Programming Languagesrogramming Languages Programming languages are primarily intended for expressing algorithms in a form that can be executed by a computer, but are often used as a way to define or document algorithms.computer

8 Introduction to Pseudocode Pseudocode is a compact and informal high-level description of a computer programming algorithm that uses the structural conventions of some programming languagecomputer programmingalgorithmprogramming language It is intended for human reading rather than machine reading. Pseudo-code typically omits details that are not essential for human understanding of the algorithm, such as variable declarations, system-specific code and subroutines variable declarationssubroutines Note: intricate details (e-g variable declarations etc) to be discussed later The purpose of using pseudocode is that it may be easier for humans to understand than conventional programming language code, and that it may be a compact and environment-independent description of the key principles of an algorithm. It is commonly used in textbooks and scientific publications that are documenting various algorithms, and also in planning of computer program development, for sketching out the structure of the program before the actual coding takes place. No standard for pseudocode syntax exists, as a program in pseudocode is not an executable program Note: Some accepted guidelines of pseudocode will be discussed later Reference:

9 Flow Charts Flowcharts can be thought of as a graphical alternative to pseudocodeFlowcharts A flowchart is a schematic representation of an algorithm or a stepwise process, showing the steps as boxes of various kinds, and their order by connecting these with arrowsschematicalgorithmprocess Flowcharts are used in designing or documenting a process or program More on flowcharts later… Reference:

10 Course Projects Topic- Any Challenging/Innovative/Emerging Area of Computing Scope-Limited i-e research on narrow key areas e-g instead of History of computing machines, research on why 5 th Generation Machines could not be implemented OR What's beyond 5 th Generation Machines? Group Structure-Group comprising of maximum 4 members, each member has to justify their contribution in Abstract, Preliminary Report, Final Report and Presentation Deliverables- –Abstract i-e topic of research and what is that you want to find out (due on 17 th Oct? –Preliminary Report is due on 21 st November –Final Report due date to be announced later –All reports have to be on the format of an IEEE research paper (template will be uploaded) –Final Report has to be spiral bound, and also ed to instructor prior to presentation. Presentation- Make a 15 slide or less presentation to showcase your research. Duration of presentation will be 15 min. Non-adherence to timings will result in loss of credit. All members are required to participate and justify their participation

11 Course Projects Topic- –Some will be suggested in the next class, however you are encouraged to suggest your own. Final approval will be made by instructor –Browse –Use IRC (information resource center) –Review IEEE papers and ACM publications Plagiarism- will be strictly punished. Emphasis on Reference and not Copying –Why IEEE format can be helpful? : Its helpful because it encourages use of reference. No IEEE paper is written without use of substantial references. Make sure the references are both relevant and authentic. –This aspect will be discussed in class Grading –Both Group wise and Individual –Project Grade might be increased from 10 to 15% (will be indicated in the next class) –Note: Please make group and suggest topic to instructor asap because this is going to give you a head-start. –Timeline of project will be strictly observed.