Free Essay

Algorithms and Programming Languages

In: Computers and Technology

Submitted By umhassan
Words 2277
Pages 10
Chapter 2 Algorithms and Programming Languages


• the central concept underlying all computation is that of the algorithm – an algorithm is a step-by-step sequence of instructions for carrying out some task • programming can be viewed as the process of designing and implementing algorithms that a computer can carry out – a programmer’s job is to: • create an algorithm for accomplishing a given objective, then • translate the individual steps of the algorithm into a programming language that the computer can understand 2

Algorithms in the Real World
• the use of algorithms is not limited to the domain of computing – e.g., recipes for baking cookies – e.g., directions to your house

there are many unfamiliar tasks in life that we could not complete without the aid of instructions – in order for an algorithm to be effective, it must be stated in a manner that its intended executor can understand • a recipe written for a master chef will look different than a recipe written for a college student – as you have already experienced, computers are more demanding with regard to algorithm specifics than any human could be


Designing & Analyzing Algorithms
• 4 steps to solving problems (George Polya) 1. understand the problem 2. devise a plan 3. carry out your plan 4. examine the solution

EXAMPLE: finding the oldest person in a room full of people
Understanding the problem initial condition, goal and assumptions – room full of people – identify the oldest person a person will give their real birthday if two people are born on the same day, they are the same age if there is more than one oldest person, finding any one of them is okay

we will consider 2 different designs for solving this problem 4

Algorithm 1
• Finding the oldest person (algorithm 1)
1. 2. 3. line up all the people along one wall ask the first person to state his or her name and birthday, then write this information down on a piece of paper for each successive person in line: i. ask the person for his or her name and birthday ii. if the stated birthday is earlier than the birthday on the paper, cross out old information and write down the name and birthday of this person

when you reach the end of the line, the name and birthday of the oldest person will be written on the paper


Algorithm 2
• Finding the oldest person (algorithm 2)
1. line up all the people along one wall 2. as long as there is more than one person in the line, repeatedly i. have the people pair up (1st with 2nd, 3rd with 4th, etc) – if there is an odd number of people, the last person will be without a partner ii. ask each pair of people to compare their birthdays iii. request that the younger of the two leave the line when there is only one person left in line, that person is the oldest


Algorithm Analysis
• determining which algorithm is "better" is not always clear cut
– it depends upon what features are most important to you
• • if you want to be sure it works, choose the clearer algorithm if you care about the time or effort required, need to analyze performance

algorithm 1 involves asking each person’s birthday and then comparing it to the birthday written on the page
– – the amount of time to find the oldest person is proportional to the (number of people – 1) if you double the amount of people, the time needed to find the oldest person will also double

algorithm 2 allows you to perform multiple comparisons simultaneously
– the time needed to find the oldest person is proportional to the number of rounds it takes to shrink the line down to one person • which turns out to be the logarithm (base 2) of the number of people if you double the amount of people, the time needed to find the oldest person increases by the cost of one more comparison

the words algorithm and logarithm are similar – do not be confused by this algorithm: a step-by-step sequence of instructions for carrying out a task logarithm: the exponent to which a base is raised to produce a number e.g., 210 = 1024, so log2(1024) = 10


Algorithm Analysis (cont.)
• • when the problem size is large, performance differences can be dramatic for example, assume it takes 5 seconds to compare birthdays – for algorithm 1: • 101 people 5*100 = 500 seconds • 201 people 5*200 = 1000 seconds • 401 people 5*400 = 2000 seconds ... • 1,000,001 people 5*1,000,000 = 5,000,000 seconds – for algorithm 2: • 101 people 5* log2 100  = 35 seconds • 201 people 5* log2 200  = 40 seconds • 401 people 5* log2 400  = 45 seconds ... • 1,000,001 people 5* log2 1,000,000  = 100 seconds

Round up to the next integer

Big-Oh Notation
• To represent an algorithm’s performance in relation to the size of the problem, computer scientists use what is known as Big-Oh notation – executing an O(N) algorithm requires time proportional to the size of problem • given an O(N) algorithm, doubling the problem size doubles the work – executing an O(log N) algorithm requires time proportional to the logarithm of the problem size • given an O(log N) algorithm, doubling the problem size adds a constant amount of work •based on our previous analysis: – algorithm 1 is classified as O(N) – algorithm 2 is O(log N)

