Learn to Teach Java: Writing Classes and Arrays (Coursera)

Learn to Teach Java: Writing Classes and Arrays (Coursera)

Learn to program using Class design and 1-D Arrays in Java, and prepare to teach others using the free, online interactive CS Awesome textbook. In this course for teachers we'll guide you both in learning Java concepts and skills but also in how to effectively teach those to your students.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

This course will support you in teaching the Advanced Placement Computer Science A course or a similar introductory university-level programming course. We'll cover the critical Java concepts of class design and 1-dimensional arrays, as covered in the APCS A Units 5 and 6. Each topic will begin by relating Java to block-based programming languages and then provide video overviews of CS Awesome content along with additional materials to supplement learning for your students.
You'll engage with additional materials to support your teaching including "deep dive" classroom discussion questions, assessment overviews, code tracing and problem solving skills for your students, including preparation for free response coding questions.
Course 3 of 5 in the Learn to Teach Java Specialization.

Syllabus

WEEK 1
Welcome!
Meet Dr. Simon and fellow learners in this class! Find out what you’ll be doing and learning.
Creating Classes (Unit 5): Learn as a Student
We've been using objects of classes created by others -- now it's our turn! Using CS Awesome, we'll learn to design and create classes by encapsulating data and methods.

WEEK 2
Writing Classes (Unit 5): Teacher Powerup
This week we'll go deeper and engage with some resources to support your teaching. You'll learn how these concepts are commonly assessed, but focus a LOT on how class creation can be assessed -- especially on the APCS A free response questions. Finally, you can check your own Unit 5 Java and Java Teacher mastery on our end of Unit 5 quizzes.

WEEK 3
Arrays (Unit 6): Learn as a Student
Arrays extend the power of iteration to allow us to repeat instructions on (potentially) large sets of data. Want to store and calculate grades for an entire class of students? Want to find the minimum or maximum temperature in a file of historical temperature readings? Use arrays! Using CS Awesome, we'll learn to create and iterate over 1-dimensional arrays and really start to ramp up our problem solving skills.

WEEK 4
Arrays (Unit 6): Teacher Powerup
This week we'll go deeper and engage with some resources to support your teaching. You'll explore some questions to use in classroom analysis discussions (Peer Instruction) and and learn how these concepts are commonly assessed. Again, we'll look at the kinds of free response questions one can ask about arrays! Finally, you can check your own Unit 6 Java and Java Teacher mastery on our end of Unit 6 quizzes.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Pointers, Arrays, and Recursion (Coursera) Coursera
Duke University

Pointers, Arrays, and Recursion (Coursera)

The third course in the specialization Introduction to Programming in C introduces the programming constructs pointers, arrays, and recursion. Pointers provide control and flexibility when programming in C by giving you a way to refer to the location of other data. Arrays provide a way to bundle data by guaranteeing sequences of data are grouped together. Finally, recursive functions—functions that call themselves—provide an alternative to iteration that are very useful for implementing certain algorithms.

Sep 28th 2026
5-12 Weeks
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Oct 12th 2026
5-12 Weeks
Programming Languages, Part A (Coursera) Coursera
University of Washington

Programming Languages, Part A (Coursera)

This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones.

Oct 5th 2026
5-12 Weeks
Julia Scientific Programming (Coursera) Coursera
University of Cape Town

Julia Scientific Programming (Coursera)

This four-module course introduces users to Julia as a first language. Julia is a high-level, high-performance dynamic programming language developed specifically for scientific computing. This language will be particularly useful for applications in physics, chemistry, astronomy, engineering, data science, bioinformatics and many more.

Oct 12th 2026
4 Weeks
Matlab and Simulink Basics (Coursera) Coursera
Starweaver

Matlab and Simulink Basics (Coursera)

Matlab and Simulink Basics is a meticulously crafted course offering a comprehensive introduction to Matlab's programming environment and Simulink's modeling capabilities. This course is tailored for individuals keen on bolstering their skills in these indispensable tools for engineering, science, and research domains. From laying down foundational concepts to delving into practical applications, participants will embark on a journey that hones their abilities to manipulate data, design models, and interpret results with Matlab and Simulink.

Oct 12th 2026
4 Weeks
Excel/VBA for Creative Problem Solving, Part 2 (Coursera) Coursera
University of Colorado Boulder

Excel/VBA for Creative Problem Solving, Part 2 (Coursera)

Excel/VBA for Creative Problem Solving, Part 2" builds off of knowledge and skills obtained in "Excel/VBA for Creative Problem Solving, Part 1" and is aimed at learners who are seeking to augment, expand, optimize, and increase the efficiency of their Excel spreadsheet skills by tapping into the powerful programming, automation, and customization capabilities available with Visual Basic for Applications (VBA).

Oct 5th 2026
4 Weeks
Kotlin for Java Developers (Coursera) Coursera
JetBrains

Kotlin for Java Developers (Coursera)

The Kotlin programming language is a modern language that gives you more power for your everyday tasks. Kotlin is concise, safe, pragmatic, and focused on interoperability with Java code. It can be used almost everywhere Java is used today: for server-side development, Android apps, and much more. This course aims to share with you the power and the beauty of Kotlin.

Oct 12th 2026
5-12 Weeks
Algorithms, Part II (Coursera) Coursera
Princeton University

Algorithms, Part II (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Oct 12th 2026
5-12 Weeks
Concurrent Programming in Java (Coursera) Coursera
Rice University

Concurrent Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability).

Sep 28th 2026
4 Weeks
Parallel programming (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Scala 2 version) (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library.

Oct 5th 2026
4 Weeks