Functional Object Oriented Programming
Functional Object Oriented Programming, or FOOP, is one of Gunn's computer science classes. It is typically taken after AP Computer Science Principles and before AP Computer Science A.
Department | CTE |
---|---|
Length | Year |
Credit type | Weighted |
Teacher(s) | Mr. Kaneko |
Course catalog description
This project-based course introduces the student to the functional and object-oriented programming paradigms. It includes concepts such as functions, conditionals, data abstraction, recursion, lambda, higher-order functions, lists, loops, arrays, interfaces, inheritance, and polymorphism. Some projects throughout the year will consist of creating small games, simulating real-world processes, taking apart a computer, and producing graphically interesting programs (such as Conway’s Game of Life) in which almost all of these big ideas are needed.
• Prior Recommended Courses: Completion Geometry A (or higher), Algebra 2 (or higher), or concurrent enrollment or completion of Geometry H (or higher)
• Homework Expectation: 1-1.5 hours per week
• This is a college prep course
Topics
In the first semester of this course, students learn the functional language Simply Scheme, a version of Scheme, a dialect of Lisp. Although many students with prior experience programming in languages such as Python and Java lament the unconventional nature of this language, is is an important part of the course.
In the second semester, students learn Java, an object-oriented language.
FOOPH
Students taking FOOP have the opportunity to complete two Stanford Nifty projects to earn Honors credit for FOOP if they already have an A in the class. They do not need to sign up for a different course during course registration.
Should I take this course?
This course is technically a prerequisite for AP CS A, though students may choose to do summer homework and directly enroll in AP CS A instead. Similar to AP CS A, the actual homework load is very small despite what the course catalog says.
Programming experience is not at all necessary for this course. In first semester, students learn Scheme, a functional programming language very different from more common procedural languages.