COM 1340 Recursive Thinking

Course Description and Catalog Information
Course Information (links to past and current course materials)
Course Format
Course Coordinator
Textbooks and References
Course Goals
Prerequisites by Topic
Major Topics Covered in Course
Laboratory Projects

Course Description

Offers an introduction to recursive thinking, recursive data types, and to functions defined by induction of the structure of recursive data.

1 QH credit
Prerequisite: COM 1201 and MTH 1137.

Course Information

Course is offered during the Fall and Winter quarters. CS majors are guaranteed a place in class.
  • Fall 2000
  • Winter 2001
  • Course Format

    BSCS03 required course
    BSCS04 Languagecore
    BACS required core
    BSIS general elective

    This is a one credit preparation for the BS CS Languages core for students graduating in the years 2004 and beyond and is also a required course for BA CS majors.

    BS CS majors graduating in the year 2003 and before should take this course and one additional four gredit CS elective to satisfy the COM 1102 requirement, if they did not take that course already.

    Course Coordinators

    Professor Carol Hafner

    Textbooks and References

    Fall 2000

    Course Goals

    Complexity, Design and Abstraction:
  • Be able to solve simple computational problems using recursive data types and recursive algorithms. Introduce students to the use of abstract data types and representation independence.
  • Typical problems include searching and insertion into lists and trees, evaluating arithmetic expressions using several different representations.
  • Programming Skills:

  • Attain basic competence in a functional programming language (Scheme),and be able to create well-designed recursive programs that operate on recursive data types.
  • Prerequisites by Topic

    Students need to know: computer programming, lists, trees.
    They should be previously exposed to recursion.

    Major Topics Covered in the Course

    Laboratory projects

    Four computer programming assignments (2 weeks each).