Another Algorithm Example
• SEARCHING: a common problem in computer science involves storing and maintaining large amounts of data, and then searching the data for particular values – data storage and retrieval are key to many industry applications – search algorithms are necessary to storing and retrieving data efficiently – e.g., consider searching a large payroll database for a particular record • if the computer selected entries at random, there is no assurance that the particular record will be found • even if the record is found, it is likely to take a large amount of time • a systematic approach assures that a given record will be found, and that it will be found more efficiently • There are two commonly used algorithms for searching a list of items – sequential search – general purpose, but relatively slow – binary search – restricted use, but fast

Sequential Search
• sequential search is an algorithm that involves examining each list item in sequential order until the desired item is found sequential search for finding an item in a list 1. start at the beginning of the list 2. for each item in the list i. examine the item - if that item is the one you are seeking, then you are done ii. if it is not the item you are seeking, then go on to the next item in the list if you reach the end of the list and have not found the item, then it was not in the list • sequential search guarantees that you will find the item if it is in the list – but it is not very practical for very large databases – worst case: you may have to look at every entry in the list. Why? •


Binary Search
• binary search involves continually cutting the desired search list in half until the item is found – the algorithm is only applicable if the list is ordered • e.g., a list of numbers in increasing order • e.g., a list of words in alphabetical order binary search for finding an item in an ordered list 1. initially, the potential range in which the item could occur is the entire list 2. as long as items remain in the potential range and the desired item has not been found, repeatedly i. examine at the middle entry in the potential range ii. if the middle entry is the item you are looking for, then you are done iii. if the middle entry is greater than the desired item, then reduce the potential range to those entries left of the middle iv. if the middle entry is less than the desired item, then reduce the potential range to those entries right of the middle by repeatedly cutting the potential range in half, binary search can done in on the value very quickly

Binary Search Example suppose you have a sorted list of state names, and want to find MD
1. start by examining the middle entry (ND) since ND comes after MD alphabetically, can eliminate it and all entries that appear to the right

2. next, examine the middle of the remaining entries (IA) since IA comes before MD alphabetically, can eliminate it and all entries that appear to the left

3. next, examine the middle of the remaining entries (MD) the desired entry is found

Which state in the list could be located with the fewest number of checks (the easiest)? What about the largest number of checks (the hardest)?


Search Analysis
• sequential search – in the worst case, the item you are looking for is in the last spot in the list (or not in the list at all) • as a result, you will have to inspect and compare every entry in the list – the amount of work required is proportional to the list size sequential search is an O(N) algorithm binary search – in the worst case, you will have to keep halving the list until it gets down to a single entry • each time you inspect/compare an entry, you rule out roughly half the remaining entries – the amount of work required is proportional to the logarithm of the list size binary search is an O(log N) algorithm

imagine searching a phone book of the Malaysian (30 million people) sequential search requires at most 30 million inspections/comparisons binary search requires at most log2(30,000,000) = 25 inspections/comparisons

Another Algorithm Example
• Newton’s Algorithm for finding the square root of N 1. start with an initial approximation of 1 2. as long as the approximation isn’t close enough, repeatedly refine the approximation using the formula: newApproximation = (oldApproximation + N/oldApproximation)/2

example: finding the square root of 1024

algorithm analysis: Newton's Algorithm does converge on the square root because each successive approximation is closer than the previous one generally, the difference between the given approximation and the actual square root is roughly cut in half by each successive refinement demonstrates O(log N) behavior What would happen if you tried to further refine the square root?

Programming Languages
• programming is all about designing and coding algorithms for solving problems – the intended executor = computer or a program executing on that computer – instructions are written in programming languages which are extraordinarily specific the level of precision to write programs can be frustrating to beginner

Machine Languages
• the first programming languages were known as machine languages – a machine language consists of instructions that correspond directly to the hardware operations of a particular machine • i.e., instructions deal directly with the computer’s physical components including main memory, registers, memory cells in CPU • programming in machine language is tedious and error prone • Eg. Add 1 to the value in register 3…0110011001000011…

