CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.
-
Upload
bryan-butler -
Category
Documents
-
view
215 -
download
1
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
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!