CSE 141 Concepts in Programming Languages I (2011-2012)

CSE 141 Concepts in Programming Languages I

(Required for CSE.)
Catalog Data:

CSE 141 Concepts in Programming Languages I (Credit Units: 4) In-depth study of several contemporary programming languages stressing variety in data structures, operations, notation, and control. Examination of different programming paradigms, such as logic programming, functional programming and object-oriented programming; implementation strategies, progamming environments, and programming style. Prerequisite: Informatics 43 with a grade of C or better; or ICS 23/CSE23/ICS H23 with a grade of C or better and either ICS 51 or CSE31/EECS31 with a grade of C or better. Same as COMPSCI 141 and IN4MATX 101. (Design units: 0)

Required Textbook:
. Edition, , 1969, ISBN-13 978-0321330253.

Recommended Textbook:
Shannon Tauro
Relationship to Student Outcomes
This course relates to Student Outcomes: CAC a.
Course Learning Outcomes. Students will:

1. Understand implementation details of syntax & semantic analysis for a simple programming language.

2. Recall programming paradigms and associated languages.

3. Understand and appreciate the use of languages as they pertain to application areas. (CAC a)

4. Describe operations, control-structures, and program structure of simple imperative programs. (CAC a)

Prerequisites by Topic

Basic computing skills: searching and browsing the Web, reading and sending email, downloading files, viewing and printing PDF(Adobe Acrobat) documents, and creating or saving documents for email and other purposes in plain ASCII text form (not HTML or Word attachments).

Lecture Topics:
  • Foundations
  • Course Overview and Introduction (Week 1)
  • VonNeumann Architecture/Compilers/Interpreters (Week 1)
  • Fundamentals
  • Programming Language Syntax & Semantics (Week 2)
  • Names, Variables, & Binding (Week 2)
  • Data Types & Type Checking (Week 3)
  • Scope & Lifetime (Week 3)
  • Scope, Function Calls and Storage Management
  • Sub-Programs & Sub-Program Implementation (Week 4, 5)
  • Exploration of Languages
  • Logical Programming—Prolog (Week 6, 7)
  • Functional Programming—Haskell (Week 7, 8)
  • Inheritance/Generic Programming—C++/Java (Week 9, 10)
Class Schedule:

Meets for 3 hours of lecture, 1 hour of discussion and 1 hour of laboratory each week for 10 weeks.

Computer Usage:

Windows XP, Textpad, Java

Laboratory Projects:
  • Lab 1 – Von Nuemann Architecture & Parse Trees
  • Lab 2 – Variables, type checking, storage, scopes
  • Lab 3 – Language Paradigms
  • Lab 4 – Java to C++
Professional Component

Contributes towards the Computer Science and Engineering major requirements for Engineering Topics courses.

Design Content Description
Laboratory Portion:
Grading Criteria:
  • Homework/Labs: 35%
  • Quizzes: 15%
  • Midterm Exam: 20%
  • Final Exam: 30%
  • Total: 100%
Estimated ABET Category Content:

Mathematics and Basic Science: 0.0 credit units

Computing: 4.0 credit units

Engineering Topics: 0.0 credit units

Engineering Science: 0.0 credit units

Engineering Design: 0.0 credit units

June 6, 2011
Senate Approved:
October 7, 2009
Approved Effective:
2010 Winter Qtr