Spring 2007 | University of California, San Diego CSE Department
Course Statement
A programming language is a programmer's principle interface with the computer. More than just knowing how to program well in a single language, programmers need to understand the various features and styles of programming promoted by different languages. Understanding the variety of programming languages available for use, their constructs and their design tradeoffs will make even the single language programmer more versatile and will make learning a new language far easier. Programmers will often on occasion be asked to write a custom language of some sort (e.g. XML schema, small scripting language, configuration file format), and knowledge of the core principles of programming languages should help them produce better languages. Finally, much of this course's material provides a solid background for compiler and parser development course work.
Tentative Schedule
Week 1
April 2: Meeting 1: Themes and Intro [ 3-up PDF ] [ 1-up PDF ]
April 4: Meeting 2: History of Programming Languages [ 3-up PDF ] [ 1-up PDF ]
April 6: Meeting 3: JavaScript I [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 1-2
Week 2
April 9: Meeting 4: Syntax and Semantics [ 3-up PDF ] [ 1-up PDF ]
April 11: Meeting 5: Lexical and Syntax Analysis [ 3-up PDF ] [ 1-up PDF ]
April 13: Meeting 6: JavaScript II [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 3-4
Week 3
April 16: Meeting 7: Names, Bindings, Type Checking and Scopes [ 3-up PDF ] [ 1-up PDF ]
April 18: Meeting 8: Data Types [ 3-up PDF ] [ 1-up PDF ]
April 20: Meeting 9: Python I [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 5-6
Week 4
April 23: Meeting 10: Expressions and Assignment Statements [ 3-up PDF ] [ 1-up PDF ]
April 25: Meeting 11: Statement-Level Control Structures [ 3-up PDF ] [ 1-up PDF ]
April 27: Meeting 12: Python II [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 7-8
Week 5
April 30: Meeting 13: Subprograms [ 3-up PDF ] [ 1-up PDF ]
May 2: Meeting 14: Implementation of Subprograms [ 3-up PDF ] [ 1-up PDF ]
May 4: Meeting 15: Ruby I [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 9-10
Week 6
May 7: Meeting 16: Midterm
May 9: Meeting 17: Abstract Data Types [ 3-up PDF ] [ 1-up PDF ]
May 11: Meeting 18: Ruby II [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 11
Week 7
May 14: Meeting 19: Support Object Oriented Programming
May 16: Meeting 20: Concurrency [ 3-up PDF ] [ 1-up PDF ]
May 18: Meeting 21: ML I [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 12, 13
Week 8
May 21: Meeting 22: Functional Programming [ 3-up PDF ] [ 1-up PDF ]
May 23: Meeting 23: Functional Programming, cont.
May 25: Meeting 24: ML II [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 15
Week 9
May 28: No Meeting - Memorial Day Holiday
May 30: Meeting 25: Web PLs [ 3-up PDF ] [ 1-up PDF ]
June 1: Meeting 26: Prolog I [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 14
Week 10
June 4: Meeting 27: Logic Programming
June 6: Meeting 28:Industry and Programming Languages
June 8: Meeting 29: Conclusions [ 3-up PDF ] [ 1-up PDF ]
Readings: Sebesta Ch 16
Final Exam
June 15, 8-11am
Grading
| Homework: | 40% |
| Midterm: | 30% |
| Final Exam: | 30% |
Homework Assignments
Class Message Board - Google Groups
http://groups.google.com/group/cse130-spring-2007
Required Text
Concepts of Programming Languages, 7th Edition
Robert W. Sebesta
Addison Wesley, 2006
ISBN: 0-321-33025-0
Recommended Texts
Elements of ML Programming, ML97 Edition, 2nd Edition
Jeffrey D. Ullman
Prentice Hall
ISBN: 0-13-790387-1
JavaScript: The Complete Reference, Second Edition
Thomas A. Powell and Fritz Schneider
Osborne/McGraw-Hill, 2004
ISBN: 0-07-225357-6
Contact Information
Prof. Thomas A. Powell
tpowell@pint.com
On Campus Office Hours: CSE Bldg 3123 TBD
Off Campus Office Hours: By Appointment
Teaching Assistant
William Matthews
wgmatthews@cs.ucsd.edu
Office Hours: Wed 11am-noon in either B225/B240
Fri 10am-11am in either B225/B240