High-Level Languages
• in the early 1950’s, assembly languages evolved from machine languages
– – an assembly language substitutes words for binary codes much easier to remember and use words, but still a low level of abstraction (instructions correspond to hardware operations)

in the late 1950's, high-level languages were introduced
– – – high-level languages allow the programmer to write code closer to the way humans think (as opposed to mimicking hardware operations) a much more natural way to solve problems plus, programs are machine independent

two high level languages that perform the same task (in JavaScript and C++)


Program Translation
• using a high-level language, the programmer is able to reason at a high-level of abstraction
– but programs must still be translated into machine language that the computer hardware can understand/execute

• there are two standard approaches to program translation
– – interpretation compilation

•real-world analogy: translating a speech from one language to another
– an interpreter can be used provide a real-time translation
• • • the interpreter hears a phrase, translates, and immediately speaks the translation ADVANTAGE: the translation is immediate DISADVANTAGE: if you want to hear the speech again, must interpret all over again

a translator (or compiler) translates the entire speech offline
• • • the translator takes a copy of the entire speech and translate ADVANTAGE: once translated, it can be read over and over very quickly DISADVANTAGE: must wait for the entire speech to be translated


Speech Translation

Translator (compiler):


• for program translation, the interpretation approach relies on a program known as an interpreter to translate and execute high-level statements
– – the interpreter reads one high-level statement at a time, immediately translating and executing the statement before processing the next one JavaScript is an interpreted language


• the compilation approach relies on a program known as a compiler to translate the entire highlevel language program into its equivalent machine-language instructions
– – the resulting machine-language program can be executed directly on the computer most languages used for the development of commercial software employ the compilation technique (C, C++)


Interpreters and Compilers
• trade-offs between interpretation and compilation • interpreter – produces results almost immediately – particularly useful for dynamic, interactive features of web pages – program executes more slowly (slight delay between the execution of statements) • compiler – produces machine-language program that can run directly on the underlying hardware – program runs very fast after compilation – must compile the entire program before execution – used in large software applications when speed is of the utmost importance

Similar Documents

Free Essay

C Language

...UNIT 1 NOTES Digital Computer A digital computer is an electronic computing machine that uses the binary digits (bits) 0 and 1 to represent all forms of information internally in digital form. Every computer has a set of instructions that define the basic functions it can perform. Sequences of these instructions. Component of Digital Computer: (1)CPU: The Central Processing Unit (CPU) or the processor is the portion of a computer system that carries out the instructions of a Computer, and is the primary element carrying out the computer's functions. This term has been in use in the computer industry at least since the early 1960s . The form, design and implementation of CPUs have changed dramatically since the earliest examples, but their fundamental operation remains much the same. (2)ALU: an arithmetic logic unit (ALU) is a Digital computer that performs arthimatic and logical operations. The ALU is a fundamental building block of the central processing unit(CPU) of a computer, and even the simplest microprocessor contain one for purposes such as maintaining timers. The processors found inside modern CPUs and graphics processing units(CPU) accommodate very powerful and very complex ALUs; a single component may contain a number of ALUs. Mathematician proposed the ALU concept in 1945, when he wrote a report on the foundations for a new computer called the EDVAC. (3)Memory: memory is an organism's ability to store, retain, and recall information. Traditional studies of......

Words: 2515 - Pages: 11

Free Essay

Challenges for Multicore Programming

...| Challenges for multicore programming | In 1965, Gordon E. Moore, co­founder and chairman emeritus of Intel Corporation made an observation that “the number of transistors placed inexpensively on integrated circuit will double approximately every two years”. This simple observation led to Moore’s Law, which has held true till recent times. Around 2004, single CPU clock speed scale ups hit what is today know as the “power wall”, when further power consumption and clock speed improvements became impossible. The problem at 90nm of silicon was that transistor gates became too thin to prevent current from leaking out into the substrate. None of the new technologies after 2004 has re-enabled anything like the scaling in the 90s. From 2007 to 2011, maximum CPU clock speed (with Turbo Mode enabled) rose from 2.93GHz to 3.9GHz, an increase of 33%. From 1994 to 1998, CPU clock speeds rose by 300%. CPU manufactures hence were forced to shift towards increasing processor count per die. Most processors today have at least 4 cores, while the higher end machines commonly have 16 cores or more. This brought in the era of multicore computing. However, increasing the number of cores does not necessarily mean faster processing. The software written for the multi core computers of today must be able to utilize the additional processing power resident in the extra cores. Today’s software therefore has to be written for multicore computers, and sequential modes of computation in software......

