EMU FACULTY OF ENGINEERING

DEPARTMENT OF COMPUTER ENGINEERING

 

COURSE DESCRIPTION

 

Course Code:            CmpE 218

Course Title:             Principles of Programming Languages

Course Credit:          (4 , 1) 4

Semester:                  2008 - 2009 Spring

Course Website:       http://cmpe.emu.edu.tr/courses/cmpe218/

Course Mailing List: cmpe218@students.emu.edu.tr

                         - Please activate your EMU e-mail account, and

                         - Read my welcome remarks.

                         - Please consider this Guide on Netiquette: TXT or HTML versions.

Faculty:

 Group #1Group #2
Faculty Member:Atilla ELÇİ Zeki BAYRAM
Office No. & Telph.:208 & 2843216 & 2840
E-mail:atilla.elci zeki.bayram
Website:./aelci/./bayram/
Lab Coordinator:Zafer ERENELZafer ERENEL
Office No. & Telph.:205 & 2832205 & 2832
E-mail:zafer.erenelzafer.erenel
Lab Group Assistant:Aslı APAYDINAslı APAYDIN
Office No. & Telph.:123 & 2839123 & 2839
E-mail:asli.apaydinasli.apaydin
Lab Assistant:Siamak TAFAVOGHSiamak TAFAVOGH
Office No. & Telph.:124, 2838124, 2838
E-mail:siamak.tafavoghsiamak.tafavogh

 

Textbook:      

SEBESTA, Robert W.: Concepts of Programming Languages, 8th Edition, Pearson Intl (Addison-Wesley), 2008. ISBN: 0-321-50968-4.

View Companion Website for textbook supplements for students including a language reference library and self-assessment quizzes (need to register first using the “student access code” available at the scratch area on the insert to the book). PowerPoint slides and figures of the book may be downloaded from the above link.

Additionally, check the official course Website for handouts, announcements, and other resources.  

Other References (many are available at the EMU Bookstore and Library):               

1. Peter Cooper: Beginning Ruby: From Novice to Professional, APress, 2007.

2. Deitel & Deitel: JAVA - How to program, Prentice Hall International.

3. Callear, David: Prolog Programming for Students, DP Publications, 1994, ISBN: 1-85805-93-6.

4. Previous textbook: Tucker, Allen and Robert Noonan: Programming Languages, Principles and Paradigms, McGraw-Hill, 2002, ISBN: 0-07-112280-X (ISE). Textbook Website: check available Student Resources such as PowerPoint slides, source code, animations and further links.

5. Pratt, Terrence W. and Marvin V. Zelkowitz: Programming Languages, Design and Implementation, 4th Edition, 2001, ISBN: 0-13-027678-2.

6. Appleby, Doris and Julius J. VandeKoople: Programming Languages, Paradigm and Practice, 2nd Ed., McGraw-Hill, 1997, ISBN: 0-07-005315-4.

7. Rayward-Smith, V. J.: A First Course in Formal Language Theory, McGraw-Hill, 1995. ISBN: 0-07-709245-7.

8. Fischer, Alice E. and Francis S. Gradzinsky: The Anatomy of Programming Languages, Prentice-Hall Intl., 1993, ISBN: 0-13-042219-3.

Many books on programming and languages are available also as e-book in the ACM Books; access is free to ACM student members. ACM membership is $18/year for EMU students. Check my note on ACM membership. There are many free-to-members ACM Books and ACM Courses over the Web on C/C++, Scripting languages, C#, Java, Perl, Visual Studio .NET, and .NET Framework. Check TOP TEN courses of the last month.

Try  Wikibooks for books on Programming Languages, Computer Science, or other programming and language topics, such as, Domain-Specific Languages, logic programming, ... bookshelves.

Similarly, you may have access to relevant e-book sources such as EBRARY, SAFARI, etc as they become available from time to time through EMU Library online databases.

 

OBJECTIVE

This course presents the general principles and paradigms underlying most of the currently used programming languages: syntax, semantics and translation, imperative programming, the associated management of the memory, object oriented, logic, declarative, and functional programming. These paradigms will be studied and compared among them through representative languages.

 

Participant of the course will be required to carry out practical work in terms of home works, labs and short projects.

 

CATALOG DATA

Formal specification of programming languages: syntax, analysis, and semantics; evolution of programming languages and concepts; names and scope; data representation; evaluation sequence in expression, statement, and subprogram levels; OO implementation issues; sampling of other paradigms such as functional, logical, scripting, high-performance, etc. as time permits. Weekly homework and lab work are assigned in parallel to lectures. (Prerequisite: CmpE 211/212 OO Programming & C++)

 

COURSE OUTLINE

1)      Why study programming languages (PLs)?

2)      Evolution of PLs (self study)

3)      PL syntax and semantics

4)      Lexical and syntax analysis

5)      Names and scopes

6)      Data types (self study)

7)      Expression evaluation

8)      Control structures

9)      Subprograms and implementation

10)  Abstract data types

11) Object-oriented language support

12) Functional programming- Scheme/Haskell

13) Logic programming- Prolog

 

Semester Plan of Schedule and Material are here under Course Content and Schedule.

All lecture presentations are attached to the schedule; just click on the chapter number.

 

LABS

Practice on several programming paradigms will be carried out using specific languages including the following:

1)      C / C++

2)   Ruby, C# / Java

3)   Scheme/Haskell

3)      Prolog

 Please take note of the Guidelines for Proper Conduct with respect to HWs, quizzes, and labs. Also consider this recent presentation on Professional Ethics and Plagiarism.

 

EXAMINATION AND GRADING

v      Midterm Exam 1:             35 

v      Labs + homework:          15

v      Attendance                      05

v      Final Exam:                     45

              Ø             TOTAL:        100 %

 

IMPORTANT NOTES

Office Hours:           

For A. ELCI:       Tuesdays and Wednesdays at 14:40 - 15:30.

Attendance:                Absolutely required; any student with poor attendance record will be given NG.

Roll calls will be taken every lecture.

Missed Exams:          A student missing an exam should provide a substantiated and valid excuse within three days following the exam. Only for them one make-up exam will be administered at the end of the semester following the final exam period. 

 

LANGUAGE RESOURCES

FURTHER READING (advanced)

CONFERENCE LINKS

SIMILAR COURSES

E-ZINES & LISTS

LANGUAGES FOR .NET

    Academic community  languages:

Active Oberon for .NET »

Component Pascal »

Eiffel »

Hotdog Scheme »

Mercury »

Mondrian/Haskell »

Perl/Python »  Perl   Python

SML.NET »

CAREER LINKS

SUNNY SIDE

Please report any broken link.

Atilla Elçi 

Last update: May 4, 2009.