CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.

18
CS 415: CS 415: Programming Programming Languages Languages Course Introduction Course Introduction Aaron Bloomfield Aaron Bloomfield Fall 2005 Fall 2005

Transcript of CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.

CS 415: Programming CS 415: Programming LanguagesLanguagesCourse IntroductionCourse Introduction

Aaron BloomfieldAaron Bloomfield

Fall 2005Fall 2005

PrerequisitesPrerequisites

Prerequisites: CS216 and CS333 with grades of Prerequisites: CS216 and CS333 with grades of C- or above.C- or above.

It is assumed that students entering this class It is assumed that students entering this class have the following background:have the following background: Experience with an OOP language (such as Java or Experience with an OOP language (such as Java or

C++), from CS 101/201C++), from CS 101/201 Experience with a procedural language (such as C), Experience with a procedural language (such as C),

from CS 216from CS 216 Familiarity with an assembly language, from CS 216 Familiarity with an assembly language, from CS 216

or CS 333or CS 333

Course objectivesCourse objectives

Students who complete the course will:Students who complete the course will:

1.1. Develop a greater understanding of the issues involved Develop a greater understanding of the issues involved in programming language design and implementationin programming language design and implementation

2.2. Develop an in-depth understanding of functional, logic, Develop an in-depth understanding of functional, logic, and object-oriented programming paradigmsand object-oriented programming paradigms

3.3. Implement several programs in languages other than Implement several programs in languages other than the one emphasized in the core curriculum (Java/C++)the one emphasized in the core curriculum (Java/C++)

4.4. Understand design/implementation issues involved with Understand design/implementation issues involved with variable allocation and binding, control flow, types, variable allocation and binding, control flow, types, subroutines, parameter passingsubroutines, parameter passing

5.5. Develop an understanding of the compilation processDevelop an understanding of the compilation process

TextbookTextbook

Textbook: Scott, Michael. Textbook: Scott, Michael. Programming Language Programming Language Pragmatics. Morgan Pragmatics. Morgan Kaufmann: 2000Kaufmann: 2000

Textbook errata at Textbook errata at http://www.cs.rochester.ehttp://www.cs.rochester.edu/u/scott/pragmatics/erradu/u/scott/pragmatics/errata.htmlta.html

Expected AssignmentsExpected Assignments

Write programs in several different languagesWrite programs in several different languages Current plan is the five listed a few slides backCurrent plan is the five listed a few slides back

Course project: to learn another language of Course project: to learn another language of your choiceyour choice Includes a program, paper, and presentationIncludes a program, paper, and presentation

Midterm (on Wednesday, 12 October, during Midterm (on Wednesday, 12 October, during class)class)

Final exam (on Tuesday, 13 Dec from 9:00 - Final exam (on Tuesday, 13 Dec from 9:00 - 12:00)12:00) Both exams are closed bookBoth exams are closed book

GradesGrades

35%: Programming homeworks35%: Programming homeworks15%: Individual project and presentation15%: Individual project and presentation20%: Midterm20%: Midterm25%: Final exam25%: Final exam5%: Class participation5%: Class participation

Class participation will be graded partly based Class participation will be graded partly based on attendanceon attendance In particular, you need to be conscious during class!In particular, you need to be conscious during class! Just having a pulse and being present is not sufficientJust having a pulse and being present is not sufficient

Late policyLate policy

Each person will be allowed ONE late day (24 Each person will be allowed ONE late day (24 hours) this termhours) this term

The late policy is 30% off for first 24 hours late, The late policy is 30% off for first 24 hours late, 50% off for the next 24 hours50% off for the next 24 hours

Assignments are not accepted after 48 hours Assignments are not accepted after 48 hours from original due datefrom original due date

Note that using your late day extends this Note that using your late day extends this calendar by 24 hours, so that you could turn the calendar by 24 hours, so that you could turn the assignment in up to 72 hours after the original assignment in up to 72 hours after the original due datedue date

Theory vs. ImplementationTheory vs. Implementation

This class focuses on both:This class focuses on both: Theory is covered by the textbook readings, lectures, Theory is covered by the textbook readings, lectures,

and on the testsand on the tests Implementation is covered by the homework Implementation is covered by the homework

assignments and the projectassignments and the project

You will need to do both to do well in the courseYou will need to do both to do well in the course You can’t slack off on the theory part!You can’t slack off on the theory part! Thus, if you don’t keep up with the readings, you will Thus, if you don’t keep up with the readings, you will

end up with a poor grade in the courseend up with a poor grade in the course

Tentative scheduleTentative schedule

See the website…See the website…

Class TopicsClass Topics

HistoryHistoryMajor paradigmsMajor paradigms

Historical (Fortran)Historical (Fortran) Functional (Scheme or OCaml)Functional (Scheme or OCaml) Logic (Prolog)Logic (Prolog) Object-oriented (Smalltalk)Object-oriented (Smalltalk) Aspect-oriented (AspectJ)Aspect-oriented (AspectJ)

How different languages deal with:How different languages deal with: Naming and scopesNaming and scopes Control flowControl flow TypesTypes SubroutinesSubroutines

Language design and implementation tradeoffsLanguage design and implementation tradeoffsCompilers, debuggers, programming environmentsCompilers, debuggers, programming environments

Programming languages vs. Programming languages vs. compilerscompilers

This is not a compilers courseThis is not a compilers course But we will be studying compilers in great detailBut we will be studying compilers in great detail

The two fields are very closely linkedThe two fields are very closely linked You cannot understand one without understanding You cannot understand one without understanding

the otherthe other

Honor PolicyHonor Policy

Yada, yada, yadaYada, yada, yada

You know the drill – you’ve heard it all before by You know the drill – you’ve heard it all before by nownow

FairnessFairness

I intend this course to be hard but fairI intend this course to be hard but fair

If it is not being fair, please let me know and I If it is not being fair, please let me know and I will do my best to correct itwill do my best to correct it

If it is not being hard (or being to hard), also let If it is not being hard (or being to hard), also let me knowme know

Upcoming readingsUpcoming readings

I will try to give you the readings well in advance I will try to give you the readings well in advance so you can plan accordinglyso you can plan accordingly See the course schedule as wellSee the course schedule as well

Read chapter 1 for MondayRead chapter 1 for Monday

Read the Algol 60 report for WednesdayRead the Algol 60 report for Wednesday

Read (most of) chapter 2 for the following weekRead (most of) chapter 2 for the following week

A note on acronymsA note on acronyms

My policy on acronyms for this courseMy policy on acronyms for this course

Acronyms that are pronounced are in title case:Acronyms that are pronounced are in title case: FortranFortran CobolCobol BasicBasic

Acronyms that are spelled-out are all in upper case:Acronyms that are spelled-out are all in upper case: PHPPHP HTMLHTML XMLXML

Keeping the class interestingKeeping the class interesting

Humor breaksHumor breaks Actually helps with attention span!Actually helps with attention span! Not surprisingly, most of it will be computer humor!Not surprisingly, most of it will be computer humor!

Motivational posters…Motivational posters…

Demotivational posters…Demotivational posters…