EMU FACULTY OF ENGINEERING

DEPARTMENT OF COMPUTER ENGINEERING

 

COURSE DESCRIPTION

 

Course Code:            CmpE 318

Course Title:             Programming Language Design

Course Credit:           (4 , 1) 4

Semester:                  2004 - 2005 Spring

Course Website:       http://cmpe.emu.edu.tr/cmpe318/

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

                         - Please activate your EMU e-mail account, and

                         - Read my remarks on netiquette.

Faculty:

  Group #1 Group #2 Group #3 Group #4
Faculty Member: Atilla ELÇİ (Course Coord.) Atilla ELÇİ (Course Coord.)  Manuel CARCENAC  Ahmet ÜNVEREN
Office No. & Telph.: 208 & 2843 208 & 2843 107 & 1195 212 & 1163
E-mail: atilla.elci atilla.elci manuel.carcenac ahmet.unveren
Website: ./aelci/ ./aelci/ ./carcenac/ ./unveren/
Lab Coordinator: M. Ahmed SHAH M. Ahmed SHAH M. Ahmed SHAH M. Ahmed SHAH
Office No. & Telph.: 122 & 2836 122 & 2836 122 & 2836 122 & 2836
E-mail: ahmed.shah  ahmed.shah ahmed.shah ahmed.shah
Group Assistant: Mehmet KIZILDAĞ Melike ŞAH Yüce TEKOL Mehmet KIZILDAĞ
Office No. & Telph.: 123 & 2839 119 & 2833 124 & 2838 123 & 2839
E-mail: mehmet.kizildag  melike.sah yuce.tekol mehmet.kizildag
Assistant: F. YORGANCIOĞLU M. Ahmed SHAH Melike ŞAH Melike ŞAH
Office No. & Telph.: 201 & 1625 122 & 2836 119 & 2833 119 & 2833
E-mail: ferhun.yorgancioglu  ahmed.shah melike.sah melike.sah
Assistant: Maher M. WAHEEB Maher M. WAHEEB F. YORGANCIOĞLU Maher M. WAHEEB
Office No. & Telph.: 105 & 1629 105 & 1629 201 & 1625 105 & 1629
E-mail: maher.waheeb maher.waheeb ferhun.yorgancioglu maher.waheeb
Assistant: Onur ÖREK Mehmet KIZILDAĞ Onur ÖREK M. Ahmed SHAH
Office No. & Telph.: 101 & 1062 123 & 2839 101 & 1062 122 & 2836
E-mail: onur.orek mehmet.kizildag onur.orek ahmed.shah
LABS at CmpE 137 TUE 12:30 MON 8:30 WED 12:30 FRI 10:30
E-Mail Homeworks to 1hw318@emu.edu.tr 2hw318@emu.edu.tr 3hw318@emu.edu.tr 4hw318@emu.edu.tr

 

Textbook (available at the EMU Bookstore):      

SEBESTA, Robert W.: Concepts of Programming Languages, 6th Edition, Addison-Wesley, 2004. ISBN: 0-321-19362-8.

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).

Answers to selected end-of-chapter problems.

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

Other References (available at the EMU Bookstore):               

1. Flanagan, David: Java in a Nutshell - 4th Edition, O'Reilly, 2003. ISBN: 0596002831.

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

3. 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.

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

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

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

7. 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.

 

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

Structures of programming languages; formal specifications of syntax, semantics and translation; data structures, control, subprograms, storage management concepts and techniques employed in major languages. Study and evaluation of key features of major programming languages. (Prerequisite: CmpE 212 OO & 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)  Concurrency

13)  Exception handling

14)  Functional programming- The Haskell way (in Lab)

15)  Logic programming- The Prolog way (in Lab)

 

Schedule is given below. All lecture presentations are attached to the schedule, just click on the chapter number.

Semester Plan of Schedule and Material.

Please note that schedule has been modified due to change of Midterm 1 dates by the University!

LABS

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

1)      C / C++

2)      C# / Java

3)      Scripting language (?)

4)      ML (or Haskell)

5)      Prolog

 Please take note of the Guidelines for Proper Conduct with respect to HWs, quizzes, and labs.

EXAMINATION AND GRADING

v      Midterm Exam 1:             25  Solutions

v      Midterm Exam 2:             25  Solutions

v      Labs:                               10  Ref. Schedule

v      Quizzes:                           05

v      Homeworks:                    05 PLEASE: E-mail HWs only to the designated boxes as shown above!

v      Attendance                      05 ← Bonus

v      Final Exam:                      30

              Ø             TOTAL:        100 %

 

IMPORTANT NOTES

Office Hours:           

For A. ELÇİ:                  14:45 – 15:30 on Mondays, Tuesdays, and Wednesdays.

For M. CARCENAC:    tba.

For A. ÜNVEREN:        9:30 – 10:30 Mondays, Wednesdays, and Fridays.     

Attendance:                Absolutely required.

Roll calls will be taken frequently; any student with poor attendance record will be given NG.

Missed Exams:          Student missing an exam should provide a substantiated and valid excuse within three days following the exam. Only for those who missed an exam, 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.

Copyleft symbolAtilla Elçi 

Last update: Feb. 4, 2006.