Language:EN
Pages: 146
Rating : ⭐⭐⭐⭐⭐
Price: $10.99
Page 1 Preview
the design and analysis computer algorithms

The design and analysis computer algorithms

NATIONAL OPEN UNIVERSITY OF NIGERIA

CIT 332 COURSE GUIDE

Couse Title

Couse Developer/Writer

Dr. Kehinde Adebola Sotonwa
Computer Science & Information Technology Department,
Bells University of Technology, Otta, Ogun State.

COURSE GUIDE

LAGOS OFFICE
14/16 Ahmadu Bello Way
Victoria Island , Lagos

All Rights Reserved

iii

iv

CIT 332 COURSE GUIDE

The course is divided into four (4) modules and 15 study units. It entails the concept of

programming languages. It further deals with general overview of programming languages. The

The overall aim of this course is to teach you general overview of programming languages: evolution, generation, concepts, application domain and criteria for language evaluation. The course is designed to describe the fundamental concepts of programming language by discussing the design issues of the various language constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing design alternatives, Fundamental syntactic and semantic concepts underlying modern programming languages, different modern programming languages: C/C++, C#, Java, Python, LISP, PERL, ALGOL and PROLOG, their syntax: bindings and scope, data types and type checking, functional scheme, expression of assignments, control structure, program statements, program units etc., and finally language comparison.

Course Aim

v

CIT 332 COURSE GUIDE

• Explain the benefits of intermediate languages in the compilation process. 

• Evaluate the tradeoffs in reliability vs. writability. 

• Describe the meanings of programs (dynamic semantics, weakest precondition). 

• Identify and describe the properties of a variable such as its associated address, value, scope, persistence, and size. 

• Demonstrate the difference between pass-by-value, pass-by-result, pass-by-value-result, pass-by-reference, and pass-by-name parameter passing. 

• Explain the difference between the static binding and dynamic binding. 

• Increase the ability to learn new languages 

• To better understand the significance of programming implementation 

CIT 332 COURSE GUIDE

Course Justification

Course Requirements

This is a compulsory course for all computer science students in the University. In view of this, students are expected to participate in all the course activities and have minimum of 75% attendance to be able to write the final examination.

Module 2

Unit 1 Unit 2 Unit 3 Unit 4

Textbooks and References
Bjarne, Dines; Cliff, B. Jones (1978). The Vienna Development Method: The Meta-Language, Lecture Notes in Computer Science 61. Berlin, Heidelberg, New York: Springer.

Maurizio Gabbrielli and Simone Martini (2010). Programming Languages: Principles and Paradigm, Springer-Verlag London Limited, 2010.

Aho, A. V., J. E. Hopcroft, and J. D. Ullman. The design and analysis of computer algorithms. Boston: Addison-Wesley, 2007.

Kasabov NK, (1998) Foundations of Neural Networks, Fuzzy Systems and Knowledge Engineering. The MIT Press Cambridge.

Olusegun Folorunso, Organization of Programming Languages, The Department of Computer

Science, University of Agriculture, Abeokuta.

Christiansen, Tom and Nathan Torkington. Perlfaq1 Unix Manpage. Perl 5 Porters, 1997-1999.

Java History.‖ Cited, March 29, 2000.

Cited,

March 25, 2000.

Rowe NC. (1988) Artificial Intelligence through Prolog. Prentice-Hall.

Hipster Hacker

CIT 332 in
50+
2021

(hackr.io)

5th Floor, A-118, Sector-136, N.oida, Uttar Pradesh – 201305.

Language Evaluation Criteria PPL by Jayesh Umre
Chapter_3_Von_Neumanns_Architecture.pdf (weebly.com), Michael L. Scott, Programming Language Pragmatics, ufmann Publishers, Elsevier.

Semantics in Programming Languages

CIT 332 COURSE GUIDE

Semantics of Programming Languages Computer Science Tripos, Part 1B, Peter Sewell Computer Laboratory, University of Cambridge, 2009.

Plotkin, G. D. (1981). A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University.

A. W. Appel. Modern Compiler Implementation in Java. Cambridge University Press, Cambridge, 1998. 3. J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification, Available online at

Beginn

xi

CIT 332 COURSE GUIDE

Common LISP: A Gentle Introduction to Sybbolic Computattion by Davis S. Touretzky

xii

Presentation Schedule

The presentation schedule included in this course guide provides you with important dates for completion of each tutor marked assignment. You should therefore endeavor to meet the deadlines.

Assignment questions for the units in this course are contained in the Assignment File. You should be able to complete your assignments from the information and materials contained in your set textbooks, reading and study units. However, you may wish to use other references to broaden your viewpoint and provide a deeper understanding of the subject.

When you have completed each assignment, send them to your tutor as soon as possible and make certain that it gets to your tutor on or before the stipulated deadline. If for any reason you cannot complete your assignment on time, contact your tutor before the assignment is due to discuss the possibility of extension. Extension will not be granted after the deadline, unless on extraordinary cases.

