What High School Computer Science Doesn’t Teach You

During my last year of high school I took AP Computer Science. It sounded interesting, but prior to the summer homework assignment, I wasn’t sure what it would be about. At the time I had ideas that it could have been a general, basic class about how all the hardware worked together, or maybe it would be an introduction to software assembly, about all the bits and bytes in computing.

I was fortunately wrong. The class is simply an introduction to Java. It taught me the basics of Object Oriented Programming (OOP) using a language I have grown to call my favorite language. Through Cay Horstmann’s 4th edition of Java Concepts, the class taught:

  • Basic Computer Hardware (CPU, RAM, etc)
  • Objects and Classes
  • Data Types
  • Flow Control (if/else, loops)
  • Arrays and ArrayLists
  • Interfaces, Inheritance, and Polymorphism
  • Recursion
  • Searching and Sorting Algorithms

The above mentioned topics provide a great foundation for Java Concepts. Since a lot of the material in the class taught the underlying concepts of the programming constructs in computer science terms, it is easy to learn new languages after that (something I would assume that students starting with Python would have a harder time doing – I’ll elaborate on this in another post).

Continue reading “What High School Computer Science Doesn’t Teach You”