3 Pages

Lecture01

Course: CS 2130, Fall 2009
School: East Los Angeles College
Rating:
 
 
 
 
 

Word Count: 1995

Document Preview

Program CS2130 Language Concepts and Paradigms Lecture 1 -- Introduction Module Outline: Credits: 10 LEARNING OUTCOMES Knowledge and understanding of programming paradigms alternative or complementary to the basic sequential imperative paradigm Understanding of programming language structure, emphasising the role of abstraction and its significance for practical software design and construction Practical ability...

Register Now

Unformatted Document Excerpt

Coursehero >> California >> East Los Angeles College >> CS 2130

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Program CS2130 Language Concepts and Paradigms Lecture 1 -- Introduction Module Outline: Credits: 10 LEARNING OUTCOMES Knowledge and understanding of programming paradigms alternative or complementary to the basic sequential imperative paradigm Understanding of programming language structure, emphasising the role of abstraction and its significance for practical software design and construction Practical ability with some of the languages and paradigms discussed Understanding of software concepts and acquisition of associated skills that will be of value in a range of subsequent modules. CONTENT Fundamental programming language concepts: values, types; binding, scope, visibility, variables, storage, lifetime; expressions, commands, state, function and procedure abstraction, parameter mechanisms. Review of encapsulation and information hiding: packages, abstract objects, abstract data types, reusability via generic abstraction. Object oriented programming in Ada 95, applications e.g. streams and controlled objects, comparison with other languages. Concurrent programming using Ada 95, comparison with Java. Topics will be illustrated by examples and practical exercises using a variety of appropriate languages, e.g. Pascal, Java, C, C++, Ada 95, Lisp, Prolog, SR. PREREQUISITES CS1110 Introduction to Systematic Programming CS1210 Data Structures and Algorithms CS2110 OOP with Java LEARNING PROVISION Lectures: 22 hours Practical classes: 5 hours Further study and examination: 73 hours Students will be expected to complete practical programming exercises on all major topics covered. Practical work will be assessed through coursework assignments and related examination questions. ASSESSMENT Formal examination: 75% (1.5 hours) Continuous assessment: 25% Reading DA Watt (with W Findlay) Programming Language design Concepts Wiley (2004) R W Sebasta Concepts of Programming Languages (5th ed.) Pearson Educ. 2002 L Wilson & R Clark, Comparative Programming Languages (3rd ed.), Addison-Wesley, 2001 D A Watt, Programming Language Concepts and Paradigms, Prentice Hall, 1990 J G P Barnes, Programming in Ada 95 (2nd ed.), Addison-Wesley, 1998 A Burns & A Wellings, Concurrency in Ada (2nd Ed), Cambridge UP, 1998 H Bal & D Grune, Programming Language Essentials, Addison-Wesley, 1994 A Barnes, 2005 1 CS2130/Ilect 1 Notes In addition to the reading list it may be necessary to consult text-books or programming manuals for other languages (particularly Ada, Java and C/C++). There will be one continuous assessment exercise distributed in towards the end of term 2 and handed in during term 3(dates to be confirmed). The exact form of the continuous assessment remains to be decided, but it is likely to be an individual programming exercise(s) in Ada (and possibly Java). Students will be informed in due course of the arrangements. A number of exercises will be set throughout the course. Completion and submission of most of these exercises will not be required and will not be formally assessed. However they form an integral part of the course and you are strongly advised to complete these. Some of the exercises will form the basis of examination questions and other exercises need to be mastered in order to understand material later in the module. Students resitting the module with attendance should note that the module content has changed slightly from last year. Students resitting the module with attendance will be required to complete the continuous assessment even if their CA mark at the first attempt was satisfactory. There will be no formal tutorials or problem classes for this module. However there will be a number of practical (lab) classes in MB473 You will be split into four smaller groups for these lab classes. Owing to staff shortages the lab classes will be fortnightly with two groups having classes in odd numbered weeks and the other two groups in even numbered weeks. Labs will start in the second week of teaching period 2 (week 3 of term 2). If you have questions about the module I will be available in the scheduled lab periods (whether or not your class is scheduled for that week) and in my office from 16.00-17.00 on Monday afternoons. I will NOT be available at other times except by prior email appointment (Email: barnesa@aston.ac.uk). I will from time to time send email containing information relevant to this module to the mailing-lists for students enrolled on the course seas_uscos_2 (BSc Computing Science Year 2) It is your responsibility to look at your email regularly each week. Note that email will not be sent to individual student email accounts at (say) hotmail.com or other ISP's. Spare copies of the lecture hand-outs, problem sheets etc. will be placed on the table outside my office (MB212B). If you miss a lecture then you should collect ONE copy from there. Please do not collect multiple copies at lectures for 'absent friends'. A sufficient number of hand-outs will be duplicated for everyone registered for the module, when these are exhausted no more will be duplicated. Copies of the hand-outs will be available on-line in MS-Word format and PDF in the following location: http://student.cs.aston.ac.uk/proginfo/modules/cs2xxx/cs2130/ or in meaningfully named links from the above. The simplest way to reach this site is by following the CS2130 link from my home page: http://www.cs.aston.ac.uk/~barnesa// (or following the links Programme Information --> CS2130 from the CS Student Intranet Home page http://student.cs.aston.ac.uk/ Other material (example programs and some exercise solutions etc.) will be placed in the same locations from time to time. As mistakes and omissions in the notes are detected correction and addendum sheets will be circulated and the on-line versions will be updated. A Barnes, 2005 2 CS2130/Ilect 1 Students who miss lectures for a substantial period through illness or other good cause should inform the CS office or their year tutor of their absence (you should do this as a matter of course anyway). If I am informed of this absence in good time I will endeavour to save a copy of the hand-outs for the student concerned. Reasons for Studying Concepts of Programming Languages Increased capacity to express programming ideas. If a programmer's vocabulary and knowledge of programming concepts is rudimentary and lacking in depth of abstraction, then that programmer will be limited in the form of control structures and data structures that they can use. It is difficult to conceptualise programming various constructs unless one has the means to describe them verbally and/or in writing. Also the ability to read and understand technical language manuals or programs written by other (better educated) programmers will be hampered. Even if a particular language does not support a particular construct directly, knowledge of the construct in another language and its advantages may motivate a programmer to simulate the construct (and so enjoy (at least some of) its benefits. Increased ability to learn new programming languages The time taken to learn a new programming language and use it effectively can be substantially reduced if one is aware of similar constructs and concepts in other languages that one already knows. If one has a good theoretical grounding and understands the advantages and disadvantages of certain constructs, then potential pitfalls and misunderstandings can often be avoided. Improved background for choosing a programming language. Knowledge of the strengths and weaknesses of available programming languages can aid in the choice of the most appropriate language for a particular programming project. Different languages may be appropriate for different types of project (Ada for safety critical applications, Java for Web-based programming, a scripting language such as Python for rapid prototyping. Better understanding of the significance of implementation. Sometimes the seemingly arbitrary limitations of a particular programming language construct can be traced to a difficulty in an efficient implementation of the construct in its full generality. Increased ability to design good quality new languages. For example avoiding designing new languages with some of the well-known shortcomings of existing languages when there are equally simple constructs without these problems. Overall advancement of computing and an improvement in the quality of software. Traditionally the most popular languages have not always been the best languages available for the software development process. Requirements of a Programming Language In this course we will only consider high-level programming languages, that is languages which are (more or less) machine independent. Hence we will not consider assembly language programming. A programming language should be universal, that is every problem capable of solution must have a solution expressible in that language. This is not such a formidable requirement as any algorithm can be expressed in terms of a very small set of control structures: namely sequencing, selection with IF and iteration with WHILE (Bhm and Jacopini, 1966)1 . Other programming constructs (CASE, FOR, functions and procedures, packages etc.) may be more convenient and/or lead to better quality (more robust) code but they are not strictly necessary 1 Bhm, C and Jacopini, G. Communications of the ACM 9, 36671 (1966). 3 CS2130/Ilect 1 A Barnes, 2005 A programming language should be reasonably natural for problem solving at least in the area for which it is designed. A language whose only data types are numbers (integers and reals) and arrays might be fine for 'number-crunching' application but would not be natural for (say) text processing A programming language must be implementable on a computer. Mathematical notation in its full generality is not implementable; as the work of Post and Turing showed there are functions one can define rigorously in mathematical notation which are not computable by a terminating algorithmic scheme. A programming language must be implementable on a computer in a reasonably efficient manner. Difficulties in implementation of languages such as Algol 68 and Ada 83 and hence the lack of availability of good quality compilers at a reasonable cost meant that they did not become as popular as simpler languages such as C and Pascal although arguably they were more powerful, better structured languages. Of...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsLab Class 5 In this lab class you should familiarize yourself with simple use of a Unix-like command window to compile and run C programs from the command-line. Work for this lab: 1. Log onto your preferred operat
Maple Springs - MATH - 4160
HOMEWORK #3 SOLUTIONS - MATH 4160(1) How many paths are there that start at the point (0, 0) and go to the point (2n, 0) by taking steps in a NE or SE direction (i.e. (+1, +1) or (+1, 1)? Solution: Every path that starts at (0, 0) and ends at (2n,
East Los Angeles College - CS - 2130
Ada Case StudyWhat day of the week is it?It is required to write an interactive program which will calculate the day of the week on which a particular date falls. The user is to input a date as three whole number values giving the day, month year
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsLab Class 4 In this lab class you should familiarize yourself with simple use of a Unix-like command window to compile and run Ada programs from the command-line. learn how to edit, compile and run Ada programs us
Maple Springs - MATH - 4160
GENERATING FUNCTIONS PRACTICE - MATH 4160Find the generating function for the each of the following sets of partitions described below. (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) Partitions with only even parts and the length
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsCoursework 2006 Problem 1. A Generic BoundedBuffer (25 marks) Modify the BoundedBuffer class that appeared in unit 6 of the lecture notes so that it is generic (like all the standard collection classes in Java 1.5
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 4 - Addendum and Corrections Correction On page 8 of unit 4 it was stated that "C and C+ do not allow overloading of subprogram or other entities". This is correct for C, but not for C+. In C+ f
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and Paradigms1. a) State what is meant by the terms expression and command, bringing out as clearly as possible the distinction between the two terms. Your answer should introduce the concept of program state. (
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts1. a) State what is meant by the terms expression and command in a programming language, bringing out as clearly as possible the distinction between the two terms. Your answer should introduce the concept of prog
Maple Springs - MATH - 2560
POST TEST TWO PRACTICE QUESTIONS As for the previous tests, I am assigning some questions from the online quizes available. I won't repeat the instructions on how to access these; they're still up with the test one practice questions. Also, my number
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsCoursework 2005 Problem 1. A Task Pool In the Ada code overleaf a main task loops repeatedly getting data to process by calling a procedure GetData from a package DataPack. This procedure produces da
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsCoursework 2004 1. A Square Matrix Package The specification of an Ada package exporting a type SquareMatrix and operators for performing basic matrix operations on values of this type is given by:P
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsReferred Continuous Assessment Exercises 2005 Problem 1. An Improved Implementation of a Mutex Protected Object - (50 marks) The simple implementation of a mutex in Unit 10 of the PLCP notes relies f
East Los Angeles College - CS - 2130
CS126 Mathematics for ComputingMatrix Algebra Matrix algebra occurs in many practical applications in computing (e.g. graphics, error detecting and error correcting codes), in mathematics and physics. An m n matrix is a rectangular array with m row
East Los Angeles College - CS - 2130
7# #/#,#T#,#T#T#-T#-T#-b#.#-#- #- #- #-#-#-#.#x#-p#/0# #/P#/#*#/#-T#/#/h#:#/#/#/# #/#/#/#/ #/#/#CS213 Programming Language Concepts and ParadigmsCoursework 2002 The coursework assignment contributes 25% to the overall assessment of the module. It con
East Los Angeles College - CS - 2130
7#q# %#X#"#T#"#T#T#T#T#b# #c# #w# #U#$#x#%# #%<#%w#*#% #T#% #%T#/#% # %#%# #% #%#%)#% #% ##% #CS2130 Programming Language Concepts and ParadigmsCoursework 2003The coursework assignment contributes 25% to the overall assessment of the module.Modify th
East Los Angeles College - CS - 2130
7#3#H(#1#F#l#F#l#Gl# #Gl#Gl#Gz#Gz#Gz#Gz#G # #G# #G #G #G #G #G# #G#G#G#G#H #G#9#H#H#G#H#H#H#H#H #H$# # # ##CS2130 Programming Language Concepts and ParadigmsCoursework 2005 Problem 1. A Task PoolIn the Ada code overleaf a main task loops repeatedly
CSU Fullerton - SRT - 0901
SRT210Week ThreeWeek OverviewChange Management Revision Control Time ManagementChange management is an organized effort to implement changes to a systemChange ManagementTypically, change management involves the following elements: Th
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 11 More on Function and Procedure Abstractions Defining New Operators Some languages, for example Ada and C+, allow new overloadings of existing operator symbols to be defined. For example in Ada:TYPE Vector
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 14 - Pointer or Access Types Dynamic Storage Allocation The binding of fixed amounts of storage to named variables is inadequate for algorithms that need to store arbitrary amounts of data. For example progra
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 2 Concurrent Programming So far in this degree programme you have mainly considered sequential programs in which statements are obeyed in a single thread of control, that is where only one instruction sequenc
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 16 Encapsulation and Abstraction Client/Server Model Most modern programming languages provide a means of grouping related services together in some program entity. This entity is variously called a package,
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 10 Function and Procedure AbstractionsExpressions & Commands Revisited Recall that an expression is anything that can be evaluated to produce a value whereas a command modifies program state (the internal s
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 12 - Bindings and Scope Binding Each time execution of a program in a high-level programming language such as Ada or Java reaches a declaration that declaration is elaborated which has the effect of binding o
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 15 General Access Types In the last unit access or pointer types were used to provide a means of manipulating objects created by an allocator (i.e. NEW). Such access types are referred to as pool-specific acc
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 8 - Programming Language Concepts Names A name is a string of characters used to identify some entity in a program (such as a variable, type, subprogram etc.) Names are often referred to as identifiers. A num
CSU Fullerton - OPS - 535
1OPS535Advanced TCP/IP Network AdministrationRPC and NFSRaymond Chan Seneca College of Applied Technology2What is RPC?RPC is a programming paradigm (or protocol) Based on work at Xerox PARC in the early 1980s RPC use XDR encoding Used by
CSU Fullerton - OPS - 535
Professor: RaymondChan Email: raymond.chan@senecac.on.caUseemailforallcommunication.Pleaseuse propergrammarandspelling.OnlyemailsfromyourSenecaLearn accountswillbereplied.PleaseaddOPS535asaprefixtothesubject line. Webpage: Myhomepageisathttp:/cs.sene
Air Force Academy - ME - 324
Granta Design, February 2007 Granta Design, February 2007Getting started with CES EduPackThese exercises give an easy way to learn to use the CES EduPack software. The comprehensive Help file and CES InDepth within the software give more detail
Air Force Academy - ME - 492
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
7#4a#"#A#0#0#1#1#1#1#X#23#23#23#2C# #2S#2o#2o#3a#x#23#3# #3#47#*#4a#1#47#4#&#47#47#4a#47#47#47#47# #47##47#Answer 3 questions.Time allowed: 1.5 hoursDisclaimer:This sample paper gives an indication as to the style of the sort of questions that may ap
Air Force Academy - ME - 492
Air Force Academy - ME - 492
Air Force Academy - ME - 492
Air Force Academy - ME - 229
2009WeekJan. 5 Jan. 9Introduction to Engineering DesignMonday Lab.1B71 2:30-5:20PM Class start Jan 5 Introduction of Faculty and Group Members Introduction to the Design Projects. Prof. Burton Design Process & Designers- Prof. W.Szyszkowski (Co
East Los Angeles College - CS - 2130
CS2130 Programming Language ConceptsUnit 15 addendum Function Pointers in C and C+We can also define function pointers in C or C+. For example to define a pointer type to refer to functions of type double > double we would define#include <math.h>
CSU Fullerton - SRT - 0901
SRT210Week OneWeek OverviewCourse Introduction System Administrators' Role Security Policy Role Types of Security Policies Week One TasksYour ProfessorRaymond Chan Email: raymond.chan@senecac.on.ca Home page: cs.senecac.on.ca/~rchan/ Office
East Los Angeles College - CS - 2130
There is no lab sheet for the labs in the weeks ending Fri 24thFebruary and Friday 3rd March.This is to allow students to work on the PLC coursework assignmentwhich is due in 7th March.There will be a lab sheets for the labs in week 8-11 ( wee
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsLab Class 4 An On-screen Time Display Program In this example a task is used to manage a clock which displays the time and date at a certain position on the screen; every second the task updates the
Air Force Academy - ME - 492
Air Force Academy - ME - 492
Air Force Academy - ME - 492
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 11 More on Synchronisation in Concurrent Ada Programs The Ada Rendezvous Protected objects and protected types largely solve the problem of synchronising task access to shared data structures. P
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 16 - More on Object-Oriented Programming in Ada Object-Oriented Features in Standard Ada Libraries The standard Ada libraries use the object-oriented features of Ada to provide a number of power
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 13 Encapsulation and Abstraction Client/Server Model A package typically provides a service that is utilised by a client. The interface of a package should provide exactly the information needed
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 8 General Access Types In CS1210 (DSA) access or pointer types were used to provide a means of manipulating objects created by an allocator (i.e. NEW). Such access types are referred to as pool-
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 4 - Bindings and Scope Binding Each time execution of a program in a high-level programming language such as Ada reaches a declaration that declaration is elaborated which has the effect of bind
Air Force Academy - ME - 324
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 12 Java Threads A thread in Java is an instance of the Thread class (or a class that extends Thread). The Thread class provides methods to create, control and synchronise a thread. When a thread
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 5 Function and Procedure Abstractions Functions A function definition establishes name for a program entity which, when called, yields a value (of a specific type) which usually depends on one o
Air Force Academy - ME - 492
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsUnit 10 Synchronization in Concurrent Ada Programs Protected Variables In Ada 95 a simple mechanism: namely protected variables, was introduced for controlling access to shared data. A protected vari
Air Force Academy - ME - 324
East Los Angeles College - CS - 2130
CS2130 Programming Language Concepts and ParadigmsLecture 2 - Programming Language Concepts Every programming language has syntax and semantics: The syntax of a programming language is concerned with the form of expressions, commands and declaration