COMPSCI 141 Concepts in Programming Languages I (2016-2017)

COMPSCI 141 Concepts in Programming Languages I

(Required for CSE.)
Catalog Data:

COMPSCI 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, programming environments, and programming style. Prerequisite: (I&C SCI 51 or CSE 31 or EECS 31 with a grade of C or better) and (I&C SCI 46 or CSE 46 with a grade of C or better). School of Information and Computer Science majors and Computer Science and Engineering majors in School of Engineering have first consideration for enrollment. Same as CSE 141 and IN4MATX 101. (Design units: 0)

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

Recommended Textbook:
None
References:
None
Coordinator:
Shannon Tauro
Relationship to Student Outcomes
No student outcomes specified.
Course Learning Outcomes. Students will:
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 15, 2016
Senate Approved:
February 9, 2016
Approved Effective:
2016 Fall Qtr