CSE 452

Organization of Programming Languages

Fall 2008

 

Lectures:

Tue & Thu 12:40-2:00 pm in 1300 Engineering

 

 

 

 

 

Instructor:

Laura Dillon

 

Office:

3132 Engineering

Phone:           

517-353-4387

 

Office hours:

Tue & Wed 2:00-3:30 pm

Email:

ldillon@cse.msu.edu

 

 

and by appointment

Web page:

http://www.cse.msu/~ldillon

 

 

 

 

 

 

 

 

Teaching Assist.:

Borzoo Bonakdapour

 

Office hours:

Mon & Thu 9:00-10:30 am

Email:

borzoo@cse.msu.edu

 

 

and by appointment

Web page:

http://www.cse.msu/~borzoo

 

 

in 3353 Engineering

 

 

*  Syllabus and course information

 

*  Course schedule and assignments

 

*  Readings

 

*  Download EiffelStudio 6.2 GPL

 

*  Course objectives:

 

o       To gain an appreciation of issues in the design of programming languages.  You will learn how language features in different programming paradigms impact productivity of programmers, reliability and efficiency of programs, costs of software development and maintenance, security of software, etc.

 

o       To enable better program design and implementation.  Most programming language features are motivated by goals of improving program design.   Understanding these design goals and how different language features support them helps you use them more effectively.

 

o       To increase knowledge of useful programming techniques.  You will learn how to use programming techniques associated with different programming paradigms to solve recurring problems of software construction and development.

 

o       To enable better informed choice of programming language. You will learn about trade-offs that, depending on characteristics of software to be developed and on available resources and such,  affect the suitability of various languages for software development.

 

o       To facilitate learning of new programming languages. Familiarity with a range of programming paradigms and language constructs provides you a solid basis for quickly grasping the essentials of new ones.  You will be able to separate syntactic differences from semantic ones.  You will have a rich `library` of programming constructs at your disposal for comparison and understanding.