AP Computer Science introduces you to the formal concepts of object-oriented computer programming using the Java programming language. During the first semester, you will gain an understanding of the basics of object-oriented programming with a focus on basic Java syntax, data types, decision and looping structures, mathematic and logic operators, basic class and object creation, and finally method creation and implementation. During the second semester, you will have the opportunity to further develop and refine your programming skills by focusing on the techniques of data abstraction, including encapsulation, inheritance, and polymorphism. The emphasis will be on the organization of information and the implementation of common data structures through common searching and sorting algorithms. You will also explore the concept of recursion.