San Jose State University

CS 152 - Programming Languages

Cay S. Horstmann

Fall 2008

For meeting times and location, office hours, and contact information, please visit http://www.sjsu.edu/faculty/cay.horstmann.

The calendar is subject to frequent change; visit it before each class meeting.

Description

The course goal is to study programming language design, with an emphasis on the functional paradigm.

Topics covered:

For the official catalog description, please visit http://info.sjsu.edu/web-dbgen/catalog/departments/CS-courses.html.

Why take this course? Programming languages are once again a hot topic. Traditional languages such as C++ and Java have serious limitations, and their users have become restless. Have a look at dzone.com and observe how many blogs are about Scala, Groovy, Ruby, and other emerging languages. You will learn about programming paradigms other than the familiar object-oriented programming, how programming languages are implemented, and how future programming languages can rise to the challenge posed by the end of Moore's law.

Prerequisites

CS 46B and CS151. If you are registered for the class, you must email me your answers to the prerequisite quiz by 23:59 of the day indicated in the schedule, or I will drop you from the class for failure to fulfill the prerequisites.

Specifically, the following skills are assumed:

Textbook

There is no required text.

Student Learning Outcomes

Upon completion of this course, the successful student will be able to

Course Requirements

Exams
Two in-class exams (15% per exam) and a final exam (25%). Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency. Makeup exams may be oral.
Programming Assignments
Four assignments (7.5% per assignment). Schedule your time well to protect yourself against unexpected problems. I suggest you ignore the official deadlines and complete the assignments 48 hours earlier. Late work is not accepted, and there is no extra credit or makeup work.
Project
One individual project (15%), assigned by the instructor. Late work is not accepted, and there is no extra credit or makeup work.
Class Attendance
Class attendance is not optional. I expect each student to be present, punctual, and prepared at every scheduled class.
Laptops
You will be required to bring a wireless laptop to all (!) classes and exams. You need to have the following tools installed on your laptop:

Grading Policy

Exams are curved and given letter grades with + or -. Each graded task (assignment, project, etc.) is graded as a letter grade, using the following scale.

A = all (or almost all) of the task solved and delivered in a professional manner
B = most of the task solved, but at least one key issue missing, or significant issues with delivery
C = some of the task solved, with at least half of the key issues resolved, but at least two key issues missing
D = a solution has been attempted, with at least one but but less than half of the key issues resolved
F = no solution has been attempted, or the attempted solution did not resolve any of the key issues of the task

Letter grades are converted into number grades and weighted with the percentages given in the Course Requirements section. The weighted average is rounded towards the nearest letter grade, which is your class grade.

Miscellaneous Policies

Add Policy: To add the course, you must submit your solution to the prerequisite quiz, I will randomly choose among add requests that I receive up to the start of add request processing (see the calendar below), and in the order of receipt thereafter. If there is space, I will reply to your email with an add code. You must use your add code within 48 hours and email me to confirm that you added the class, or the add code will be reassigned to someone else.

eCampus System: You will submit labs, homework assignments, and exams into the eCampus system. Your login is your student ID and your initial password is fall (please change immediately).

Copyright of Materials: All materials created by the instructor for this course, including lectures, handouts, homeworks, exams, solutions, projects, and so on, are copyrighted property of the instructor. You may transscribe or record lectures or copy course materials for the use of yourself and other students registered in this course. You may not sell or give transscriptions or recordings of lectures or copies of course materials to others without the prior written consent of the instructor.

For further greensheet information please see http://www.cs.sjsu.edu/greensheetinfo/index.html