Although the AP Computer Science A course draws heavily upon theory, formal logic, abstract data structures, and a conceptual understanding of algorithms, you also must gain significant experience applying the concepts to tackle a wide range of problems. As you design data structures and develop algorithms, you should integrate ideas, test hypotheses, and explore alternative approaches. Further, activities motivated by real-world applications can provide insights about how computing can be useful in society, motivate the study of technical issues, and capture your interest. Please note that in an attempt to provide real-world and engaging contexts, the labs sometimes cover content that will not be assessed on the AP Computer Science A Exam.
The AP Computer Science A course must include a minimum of 20 hours of hands-on structured-lab experiences to engage you in individual or group problem solving. Thus, each AP Computer Science A course must include a substantial laboratory component in which you design solutions to problems, express your solutions precisely (i.e., in the Java programming language), test your solutions, identify and correct errors (when mistakes occur), and compare possible solutions. Collectively, these laboratory experiences and activities should contain the following characteristics:
- Explore computing in context at a significant level, building upon existing code that provides examples of good style and appropriate use of programming language constructs.
- Contain a significant problem-solving component in which you study alternative approaches for solving a problem, solve new problems, or modify existing code to solve altered problems.
- Provide you with experience working with programs involving multiple interactive classes and may involve decomposing a program into classes and using inheritance, interfaces, and other object-oriented concepts as identified in the AP Computer Science A topic outline.
Follow the links to download the student guides for four exemplar labs:
AP Computer Science A Consumer Review Lab Student Guide (COMING SOON)
This lab provides an opportunity to manipulate strings in the context of a consumer review. You will parse strings and call methods in the
String class, and work with conditional and iterative statements to complete methods.
AP Computer Science A Celebrity Lab Student Guide (COMING SOON)
Celebrity is a charades-like game where players add information about several “celebrities” to a pool. This lab will focus on class design and inheritance, and you will add and modify functionality in a GUI based application to play an interactive version of Celebrity.
AP Computer Science A Data Lab Student Guide (COMING SOON)
The Data Lab is a chance to explore a topic that interests you. You will pose a question, determine a data source, and then write code to read and process data in order to answer your question. This requires combining content learned throughout the course, from conditional statements and iteration to class design and data structures.
AP Computer Science A Steganography Lab Student Guide (COMING SOON)
For this lab, you will use the same code provided in Picture Lab to explore steganographic techniques of concealing messages or information within a picture. This involves the manipulation and traversal of data in a two-dimensional array.
The following links are to student guides for previous labs. While these labs are not explicitly aligned to the updated course, they are excellent resources that can be used to fulfill the lab requirement.
In this lab you will write methods that modify digital pictures. In writing these methods, you will learn how to traverse a two-dimensional array of integers or objects. You will also be introduced to nested loops, binary numbers, interfaces, and inheritance.
This lab is related to a simple solitaire game called Elevens. You will learn the rules of Elevens, and will be able to play it by using the supplied graphical user interface (GUI).
For this lab, you will explore some of the basics of natural language processing. As you explore, you will work with a variety of methods of the
String class and practice using the if statement. You will trace a complicated method to find words in user input.