Words: 1388 - Pages: 6

Free Essay


...8.0 PROGRAMMING 8.1.1 Definition Program : Programming Language: 8.1 Introduction to Programming Prepared by : Pn. Marzita Ismail (SC Unit) a series of instructions that directs a computer to perform tasks. A set of words, abbreviations, and symbol that enables a programmer to communicate instructions to a computer Eg: Java, C++, Fortran, Cobol, C 8.1.2 Types of Programming Language: 1) Low Level Programming Language • • Why Low Level? : Because it is designed closer to the hardware Machine Language (1st Generation) Assembly Language (2nd Generation) Made up of instructions written in binary code (0 and 1). • Written in mnemonics, more English-like code; codes shorter than The only language that is directly understood by the machine languages computer. Does not need any translator program. • Need to be translated by assembler into machine language before it can be executed by the computer. Machine dependent (written for particular • Machine dependent (written for particular computer and has computer and has to be changed for using on a Describe/what is/ explain/characteristic • different computer). Example of coding to be changed for using on a different computer). Advantages • • Execution speed is very fast. (It does not require any translation because machine language is directly understood by CPU) Translation free (Computer understands only the machine language) Program written in machine language are very lengthy Machine dependent......

Words: 1038 - Pages: 5

Free Essay

Info Tech

...2. ALGORITHMS, FLOWCHARTS, DATA TYPES AND PSEUDOCODE 2.1 ALGORITHMS The term algorithm originally referred to any computation performed via a set of rules applied to numbers written in decimal form. The word is derived from the phonetic pronunciation of the last name of Abu Ja'far Mohammed ibn Musa al-Khowarizmi, who was an Arabic mathematician who invented a set of rules for performing the four basic arithmetic operations (addition, subtraction, multiplication and division) on decimal numbers. An algorithm is a representation of a solution to a problem. If a problem can be defined as a difference between a desired situation and the current situation in which one is, then a problem solution is a procedure, or method, for transforming the current situation to the desired one. We solve many such trivial problems every day without even thinking about it, for example making breakfast, travelling to the workplace etc. But the solution to such problems requires little intellectual effort and is relatively unimportant. However, the solution of a more interesting problem of more importance usually involves stating the problem in an understandable form and communicating the solution to others. In the case where a computer is part of the means of solving the problem, a procedure, explicitly stating the steps leading to the solution, must be transmitted to the computer. This concept of problem solution and communication makes the study of algorithms important to...

Words: 4924 - Pages: 20

Free Essay


...Component 01 - Computing Principles | AS-Level (H046) | A-Level (H446) | 1 The characteristics of contemporary processors, input, output and storage devices | Structure and function of the processor | The Arithmetic and Logic Unit (ALU), Control Unit and registers: Program Counter (PC), Accumulator (ACC), Memory Address Register (MAR), Memory Data Register (MDR), Current Instruction Register (CIR).Buses: data, address and control: How this relates to assembly language programs.The fetch-decode-execute cycle, including its effect on registers.The factors affecting the performance of the CPU, clock speed, number of cores, cache.Von Neumann, Harvard and contemporary processor architecture. | The use of pipelining in a processor to improve efficiency. | Types of processor | The differences between, and uses of, CISC and RISC processors.Multicore and parallel systems. | GPUs and their uses (including those not related to graphics). | Input, output and storage | How different input output and storage devices can be applied as a solution of different problems.The uses of magnetic, flash and optical storage devices.RAM and ROM.Virtual storage. | | 2 Software and software development | Operating systems | The need for, function and purpose of operating systems.Memory management (paging, segmentation and virtual memory).Interrupts, the role of interrupts and Interrupt Service Routines (ISR), role within the fetch decode execute cycle.Scheduling: round robin, first......

Words: 1302 - Pages: 6

Premium Essay


