Lecturer Pearce
Office Hours TR
1:00 - 3:00 in 213 Macquarrie Hall
Phone: (408) 924-5065
Email: prof.jpearce@gmail.com
URL: www.cs.sjsu.edu/faculty/pearce/pearce.html
Lectures section
3: TR 10:30 - 11:45 in MH 222
section 5: TR 5:30 - 6:45 in MH 422
Text There is no required text. Course notes and other links can be found at:
www.cs.sjsu/faculty/pearce/cs152
References:
Kenneth Louden, Programming Languages, Brooks/Cole, 2003, ISBN 0-534-95341-7
David Watt, Programming Language Concepts and Paradigms, Prentice Hall, 1990
Friedman, Wand and Haynes, Essentials of Programming Languages, 2nd ed., MIT Press 2001
Lohr, Go To: The Story of the Math Majors, Bridge
Players, Engineers, Chess Wizards, Maverick Scientists and Iconoclasts--The
Programmers Who Created the Software Revolution.
Software NetBeans or Eclipse
Prerequisites Completion of CS151 or an equivalent course with a grade of C- or better. Students who do not have good Java programming skills will quickly fall behind.
Grading Grades will be determined by approximately five or six programming assignments (50%), one midterms (20%), and a final exam (30%). Late assignments are accepted by prior arrangement only. Submitting assignments or exams containing fragments of unoriginal work will be treated as an act of academic dishonesty and will result in failing the class and an official report filed with the university.
Course Outline Although it sounds paradoxical, the principle goal of this course is to provide students with a language-independent way of thinking and talking about programs. This perspective will help students design better programs and to better exploit the features of chosen implementation languages. To achieve this goal, we will analyze and compare the semantics of expressions, statements, declarations, types, functions, and modules in a variety of actual and artificial languages.
The
second goal will be to introduce students to the major programming paradigms:
imperative, functional, logic, and object-oriented. This goal will be achieved
by asking students to write programs in languages selected from each paradigm: