Presentation on theme: "1 Introduction to Computing and Algorithms 3 rd lecture and RRM (Required Reading Material) More on Algorithms Once an algorithm for performing a certain."— 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: http://en.wikipedia.org/wiki/Pseudocodehttp://en.wikipedia.org/wiki/Pseudocode
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:http://en.wikipedia.org/wiki/Flowcharts
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 emailed 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.