...RAPTOR: Introducing Programming to Non-Majors with Flowcharts Martin C. Carlisle, Terry A. Wilson, Jeffrey W. Humphries, Steven M. Hadfield United States Air Force Academy Department of Computer Science 2354 Fairchild Dr, Suite 6G149 USAFA, CO 80840-6234 {Martin.Carlisle,Jeffrey.Humphries,Steven.Hadfield} ABSTRACT When students are learning to develop algorithms, they very often spend more time dealing with issues of syntax than solving the problem. Additionally, the textual nature of most programming environments works against the learning style of the majority of students. RAPTOR is a flowchart-based programming environment, designed specifically to help students visualize their algorithms and avoid syntactic baggage. RAPTOR programs are created visually and executed visually by tracing the execution through the flowchart. Required syntax is kept to a minimum. Students preferred using flowcharts to express their algorithms, and were more successful creating algorithms using RAPTOR than using a traditional language or writing flowcharts without RAPTOR. Categories and Subject Descriptors D.1.7 [Visual Programming] General Terms Languages, Algorithms. Keywords Flowcharts, Visual Programming, Programming Environments, Problem Solving. 1. INTRODUCTION Shackelford and LeBlanc[6] previously observed that the use of a particular programming language in an introduction to computing course tends to “annoy and distract attention from the......

Words: 3019 - Pages: 13

Premium Essay

C Program

...steps in C program planning & development Basic terminologies Programming: planning, scheduling or performing a task or an event  Computer Programming: process of planning a sequence of steps for a computer to follow  Computer Program/Program: list of instructions to be performed by a computer or understood by the computer  Steps in Program Planning & Development 1. 2. 3. 4. 5. Identification of the problem Problem Analysis Setting up an Algorithm Coding Running, Testing & Debugging Steps in Program Planning & Development 1. Identification of the problem knowing what the problem is Steps in Program Planning & Development 2.Problem Analysis     Review the problem & understand carefully what you are asked to do Determine what is given(input) and what result/information must be produced(output) Assign names to each input and output Determine the manner of processing that must be done on the input data to come up with desired output Steps in Program Planning & Development 3. Setting up an Algorithm Algorithm: a step-by-step process that if followed performs a specific task. This can be described in 2 ways: 1. natural language 2. graphical forms/notations What Is an Algorithm?  An algorithm is nothing more than a finite list of instructions on how to perform a task. It is analogous to a cooking recipe a chef might use for preparing a food. Specifically, an algorithm has the following properties. It must result in a finite......

Words: 653 - Pages: 3

Free Essay


...Introduction to C++ Programming I Ian Aitchison and Peter King August 1997 Contents 1 The Computer 1.1 Central Processing Unit . . . . . . . . . . . . . . . . . . . 1.2 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Main memory . . . . . . . . . . . . . . . . . . . . . 1.2.2 External Memory . . . . . . . . . . . . . . . . . . . 1.3 Input/Output Devices . . . . . . . . . . . . . . . . . . . . 1.4 The system bus . . . . . . . . . . . . . . . . . . . . . . . . 1.5 More about memory and information representation . . . 1.5.1 Representation of information in external memory 1.6 The execution cycle . . . . . . . . . . . . . . . . . . . . . 1.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 Multiple Choice Questions . . . . . . . . . . . . . . . . . . 1.9 Review Questions . . . . . . . . . . . . . . . . . . . . . . . 2 Programming Languages 2.1 Assembly Language . . . 2.2 High level Languages . . . 2.3 Summary . . . . . . . . . 2.4 Multiple Choice Questions 11 13 13 14 14 15 16 16 17 17 18 19 19 20 21 22 23 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Operating Systems 25 3.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Multiple Choice Questions . . . . . . . . . . . . . . . ....

Words: 10667 - Pages: 43

Free Essay

Unit 1 Assignment 1

