IN4MATX 101 Concepts in Programming Languages I (2013-2014)

IN4MATX 101 Concepts in Programming Languages I

(Required for CSE.)
Catalog Data:

IN4MATX 101 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, programming environments, and programming style. Prerequisite: IN4MATX 42 or I&C SCI 51 or CSE 31 or EECS 31 each with a grade of C or better; and IN4MATX 45 or I&C SCI 23 or CSE 23 each with a grade of C or better. Same as CSE 141 and COMPSCI 141. (Design units: 0)

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

Recommended Textbook:
None
References:
None
Coordinator:
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:
  • Historical Influences
  • Why programming langueage design is hard
  • Expressions and statements
  • Type systems
  • Generic classes in Java
  • Programming language implementation
  • Functional programming in Haskell
  • Abstract data types (ADTs)
  • Implementation of classes, inheritance, and polymorphism
  • Implementation of subprograms
  • Introduction to Java threads
  • Primitive mechanisms
  • Deadlock
  • Concurrent data structures
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 – Writing a grammar for FUNCyMonkie
  • Lab 2 – Build a generic binary search tree and a function
  • Lab 3 – Language Paradigms
  • Lab 4 – C++ to lower-level abstractions
Professional Component

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

Design Content Description
Approach:
Lectures:
Laboratory Portion:
Grading Criteria:
  • Five Projects: 30%
  • Midterm Exam: 30%
  • Final Exam: 40%
  • 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

Prepared:
July 22, 2013
Senate Approved:
May 6, 2013
Approved Effective:
2013 Winter Qtr