Académique Documents
Professionnel Documents
Culture Documents
Programming Languages
Subject
Programming languages
No. of Hours
No. of Units
Distribution of Marks
First Semester
Theoretical
Mid Year
Theoretical
Second Semester
Theoretical
Final Exam
Theoretical
Final Mark
Practical
Practical
Practical
Practical
Course Objectives
Teaching the student the fundamentals of object oriented programming in C# and Java. The properties and the new technologies of the modern language ( Virtual machines , Abstraction Mechanisms). C# language and its fundamentals and properties. Java language and its fundamentals and properties.
References
Robert W. sebesta, Concepts of programming languages, 10th edition , Pearson Addison Wesley, 2009. Robin A. Reynolds-haertle, OOP with Microsoft visual Basic.net and Microsoft visual C#.net step by step, Microsoft press, 2002. Jack Shiraz, Java Performance Tuning, OReilly & Associates, Inc. 2001.
F.Scott Barker, Visual C# 2005 express edition, Wiley Publishing, Inc. 2006.
Syllabus
History of programming languages Virtual machines Basic language translation Declarations and types Abstraction Mechanisms Introduction to object oriented programming C#: control structure C#: methods C#: arrays C#: collections
Syllabus
C#: object based programming C#: inheritance C#: polymorphism C#: strings and character C#: files and streams C#: exception handling C#: GUI C#: interface Java: build classes in java Java: control structure Java: inheritance
Topics
Reasons for Studying Concepts of Programming Languages History of programming languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Programming Environments
Programming languages:
Teaching trends
Java replacing C as most common intro language
Programming paradigm
A programming paradigm is the logical approach used in software engineering that describes how a programming language is implemented. The term paradigm is best described as a "pattern or model." programming paradigm can be defined as a pattern or model used within a software programming language to create software applications.
Programming paradigm
A programming language can support multiple paradigms. For example, programs written in C++ or Object Pascal can be purely procedural, or purely object-oriented, or contain elements of both paradigms. Software designers and programmers decide how to use those paradigm elements.
Programming paradigm
The design goal of such languages is to allow programmers to use the best tool for a job, admitting that no one paradigm solves all problems in the easiest or most efficient way.
Programming Domains
Scientific applications Large numbers of floating point computations; use of arrays Fortran Business applications Produce reports, use decimal numbers and characters COBOL
Artificial intelligence Symbols rather than numbers manipulated; use of linked lists LISP
Programming Domains
Systems programming
Need efficiency because of continuous use C
Web Software
Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP), generalpurpose (e.g., Java)
Programming Methodologies
New software development methodologies (e.g., object-oriented software development) led to new programming paradigms and by extension, new programming languages
Language Categories
Imperative Functional Logic Markup/programming hybrid
Language Categories
Imperative
Central features are variables, assignment statements, and iteration
Include languages that support object-oriented programming Include scripting languages Include the visual languages Examples: C, Java, Perl, JavaScript, Visual BASIC .NET, C++
Language Categories
Functional
Main means of making computations is by applying functions to given parameters Examples: LISP, Scheme
Logic
Language Categories
Markup/programming hybrid
Markup languages extended to support some programming Examples: JSTL, XSLT
Programming Environments
A collection of tools used in software development UNIX
An older operating system and tool collection Nowadays often used through a GUI (e.g., CDE, KDE, or GNOME) that runs on top of UNIX
NetBeans
Related to Visual Studio .NET, except for Web applications in Java
Summary
The study of programming languages is valuable for a number of reasons:
Increase our capacity to use different constructs Enable us to choose languages more intelligently Makes learning new languages easier
Major influences on language design have been machine architecture and software development methodologies