This course endows you with the status of a teacher and that of a learner. This means that you teach yourself and that you learn, as your learning capabilities would allow. It also means that you are in a better position to determine and to ascertain the what, the how, and the when of your language learning. No teacher imposes any method of learning on you.

The course units are similarly designed with the introduction following the contents, then a set of objectives and then the dialogue and so on. The objectives guide you as you go through the units to ascertain your knowledge of the required terms and expressions.

This table indicates the units, the number of weeks required to complete them and the assignments.

Unit Title of the Work Weeks

Assessment
(End of Unit)

Week 1

Assessment 1

3

Application Domains

Week 2

Assessment 4

Assessment 5

xiv

Assessment 6

3

Implementation Method

Week 4

Week 5

Assessment 9

Formal Language and Grammars

Week 7

Assessment 10

1

Brief History on Level of Programming Languages

Week 9

Assessment 11
Week 10 &11

Week 12

Assessment 12

HOW TO GET THE BEST FROM THIS COURSE

xv

5.

.

10.

Once you have created your own study schedule, do everything you can to stick to it. The major reason that students fail is that they lag behind in their course work.

When you are confident that you have achieved a unit‘s objectives, you can then start on the next unit. Proceed unit by unit through the course and try to pace your study so that you keep yourself on schedule.

When you have submitted an assignment to your tutor for marking, do not wait for its return before starting on the next unit. Keep to your schedule. When the assignment is returned, pay particular attention to your tutor‘s comments, both on the tutor-marked assignment form and also written on the assignment. Consult your tutor as soon as possible if you have any questions or problems.

Do not hesitate to contact your tutor by telephone, or e-mail if you need help. The following might be circumstances in which you would find help necessary. Contact your tutor if:

xvi

You should try your best to attend the tutorials. This is the only chance to have face to face contact with your tutor and to ask questions which are answered instantly. You can raise any problem encountered in the course of your study. To gain the maximum benefit from course tutorials, prepare a question list before attending them. You will learn a lot from participating in discussions actively.

TABLE OF CONTENTS PAGE

xvii

CONTENTS

1.0 2.0 3.0

INTRODUCTION

Ever since the invention of Charles Babbage‘s difference engine in 1822, computers have required a means of instructing them to perform a specific task. This means is known as a programming language. Computer languages were first composed of a series of steps to wire a particular program; these morphed into a series of steps keyed into the computer and then executed; later these languages acquired advanced features such as logical branching and object orientation. The computer languages of the last fifty years have come in two stages, the first major languages and the second major languages, which are in use today.

CIT 332 SURVEY OF PROGRAMMING LANGUAGES

• Define programming languages 

Before getting into computer programming, what is computer programs and what they do. A computer program is a sequence of instructions written using a Computer Programming Language to perform a specified task by the computer. The two important terms used in the above definition are:

Go straight
Drive half kilometer
Take left
Drive around one kilometer
Search for KFC at your right side

Now, try to map the situation with a computer program. The above sequence of instructions is actually a Human Program written in English Language, which instructs on how to reach KFC from a given starting point. This same sequence could have been given in Spanish, Hindi, Arabic, or any other human language, provided the person seeking direction knows any of these languages. Now, let's go back and try to understand a computer program, which is a sequence of instructions written in a Computer Language to perform a specified task by the computer. Following is a simple program written in Python Programming Language − print "Hello, World!"

CIT 332 SURVEY OF PROGRAMMING LANGUAGES

Computer programming is the process that professionals use to write code that instructs how a computer, application or software program performs. At its most basic, computer programming is a set of instructions to facilitate specific actions. A programming language is a computer language that is used by programmers (developers) to communicate with computers. It is a set of instructions written in any specific language to perform a specific task. It is made up of a series of symbols that serves as a bridge that allow humans to translate our thoughts into instructions computers can understand. Human and machines process information differently, and programming languages are the key to bridging the gap between people and computers therefore the first computer programming language was created.





3.2.1First Generation (1GL)

Machine-level programming language used to program first-generation computers. Originally, no translator was used to compile or assemble the first-generation language. Computers usually operate on a binary level which are sequences of 0's and 1 'so, in the early days of computer programming binary machine code was used to program computers. Binary programming means that the program directly reflects the hardware structure of the computer. Sequences of 0's and 1 's cause certain actions in processing, control, or memory units, i.e. programming was done on the flip-flop level. It was recognized very rapidly that programming computers on binary machine code level is very troublesome. Thus, it is obvious that binary programming could not successfully be applied to solve complex problems.

You are viewing 1/3rd of the document.Purchase the document to get full access instantly

Immediately available after payment
Both online and downloadable
No strings attached
How It Works
Login account
Login Your Account
Place in cart
Add to Cart
send in the money
Make payment
Document download
Download File
img

Uploaded by : Kimberly Cooley

PageId: ELI085FDAB