Skip to main content

AP Computer Science A - Programming in Java Part 1

About this Course

This course is an online version of the AP Computer Science A course that is offered in many high schools. CS180.1x from Purdue University is taught by faculty, students and staff from our Department of Computer Science. Our intent is to prepare you for the AP Computer Science A test, with assessments and projects modeled after the AP Computer Science curriculum and exam. Taking the class also serves as a great introduction to programming in Java. You don't need any prior knowledge of programming, so just come with an eagerness to learn and you'll go far!

The entire AP Computer Science A course is divided into four parts, each approximately 6-weeks in length. We expect that it will take you about 5 hours per week to work through the material, although this can vary depending on how quickly you're picking up on new concepts. This is the first part of the course, and will cover some basic concepts of computer operation, the binary number system, variables, arithmetic, data types and selection statements.

Material Covered

Each week, one or more course topics will be released. New items will be released on Sunday, 23:59:59 Eastern Standard Time (Midnight). It will be your responsibility to manage your time effectively so that all material can be completed by the following Sunday night. Any additional updates to the course will come as needed, but students should not expect new content for a topic after the week has been released.

Week 1: Introduction to Computer Science

Week 2: The Number System

Week 3: Primitive Data Types

Week 4: Constructors, References, and Strings

Week 5: Selection 

Week 6: Selection Continued

Course Staff

Sunil Prabhakar

Sunil Prabhakar - Course Lecturer

Debbie Perouli

Debbie Perouli - Course Lecturer

Phil Sands

Phil Sands - Course Lecturer

Yizhou Qian

Yizhou Qian - Course Assistant Lecturer

Sundeep Bath

Sundeep Bath - Teaching Assistant

Robyn Berkel

Robyn Berkel - Teaching Assistant

Sean Flannery - Teaching Assistant

Raj Iyer

Raj Iyer - Teaching Assistant

Taylor Lamb - Swiss Army Knife

Eehita Parameswaran

Eehita Parameswaran - Teaching Assistant

Jackie Reh - Teaching Assistant

Kush Rustagi

Kush Rustagi - Teaching Assistant

Prerequisites

You don't need any specific computer knowledge to succeed in this course, but it is recommended that you have been through at least one high school Algebra course.

Weekly Time Commitment

We estimate that you should spend approximately five hours per week on the course on average. Some weeks will vary depending on programming assignments, so please look ahead in the week to see what work you will have to do and budget your time wisely!

How to Succeed in this Course

To obtain a certificate at the end of this course, you will need a 50%. This may seem low, but the AP Computer Science exam has a similar metric to measure success. We know our assignments will be challenging, and want to give you an opportunity to grow over the 6 weeks of each portion of the course. All assignments, activities and projects will be due on Sunday evening, at 23:59:59 Eastern Standard Time (Midnight). Purdue University is in the Eastern Time Zone of the United States. Please do your best to make the deadline each week and budget your time accordingly.

The overall grade can be broken up into the following categories:

  • Check Your Understanding - 5%
  • Vocabulary - 5%
  • Activities - 10%
  • Exams - 30%
  • Projects - 50%

You will see the following components within this course. Completing them all will help you, but not all of them will count towards your final grade.

Video Lectures The videos in each lesson will be your primary source of new information. You should watch these as many times as needed to master new concepts, and use them as needed while practicing your coding.
Vocabulary Most videos will introduce new vocabulary. At the end of each week, there are vocabulary checks. The vocabulary is especially important to those who are new to programming and are not familiar with the terminology. Knowing the vocabulary will also help you better understand the assignments and project descriptions.
Pre-Lesson Assessment Before learning new material, there are surveys to assess your prior knowledge of the material. These will not be for credit, but they will be useful in the sense that you will get a hint of what material you are about to learn or what you should look for in the upcoming lessons. These also help us better understand what you already know about the material in question.
Check Your Understanding After having viewed a course video or read about an important course concept, we will provide opportunities for you to test your knowledge. These will be for credit, but we will give you several opportunities to get the right answer.
Discussion Participation on the discussion boards will help you to learn more about the concepts in computer science. Use these boards to ask questions, practice using computing ideas, and help other students. We're all trying to learn, and your peers may be one of your best resources!
Activities You will not see an activity each week of the course, but these serve as short assessments of what you have learned, and a chance for you to practice new programming concepts. These will count towards your final grade.
Projects The projects are by far the most valuable resource for you. Programming is learned by doing - writing code and practicing the concepts that you have learned. These are longer assignments that should take you significant time to complete.
Assessments If you are taking this course in preparation for the AP Computer Science A exam, we highly encourage you to complete the assessments. The exams will include multiple choice questions and free response questions that are modeled after the AP Computer Science A exam.

Learning Objectives

Before you begin each new week, learning objectives will be listed for the course. These connect directly to learning objectives from the Computer Science Teachers Association standards and the AP Computer Science A Course objectives. To see all of the learning objectives, please click here.

Academic Policy

With regards to academic integrity, we are posting the student honor code from Purdue University below. It discusses self-governing behavior, but the spirit of the statement applies well to our course.

The purpose of the Purdue University academic community is to discover and disseminate truth. In order to achieve these goals, the university commits itself towards maintaining a culture of academic integrity and honesty. For this to be possible, self-discipline and a strong desire to benefit others must be present within each individual. Therefore, we students must follow the Regulations Governing Student Conduct of Purdue University out of a sense of mutual respect, rather than out of fear of the consequences of their violation.

Discussions and Collaboration

As mentioned above, the discussion boards are an important part of this course, and may in fact end up being your most valuable resource. Students may ask questions on the forum for other students to answer. Course staff will be monitoring the forums, but may not answer every question, so look to your peers for help! Participation in the discussion forums is voluntary, but we strongly encourage the use of this feature for your academic benefit.

There are certain rules you need to follow to be able to utilize this resource:

    • Do NOT post entire blocks of code directly on the forums. Feel free to discuss the concepts of your code, but try to avoid the specificity of the solution that you have devised.
    • Do NOT post inappropriate content.
    • Do NOT comment on a post that is inappropriate. Instead, flag it to notify the staff.
    • Do NOT discuss test answers before the due date of the assessment.
    • Do discuss test answers after the assessment due date has passed.
    • Do search for your question before posting it, as the question may have already been asked.
    • Do use correct grammar and spell-check.
    • Do NOT post in all caps.
    • Do feel free to discuss interesting topics outside of the course, but pertaining to Computer Science in some way
    • Do NOT write posts that do not pertain to Computer Science

Inappropriate posts will be removed from the forum, and repeated offenders may be removed from the course.