...Chapter 1: Pg. 43 Quick- Check Exercise 1. Machine language 2. Operating System 3. Translation, Linking, Loading, Execution 4. Source 8. Software, Hardware 9. Variables 10. Secondary storage Pg. 44 Review Questions 3. Two secondary storage devices is a disk drive and flash drive Two input devices is the keyboard and mouse Two output devices is the monitor and printer 5. Syntax error is grammar error of a programming language. 6. The loader copies the executed file into memory and initiates execution of instructions. 7. Memory cells are a grouping of small units called bytes Bytes are the amount of storage required to store a single character, composed of even smaller unit called bits. Bits are binary digits 0-10. 8. Three high languages are Fortran, C, and Java FORTRAN used in scientific programming. C is used in system programming. Java supports web programming and programming Android applications. 9. Ram is volatile and it temporarily stores programs while their being executed, delete when computer is turned off, Rom is not volatile the data stored there will not disappear when the computer is turned off. 2. Write an algorithm in pseudo-code to solve the following problem: Input a temperature in Fahrenheit, and output the temperature in Celsius and Kelvin. Formulas needed are: C = ( 59 ) (F – 32). K= ( 59 ) (F – 32) + 273.15 Algorithm: Fahrenheit to Celsius and Kelvin......

Words: 458 - Pages: 2

Premium Essay

Doc Remove Delibitablement

...Engineers | 2,5 | 32 | Probability 1 | 3,5 | 48 | Statistical Decision (courses +Tuto) | 3,5 | 48 | Microprocessor System | 3 | 40 | Signal Transmission | 2,5 | 32 | Data Transmission | 2,5 | 32 | Workshop on Linux | 3 | 40 | Databases | 3 | 40 | TOEIC 1 | 2,5 | 32 | Advanced Maintenance | 2,5 | 32 | Numerical Analysis | 2,5 | 32 | Operations Research | 2,5 | 32 | Servo (Tuto) | 2,5 | 32 | Servo (Courses) | 2,5 | 32 | Algorithm (Data Structure) | 2,5 | 32 | Algorithm oriented object (Tuto, C++ Language) | 3 | 40 | Operating System (Theories and Fundamental) | 2,5 | 32 | WAN (courses + Tuto) | 4,5 | 60 | Method of Analysis 1 | 3 | 40 | Programming Workshop C | 2,5 | 32 | Software Engineering workshop (Access, VB) | 3 | 40 | Management Workshop for Science Engineer | 2 | 24 | Entrepreneurship | 1,5 | 20 |   |   |   | TOTAL | 63,5 | 832 | ------------------------------------------------- OBJECT ORIENTED ALGORITHM ------------------------------------------------- (Hands-On in Language C + +) CHAPTER I: GENERAL ON CLASS I. Notion of class • Generality of P.O.O • Incompatibility C / C + + II. Property of the member functions • Defaults • Member functions in-line • Transmission of object as argument III. Object assignment IV. Object Constructors and Destructors V. Object initialization VI. The copy constructor VII. Tables to Objects CHAPTER II: THE OPERATOR SURDEFINITION I. The mechanism......

Words: 2262 - Pages: 10

Premium Essay

Importance Of Data Science

...have collected and analyzed. Data Science become magical when brilliant mathematical concepts are applied to the data yielding unexpected insights. Basic concepts include Descriptive and Inferential statistics, linear algebra, graphing etc. PROGRAMMING AND DATABASES: This is the domain which will separate you from statistician and analysts. For any given data, you need to write programs to query and retrieve data from the databases or you may apply machine learning algorithms. You should have good grasp on data science libraries and modules. Talking about Python and R, both are good programming languages to start with as both provides some pre-built libraries that can be used just by importing them into programs. Some common packages of both programming language: Database Systems act as central hub to store information. These can be SQL based or NO SQL based. Relational Database includes PostgreSQL, MySQL, Oracle etc. and others are Hadoop, Spark, and MongoDb etc. DOMAIN...

Words: 1195 - Pages: 5

Free Essay

C Language

...Solving and 'C' Programming Version: PSC/Handout/1107/1.0 Date: 16-11-07 Cognizant 500 Glen Pointe Center West Teaneck, NJ 07666 Ph: 201-801-0233 Problem Solving and C Programming TABLE OF CONTENTS About this Document ....................................................................................................................6 Target Audience ...........................................................................................................................6 Objectives .....................................................................................................................................6 Pre-requisite .................................................................................................................................6 Session 2: Introduction to Problem Solving and Programming Languages ...........................7 Learning Objectives ......................................................................................................................7 Problem Solving Aspect ...............................................................................................................7 Program Development Steps .......................................................................................................8 Introduction to Programming Languages ...................................................................................14 Types and Categories of Programming Languages......

