CSE 43 Intermediate Programming (2014-2015)

CSE 43 Intermediate Programming

(Required for CSE.)
Catalog Data:

CSE 43 Intermediate Programming (Credit Units: 4) Intermediate-level language features and programming concepts for larger, more complex, higher-quality software. Functional programming, name spaces, modules, class protocols, inheritance, iterators, generators, operator overloading, reflection. Analysis of time and space efficiency. Prerequisite: I&C SCI 32 or CSE 42 with a grade of C or better. Same as I&C SCI 33. Only one course from CSE 43, I&C SCI 33, I&C SCI 22, CSE 22, I&C SCI H22, IN4MATX 42, I&C SCI 33 may be taken for credit. (Design units: 0)

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

Recommended Textbook:
None
References:
None
Coordinator:
Richard Eric Pattis
Relationship to Student Outcomes
No student outcomes specified.
Course Learning Outcomes. Students will:

1. Build reusable components.

2. Use tools for integrating features into the language syntax.

3. Write programs in the functional style and describe the advantage of that approach.

4. Analyze and describe (using O-notation) the execution time and space consumption of simple programs.

5. Make informed implementation decisions based on performance tradeoffs

6. Build components using inheritance and interfaces.

7. Compare programming languages along dimensions such as static or dynamic typing, automatic or manual garbage collection, and implicit or explicit concurrency.

Prerequisites by Topic
  • ability to write programs in Python using libraries.
Lecture Topics:

*Functions: lambdas, generators, recursion, and functional programming. * Classes: operator overloading, (iterator) protocols, inheritance, and self- referential classes. * Computer Science: EBNF//regular expressions, decorators, unit-testing, analysis of algorithms, and (Java and) static typing.

Class Schedule:

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

Computer Usage:
Laboratory Projects:
  • Project #0: Eclipse Python and Debugger Perspectives
  • Project #1: Iteration and Major Data Types: List, Tuple, Set, and Dict
  • Project #2: Classes, Overloaded Operators, and Iterators
  • Project #3: Namedtuple
  • Project #4: Annotation Checker
  • Project #5: Inheritance and Simulation
Professional Component
Design Content Description
Approach:
Lectures:
Laboratory Portion:
Grading Criteria:
  • Quizzes: 20%
  • Programming Assignments: 33%
  • Midterm Written ExamL 17%
  • Final Exam: 30%
  • Total: 100%
Estimated ABET Category Content:

Mathematics and Basic Science: 0.0 credit units

Computing: 4.0 credit units

Engineering Topics: 4.0 credit units

Engineering Science: 4.0 credit units

Engineering Design: 0.0 credit units

Prepared:
April 15, 2014
Senate Approved:
June 18, 2013
Approved Effective:
2013 Winter Qtr