Please sign in to edit, using the button at the upper right corner of the page.
If you would like your name changed, contact Mg27713.


Functional Object Oriented Programming

From Gunn Wiki
Revision as of 14:39, 4 September 2024 by Jc37917@pausd.us (talk | contribs) (→‎Should I take this course?)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

Functional Object Oriented Programming
DepartmentCTE
LengthYear
Credit typeWeighted
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.