Words: 4320 - Pages: 18

Premium Essay

An Evolution of Computer Science Research

...Abbreviated version of this report is published as "Trends in Computer Science Research" Apirak Hoonlor, Boleslaw K. Szymanski and M. Zaki, Communications of the ACM, 56(10), Oct. 2013, pp.74-83 An Evolution of Computer Science Research∗ Apirak Hoonlor, Boleslaw K. Szymanski, Mohammed J. Zaki, and James Thompson Abstract Over the past two decades, Computer Science (CS) has continued to grow as a research field. There are several studies that examine trends and emerging topics in CS research or the impact of papers on the field. In contrast, in this article, we take a closer look at the entire CS research in the past two decades by analyzing the data on publications in the ACM Digital Library and IEEE Xplore, and the grants awarded by the National Science Foundation (NSF). We identify trends, bursty topics, and interesting inter-relationships between NSF awards and CS publications, finding, for example, that if an uncommonly high frequency of a specific topic is observed in publications, the funding for this topic is usually increased. We also analyze CS researchers and communities, finding that only a small fraction of authors attribute their work to the same research area for a long period of time, reflecting for instance the emphasis on novelty (use of new keywords) and typical academic research teams (with core faculty and more rapid turnover of students and postdocs). Finally, our work highlights the dynamic research landscape in CS, with its focus......

Words: 15250 - Pages: 61

Premium Essay

Introduction to Object-Oriented Programming

...INTRODUCTION Structured programming (known as modular programming) is a subset of procedural programming that enforces a logical structure in the programming being written, to make it more efficient and easier to understand and modify. Structured programming frequently employs a top-down design model, in which developers map out the overall program structure into separate subsections. A defined function or a set of similar functions coded in separate modules can be reused in other programs. After a module has been tested individually, it is then integrated with other modules into the overall program structure. Program flow follows a simple hierarchical model that employs looping constructs such as 'for,' 'repeat' and 'while.' Use of the 'Go To' statement is discouraged in structured programming. Structured programming was first suggested by the mathematicians Corrado Bohm and Guiseppe Jacopini. They demonstrated that any computer program can be written with just three structures: decision, sequences and loops. In structured programming coders break larger pieces of code into shorter subroutines (functions, procedures, methods, blocks or otherwise) that are small enough to be understood easily. In general, programs should use local variables and take arguments by either value or reference. These techniques help to make isolated small pieces of code easier to understand the whole program at once. PASCAL, Ada and C are some of the examples of structured programming......

Words: 2729 - Pages: 11

Free Essay

Personal Information

...Assessment Progress Monitoring Honors & College Readiness      Practical based instruction Content oriented Classroom Management Program Development College-to-career Connection EDUCATION & CERTIFICATION:  B.Sc., (Computer Science and IT) with 3.25 GPA at Wollega University, Ethiopia. TECHNICAL PROFILE: Programming Languages Database Technologies GUI Tools Web Technologies Operating System Packages Multimedia Application Professional Experience:  Presently working as Assistant Lecturer in Mizan-Tepi University, Ethiopia for B.Sc(CS & IT) and I have delivered Courses Introduction to Computer Science, Fundamentals of Programming I and II, Professional Ethics In computing, Fundamentals of Database Systems, Data Structures and Algorithms, Computer Organization and Architecture, Data Communication and Computer Networking, Object Oriented Programming, Operating Systems, Internet Programming I ,Advanced Database System, Internet Programming II, Unix System Administration, System Analysis and Design, Event Driven Programming, Information Retrieval, Software Engineering, Formal Language Theory, Logic for Computer Science, Computer Graphics, Analysis of Algorithms, Introduction to : : : : : : : C, C++,VB-5,6, ,C#, Java,python MySQL,Oracle 9i, 10 and 11g, MS SQL Server 7.0,weka DreamWeaver,Developer2000, VB6,,JCreater JAVA, HTML, DHTML, JAVASCRIPT MS-DOS, WINDOW,...

Words: 506 - Pages: 3