Programming Languages: Principles and Paradigms

CSE130, Spring 2003

University of California, San Diego


Course Overview

CSE 130 surveys the main features and fundamental concepts of programming languages and their design.  The course considers the characteristics which various languages have in common as well as the ways in which they may be differentiated.  The principle languages used as exemplars of the course concepts are C, Java, LISP, and Prolog, although a number of others will be covered to demonstrate language principles, design, and evolution.  While one component of the course will be to write programs in the principle languages, CSE 130 is not a programming course, per se, and thus focuses more on programming languages in general, and less on the details of specific languages.  As such, in addition to programming assignments, student performance in the course will be based strongly on homework assignments, a midterm, and a final exam.

Contact Information

Name email Telephone Office Office Hours
Henri Casanova (Instructor) casanova@cs.ucsd.edu 858-822-0489 AP&M 3349C Mon/Wed, 5PM - 6PM
David Hutches (Instructor) hutches@cs.ucsd.edu 858-534-2202 AP&M 5016 Tue/Thu, 5PM - 6PM
Abhishek Agrawal (TA) abagraw@cs.ucsd.edu N/A AP&M 3349A Fri, 11AM - 12PM
Haixia Shi (TA) hashi@cs.ucsd.edu N/A AP&M 3349A Mon, 3PM - 4PM

Integrity of Scholarship

University rules on integrity of scholarship will be strictly enforced.  By taking this course, you implicitly agree to abide by the UCSD Policy on Integrity of Scholarship described beginning on page 62 of the Academic Regulations section (PDF) of the 2002-2003 General Catalog, in particular, "all academic work will be done by the student to whom it is assigned, without unauthorized aid of any kind."

You are expected to do your own work on all assignments; there are no group projects in this course.  You may (and are encouraged to) engage in general discussions with your classmates regarding the assignments, but specific details of a solution, including the solution itself, must always be your own work.  All exams are closed book; no implements other than your brain and a writing instrument are to be used.

Incidents which violate the University's rules on integrity of scholarship will be taken seriously.  In addition to receiving a zero (0) on the assignment/exam in question, students may also face other penalties, up to and including, expulsion from the University.  Should you have any doubts about the moral and/or ethical implications of an activity regarding the course, please see the instructors.

Class Meeting Schedule

Lectures: Tue/Thu, 3:30-4:50, CSB 001
Discussion Sessions: Fri, 10:00-10:50, HSS 1330

Midterm Exam: 05/13, 3:30-4:50, CSB 001
Final Exam: 06/12, 3:00-6:00, CSB 001

Grading Guidelines

Homework Assignments (HW) 2 @ 7.5% each
Programming Assignments (PA) 3 @ 10% each
Midterm Examination 25%
Final Examination 30%

Notes:

Text and Lecture Materials

The required text for CSE 130 for the Spring Quarter 2003 is Concepts of Programming Languages, Fifth Edition, by Robert W. Sebesta (ISBN 0-201-75295-6), and is available at the UCSD Bookstore.

Other course materials such as reference works, web sites, tutorials, etc. will be made available on this site as appropriate.  Please note that, because of the broad range of topics covered in this class, not all material presented during lectures will appear in the textbook, or may be explained differently and/or in greater depth.  Acceptable completion of the course assignments and examinations is contingent upon familiarity with the assigned readings and material covered in class, so attendance at lectures and discussion sections is exceptionally important.

Homework Assignments (HW)

Programming Assignments (PA)

Outline of Lectures

Click on the lecture's title to see the program examples given during class.

Date Topic Reading Assignments
Tue, 04/01 Course description, introduction to programming languages Chapter 1  
Thu, 04/03 Language categories, compilation, interpretation Chapter 2  
Tue, 04/08 C and Java Chapters 11 & 12
Thu, 04/10 Prolog Chapters 16 PA #1 out
Tue, 04/15 LISP Chapters 15  
Thu, 04/17 Syntax Chapters 3 & 4  
Tue, 04/22 Semantics Chapters 3 & 4 PA #1 due / HW #1 out
Thu, 04/24 Names, variables, binding Chapter 5  
Tue, 04/29 Binding, type checking Chapter 5 HW #1 due / PA #2 out
Thu, 05/01 Data types Chapter 6 & 11  
Tue, 05/06 Expressions and assignments Chapter 7  
Thu, 05/08 Expressions and assignments Chapter 7  
Tue, 05/13 Midterm examination   Solutions!
Thu, 05/15 Control structures Chapter 8 PA #2 due / PA #3 out
Tue, 05/20 Subprograms Chapters 9 & 10  
Thu, 05/22 Subprograms Chapters 9 & 10  
Tue, 05/27 Scoping Chapter 5  
Thu, 05/29 Scoping Chapter 5 PA #3 due / HW #2 out
Tue, 06/03 Other languages Chapter 2  
Thu, 06/05 Unusual and special purpose languages Chapter 2 HW #2 due
Thu, 06/12 Final Examination Solutions!

Useful Links