Java Programming Essentials: AP Computer Science A
3.5 (71 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,950 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Java Programming Essentials: AP Computer Science A to your Wishlist.

Add to Wishlist

Java Programming Essentials: AP Computer Science A

AP Computer Science, Java, Java 8, Programming, Objected Oriented Programming, OOP, BlueJ, Eclipse, Java SE
Bestselling
3.5 (71 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,950 students enrolled
Created by Dr. Eric Chou
Last updated 7/2017
English
English
Current price: $10 Original price: $60 Discount: 83% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 20 hours on-demand video
  • 18 Articles
  • 289 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
What Will I Learn?
  • Learn essential Java programming skills and master big ideas in computer science
  • Learn how to do programming and analyze a program
  • Get prepared for AP Computer Science Exam, and work toward a perfect score 5
View Curriculum
Requirements
  • Some Math knowledge at least Algebra one
  • Some computer knowledge is preferred but not required.
Description

[CS 101A]

[Please watch all preview videos before signing up this course]

This course covers the first of AP Computer Science which includes complete introduction for Java programming. The course is suitable for people who are seeking for a on-line class for introduction to Java programming, who is preparing for AP Computer Science Exam in high school and who want to sharpen their knowledge in Java.

This part 1 course includes elementary programming in Java, program structures, OOP, and basic data structures. This course revolutionize the way computer science is taught. Instead of teaching textbook chapter by chapter.

This course will be focused on an example program in each lecture. Lucid big idea in computer science will be introduced by the example program. It is followed by explanation of Java syntax and other language features. Practice questions, quizzes, and programming exercises will be given thereafter to enhance the understanding of the idea and to help to improve programming efficiency and test scores.

A spiral study model is suggested for student to build up good programming habits and shorten learning cycles in programming.

I would proudly say that this is one of the best Java Programming course on-line ever.

In this course, you will get:

(1) On-line lectures (with .pdf slides)

(2) sample programs (in Java)

(3) Quiz and exams (in multiple choice format) with solution

(4) AP format exam with solution.

(5) Free-online textbook access.

(6) Free on-line related information links and book chapters.

(7) Demo programs

(8) Lab projects

(9) Chapter projects.

(10) Facebook Q&A support and Gmail responses.

Who is the target audience?
  • High School STEM student working toward science and engineering school
  • Students seek for basic computer knowledge for college preparation
  • College students who want to sharpen their programming skills
  • Working individuals who want to learn Java to boost up their career.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
190 Lectures
20:45:38
+
Start Here (Introduction to Java Programming AP Edition)
5 Lectures 24:47

Brief Introduction for Instructor and the teaching philosophy.

Preview 01:30

Overview of AP Computer Science Course as a whole. It also includes the table of contents for part 2 and part 3. Provide readers a good big picture of what to expect in the course. The slides (.pdf file) is also made downloadable.

Preview 07:05

Provides information for what materials are available in this course, how to make your own overall study plan for various purposes, and how to organize a study plan for each lecture.

Preview 13:12

Think Java: Companion book for this course. 

Think Java
02:11

Extra-practices by the University of Washington. 

AP Computer Science A Practices by University of Washington and Runestone
00:49
+
Unit 1/Chapter 1: Introduction to Computers, Programs, and Java
15 Lectures 01:43:14

Abacus is an ancient tool for calculation. It is still used widely for training of mental calculation. It is also a good example to show how computation can be mapped to a very simple hardware (abacus: beams and beads). In this lecture, we use abacus to explain computation, hardware, programming language and programs.

Preview 02:39

Introduction to computer science from different view points: digital system, hardware, software, operation system, programming language and problem solving. 

Preview 08:10

Short overview of Java Development Kit, JRE, Java Virtual Machine, Java API and Java IDE. The purpose is to give audience the first impression of these terms but not the details of how they works. So, don't get scared if you do not fully understand what it is. We will return to them over and over again.

Preview 06:25

Show the internet resources available for eC Learning Channel by Dr. Eric Chou to support this course. 

My Udemy: https://www.udemy.com/user/eric-chou/

Youtube channel: https://www.youtube.com/channel/UCXGHpbLr9O5GydD0Ja9C7Nw

Facebook: https://www.facebook.com/profile.php?id=100007999848206

Quora: https://www.quora.com/profile/Eric-Chou-21 

Twitter: https://twitter.com/eCwarlephant

Email: echou510@gmail.com

eC Learning: Quality MOOC STEM Education
01:45

Show student the resources and other educational materials provided by the Lecturer.  To guide student to learn Programming step by step. 

How to master Java Programming?
01:11

Discuss programming languages used in different system level (machine language, assembly language, and high-level programming language). Also discuss the history and trends of programming language.

Preview 07:58

Demonstrate how to install Java Development Kit (JDK 8) and Integrated Development Environment (Eclipse and BlueJ). We use BlueJ as our default tool. Please also download the PeaZip program if you do not have proper compression/de-compression program. (In this course, we use BlueJ as the main development IDE.) If you want to use Eclipse, please download

Total_Beginner_Companion_Document.pdf

file.

You may also find PeaZip tool to be useful when you need to download a zipped source code file (.zip).

Preview 06:36

Demonstrate the advantages of BlueJ as the first Integrated IDE for beginning students.

Why BlueJ?
13:37

Guide you from installation to the first program develop in the DrJava Environment. 

DrJava IDE Installation Guide (Optional)
10:04

Java compiler installation guide.

Java 8 Standard Edition Installation Guide (Stand-alone Version)
07:43

Installation Guide for Eclipse (Neon) and plugins. (The same method can be used for all other versions of Eclipse)

Eclipse IDE Installation
15:14

A simple program, HelloWorld.java, is presented. In this lecture, this simple program will be compiled and run. Discussion on comment lines and basic program structure will also be included. Check study plan for the information or program files to download.

Preview 07:58

Good coding style is very very very important. (Please excuse me to repeat "very" three times. Because it is really very important. A good commonly shared style can make the program less error-prone and make the team work much more efficient and lower misunderstanding.

The programmer's habits is equally essential. Please also download and study the document.

Preview 4 pages

Demonstration of the building process of a simple Java Program named OnePlusOne.java.

Description of Java compilation process, dynamic linking vs static linking. Please download the program and try it.

You may create a new class in BlueJ environment. Then, you do cut and paste from this file to you own class.

Or, you may copy this file to a specific directory that you have already build. And, after that call BlueJ, BlueJ will automatically recognize the program file.

Preview 06:54

Show the JavadocDemo.java program to demonstrate how to add Javadoc-compatible comments and how to use BlueJ and command line javadoc program to generate Javadoc html page that can be viewed using browser or BlueJ environment. (Download and save JavadocDemo.java to try for your own)

Preview 07:00

Chapter 1 Quiz:

Review on basic computer and programming knowledge.

Chapter 1 Quiz: Introduction to Computer, Programs and Java
10 questions
+
Unit 1/Chapter 2: Elementary Programming
17 Lectures 01:43:05

Identifiers as the identification (or name) for a program part. It is very essential to learn how the identifiers are defined and used. Keyword listing is also attached for download. chapter2.pdf can be downloaded as extra reading material

Preview 08:33

Describes the naming convention for variables, constants, methods, class, and package names.

Preview 02:40

An example program to demonstrate variables and basic program structure. Please download the ComputeArea.java ComputeAreaModified.java


ComputeArea.java is a demo version. ComputeAreaModified.java has one more variable defined. Please work on the ComputeArea.java to add a new variable named perimeter and write appropriate code to assign circle perimeter to it and print the result out. The expected result should be similar to ComputeAreaModified.java.

Preview 05:10

Introduce int and double data types. Other data types are also briefly mentioned. Binary number system is discussed along with two's complement and the number representation for int, float and double data types. This lecture concluded with the constant data modifier.

Preview 09:48

Coffee Break for data, input, output and data processing. 

[Java Coffee Break] Data
00:51

Present the ways of writing literals for numbers and text into a program and using them to assign value for variables and constants.

Literals and Constants
08:25

In this lecture, the basics of number systems is discussed. The binary number system used in computer and its related octal and hexadecimal number systems are also discussed. Even though binary system is used in computer system. Most of the times, computer numbers are either written in Hexadecimal or Octal code because of convenience. Please download the exercise in the attachment to work on it first. Then, download the answer key to check by yourself.
Number System Basics
16:46

Java coffee break to show the importance of binary number system. 

[Java Coffee Break] Binary Number System
01:22

Discuss how to read in data from the console and the use of constant PI. (This PI is different from Math.PI.)


Scanner is part of Java API.

Read Input from Console with Demo Program ComputeAreaWithConsoleInputAndConstant
06:49

Provides information about arithmetic operators and their precedence level when executed. Complete precedence levels are also provided by reserved for future reference and discussion.

Operators and Operator Precedence
04:01

Demo Program: FahrenheitToCelsius.java
05:34

Augmented Assignment, Increment and Decrrement Operators
06:01

On topic of casting. Explain implicit casting versus explicit casting. Also, widening casting versus narrowing casting.

Numeric Type Conversion
07:36

Quiz: Numbers
11 questions

Lab: Put things together (Continued Fractional Number)
05:14

Common Error and Pitfalls in Numbers
04:47

Lab: GetChange.java
06:25

Chapter 2 Quiz: Elementary Programming
15 questions

Chapter Project: DisplayCurrentTime.java
03:03
+
Unit 1/Chapter 3: Basic Java Application Programming Interface (API)
21 Lectures 01:49:06

Introduce boolean data type, boolean operators, boolean expressions and boolean theorem.

Preview 07:29

Introduce char primitive data type and Character Class.

Character Data Type
07:47

Use a very simple program to show boolean data type, boolean expression, char data type, arithmetic for unsigned char and String concatenation.

Demo Program: YESNOHappy.java
08:30

Briefly mention about Java API for the primitive data types, Math Class and String Class.

Basic Java API Overview (Math, String, Integer, Double, Scanner, PrintWriter)
02:03

Coffee Break for short video clip on Boolean expression and its fuctionality. 

[Java Coffee Break] Boolean
00:47

Introduce Math Class as a service and processing utility class for all numbers.

Math Class
07:40

A demo program to show Random class and Math.random method.

Demo Program RandomDemo.java
05:15

This lab focused on Scanner and Math.random method. The student will be asked to write a program to generate two random integers and calculate the difference. Then, prompt to the console to ask for user to input the answer. If the answer is correct, then print out a correct message. Other, print out an error message and the correct answer.

(Student can download SubtractionQuiz.java but he is also encouraged to work on his own. A sample answer is in SubtractionQuizAnswer.java)

Lab: SubtractionQuiz.java (using Math.Random Method)
02:22

Chapter 3 Quiz 1: Numbers and Math Class
10 questions

Start a series of three lectures on String class. Part 1 is on String construction and String length().

String Class Part 1: Basic Methods
07:46

Demonstrate construction of strings and the nature of pointer (reference data type) for strings.

Demo Program: Pointers and Interned Strings
05:19

String Class Part 2: for String read-in from console and files. String conversion to double and integer and double. Conversion of integer and double into strings. Third part of this lecture is the methods for string comparison.

String Class Part 2: String Read-in and Comparison
08:17

Demo proper use of Scanner input stream for integers and strings.

Demo Program: Student Information
05:39

String Class Part 3: substring methods.

String Class Part 3: substring
06:30

Use social security number as an example to practice substring() and charAt() methods

Lab: Social Security Number
01:51

A lab work to experience string method replace and replaceAll

Lab: OMG + LOL
02:41

Discuss the three print out methods: println, print, printf.

Print Out Statements (print, println, printf)
08:26

Examples of printf for integer, floating points and string

Formatted Print Out Example
05:01

Use Trigonometry function sine and cosine to demonstrate the formatted print method: printf and the use of Math class method.

Demo Program: FormatDemo.java
07:34

ASCII code artwork has been around for many years since the text-era computers at 1970s-1980s. It is still a interesting art because it is beyond just showing the artistic presentation. It is also a good mental exercise. Enjoy it and have fun.

Preview 03:35

Short video clip for the functionality of APIs

[Java Coffee Break] Application Programming Interface API
01:27

This is the Chapter Project for this Chapter. Please download the StudentGPA.zip and unzip it. Copy the files to your own BlueJ workspace and try on the program. The StudentGPA.java is only a skeleton file. You may get started from that. Follow the comments and then do programming on yourself. Then, you may refer to the StudentGPAAnswer.java.


Should you have any issue, you are welcome to post on the discussion board, facebook page or email me.

Chapter Project: StudentGPA.java
03:07

Chapter 3 Quiz 2: Character Data Type, String Class and Data Type Conversion
15 questions
+
Unit 1 Review: Elementary Programming Review
4 Lectures 18:11

Unit 1 review based on the programming paradigm concept of sequential programming.

Unit 1 Review
04:21

Introduce software engineering development models. (Waterfall, V-model, Spiral Mode)

Preview 07:28

Introduce the pseudo code method for software development at System Design Analysis and Design stages.

Pseudo Code for Planning
06:22

Unit 1 Exam: Multiple Choice
20 questions

Two free response questions, please follow these steps:

(1) download U1R1 Free Response Problems.pdf and print a hard copy to work on it.

(2) use the rubric to score your own answer or ask some other people to score for you with honor code.

(3) download the sample answer U1R1 FRQ Sample Answer.pdf

(4) The sample java code is in the Review01.zip, please unzip it and copy it under your BlueJ project directory.

Unit 1 Exam: Free Response Questions
2 pages
+
Unit 2/Chapter 4: Decisions
13 Lectures 01:20:00

Introduce one-way, two-way, multiple-way if-statement, if-else-statement, and if-else-if-statements.

if-Statement, if-else-statement, and if-else-if statement
08:35

A simple demo program for if statements. Please download and unzip SimpleIfDemo.zip to get the .java file.

Demo Program: SimpleIfDemo.java
02:07

Lab: Calculate and print out an BMI report of a person based on his /her body weight and height.

Lab: Body Mass Index
02:45

Modify the StudentGPA.java to a format that read in subject score on 0-100 scale and print out a score report with letter grade.

Demo Program: StudentGPAWithLetterGrade.java
03:45

Show many useful techniques to use Math.Random to create random samples. And discuss the applications of computer program using these techniques.

Random Number Generation with If
08:13

Lab: License Plate for Californian State DMV
03:53

Short Introduction to Boolean Algebra. If you are interested in this subject, please look at the external links for more information and study materials.

Also download a quiz file to practice.

Boolean Algebra Basics
07:55

Introduce guidelines for good logic design habits for conditional statements.

Logic Design
15:29

A Lab Project to determine whether a year is a leap year or not and to determine its associated Chinese Zodiac since 1948. (Based on modulo calculation.)

Preview 03:59

Discuss conditional expressions and switch statement.

Switch-Statement and Conditional Expressions
05:47

Introduce Random class. How to use it? and its important methods: nextDouble(), nextInt() and random input for Gaussian (normal) distribution.

Random Class
05:07

A Demo Program to update the StudentGPAWithLetterGrade.java to StudentGPASimulationMode.java

with two new features:

(1) Use Random Class to generate random inputs for the scores of each subject.

(2) revise the logic of the letter grade assignment.

Please download StudentGPASimulationMode.zip to unzip and try StudentGPASimulationMode.java

Demo Program: Simulation Mode
07:49

In this chapter, student are asked to simulate a darts throwing game for a player to throw 3 darts per game. Print the sum of the scores. Random class is required for this project to generate random numbers. Please work on your own and then, download Darts.zip for your reference. (The Darts.java is in there.)

Chapter Project: Darts Board Game
04:36

Chapter 4 Quiz: Multiple Choice Questions
15 questions
+
Unit 2/Chapter 5: Loops
14 Lectures 01:28:26

Introduce while-loop and do-while loop. Please also download the extra document reading and the external web-site for while-loop example.

Preview 05:42

Use Addition Quiz program to demonstrate the while loop. The program also covers Random class, difficulty level, and while loop. Please download the (RepeatAdditionQuiz.zip and unzip for the RepeatAdditionQuiz.java) file and try it out.

Demo Program: RepeatAdditionQuiz.java
04:25

Lab project: using while loop to find sum, average, maximum and minimum for some user input data.

Lab: Sum, Average, Maximum and Minimum (User Input Version)
03:44

Use Text File I/O to demonstrate how can a while loop be used to read in a Text file. File input stream using Scanner and File output stream using PrintWriter class. This while loop usage is very important for many applications.

Demo Program: FILE I/O (Conversion of a File to Upper Case.)
05:19

This Lab work combine knowledge from while-loop for summation of numbers and FILE Input. bible.txt is a of reasonable size and is a good example for word count program example. Please download Bible.zip and unzip it. Bible.java is a sample answer program while bible.txt is the input file for students to work on.

Lab: Bible Word Count
01:58

Use a coffee shop example to show how to use do-while-loop. GetChange.java in chapter is ported here as a module to calculate the change for the customer.

Demo Program: Manu Selection
07:12

Perform a Lottery Checking Game with a lottery of 4 decimal number (0 to 9). Use a menu selection for user to pick a way user want to play the lottery. If the first two numbers matched, player get a front-pair winning award. If the middle two numbers matched, it is a middle-pair win. If the last two numbers matched, it is a back-pair win. If all four numbers matched, it is the top prize. Ask user to enter his 4 digit lottery input. The program randomly generate a winning lottery number. Check if the plays wins the play he picked. If so, the program should say the player wins what game. If not, show sorry and try again message. Then, show the menu selection again. Enter a new game if the player does not quit.

Lab: Lottery Checking Game (Using Menu Selection)
07:21

Introduce for-loop as a loop with index variable. Simple example is given to show its operations. This lecture concluded with the review of Darts.java. The program is updated with for-loop structure. This program is much more powerful after the modification.
for-loop (DartsForLoop.java)
07:52

Work on the generation of a Table for sine and cosine function over a unit circle. This lab project is to experience for-loop and handling numerical round-off error. Please work on your own version first and download sine.java (sample answer) and try it out for different round-off methods for numerical error handling.

Lab: Sine and Cosine Table of a Unit Circle
06:37

Use Index space chart (discrete vector analysis) for nested for-loop analysis. Also, include MultiplicationTable.java to illustrate the nature of nested loop. Please download and try. Extra reading document from UT Austin for nested for-loop is strongly recommended.

Nested Loop (Multiplication Table, Number Ladder, and Pyramids)
08:32

Extra Topics on Loops:

(1) Break Level2 (download TestBreak.zip and unzip to try)

(2) Minimizing Numerical Errors (download TestSum.zip and unzip to try) Some discussion next Lecture.

(3) Sentinel Controlled Loop

(4) Redirection of I/O (read external web-link for I/O Redirection)

Preview 08:29

Detailed Explanation about numerical error detection and handling.

Final Words on Loops (Numerical Precision in Details)
05:54

Chapter Project: work on a project to analyze the probability of each of the possible outcomes of two dice rolling game. Nested loop and random number generation techniques will be used.

Chapter Project 1: Two Dice Game (Challenge Level 4)
06:36

A Chapter project to generate password of length from 1 to 100 with 4 different optional format. (Tough Project) Strongly recommended to try.

Chapter Project 2: Strong Password (Challenge Level 5)
08:45

Chapter 5 Quiz: Loops
15 questions
+
Unit 2/Chapter 6: Methods
12 Lectures 01:39:23

Introduce program structure method. Discuss the method signature, modifier, return value and method body.

Preview 07:54

Discuss the calling steps and calling stack details when a method is called. Simple example for DNA code for matched pairs is also given.

Calling a Method
06:15

Provide examples in user-defined statistics methods for two input min, max, avg and sum.

Demo Program: Stats01.java [User-defined min(), max(), avg(), sum()]
06:12

Generate the (x, y) combination (cos, sin) for the unit circle. 

Unguided Lab Project: Sine
01:35

Introduce the concept of call by value and call by reference. More detailed example in DNA encoding in string is presented.

Call by Value
11:19

Discuss the benefits of using methods and demo three example programs (GCD, Prime Number and Hexcdecimal to Decimal).

Modulariziing Code (Re-use, Abstraction)
11:24

Discuss the static methods, static variables and use RandomCharacter as an example to demonstrate how to use static method. The StrongPassword.java is also re-written into a static method version StringPasswordMethod.java.

Demo Program: Static Methods and Modularize RandomCharacter()
15:46

Based on knowledge of Method signature to understand what is method overloading and its related ambiguity issue.

Overloading of Methods
03:53

Background Information for DNA Computing


Preview 12:00

DNA Encoding in strings Demo Program part 2: (Java Implementation) Use Java String data type to represents DNA strands and DNA genetic code. Many string manipulation methods are used in this project. It is a good application filed for application of strings. In this project, user-defined log method is also used to demonstrate dual I/O print out examples.

Demo Program: Part2 Gene.java (DNA Representation and String Methods)
12:38

Discuss the scope of local variables.

Scope of Variables (Local Variables)
03:12

Craps is a cide game played at many casinos. A player rools a pair of of normal six-sided dice. If the initial roll is 2, 3, or 12, the player loses. If the roll is 7 or 11, the player wins. Any other initial roll causes the player to "roll for point." That is, the player keeps rolling the dice until either rolling a 7 or re-rolling the value of the initial roll. If the player re-rolls the initial value before rolling a 7, it's a win. Rolling a 7 first is a lost.

Write a program to simulate multiple games of craps and estimate the probability that the player wins. For example, if the player wins 249 out of 500 games, then the estimated probability of winning is 249/500=0.498.

(py-294)

Chapter Project: Craps.java (Challenge Level 2)
07:15

Chapter test for Chapter 6 Methods. (Length: 15)

Chapter 6 Quiz: Methods
15 questions
+
Unit 2 Review: Structural Programming Review
4 Lectures 22:33

Talk about design methodology at design and implementation stage.

Preview 07:42

Use printCalendar project to demonstrate bottom up implementation approach by design the flow chart first. The flow chart is designed using an open source free tool named Dia Diagramming Tool. This tool is good for both Structural Programming and Object-Oriented Programmin. In Unit 3 review, we will see it again along with the violet UML tool. For printCalendar project, no pseudo code will be provided. only the flow chart is given. Please download Dia.zip to unzip it to get access to all of the .dia files for the methods. You are welcome to design the two methods that is not included in the Dia.zip.

This lecture also serve as background information for the next lecture: unit project printCalendar.java.

Flow Chart Design for Structural Programming Using Dia Diagramming Tool
11:39

Based on the top-down design and bottom up implementation approaches in the previous two lectures.

To write a program to print out a monthly calendar (PrintCalendar.java) to screen. The purpose of this project

is to demonstrate the methodology in design and implementation stage.

Unit 2 Project: Print Calendar
03:12

Unit 2 Exam: Multiple Choice Questions
20 questions

Two free response questions, please follow these steps:

(1) download U2R2 Free Response Problems.pdf and print a hard copy to work on it.

(2) use the U2R2 rubric to score your own answer or ask some other people to score for you with honor code.

(3) download the sample answer U2R2 FRQ Sample Answer.pdf

(4) The sample java code is in the Review02.zip, please unzip it and copy it under your BlueJ project directory.

Unit 2 Exam: Free Response Questions
2 pages
+
Unit 3/Chapter 7: Arrays (1-D)
24 Lectures 02:56:02

Welcome to Unit 3, Data Structure and Object-Oriented Programming Basics. In this unit, various of data structure including arrays, arraylists, and objects will be discussed. In this lecture, we are focused on the basics of 1-D arrays.

Preview 08:47

A simple program to demonstrate the use of arrays. Also, discuss how to call methods from

Standard library without importing.

Demo Program: AnalyzingNumbers.java
04:46

Introduce Part 1: Basic array processing with basic traversal, data mutation. This is part 1 of a series of lectures. In this chapter, we have part 2 and part 3. However, because array is the most essential part in data structure, this chapter cannot completely cover this topic of array processing. Searching and sorting are more advanced topics and will partly be covered in this chapter and fully on other chapters.

Array Processing I: (Basic Traversal and Data Mutation)
09:01

Lab Project: Weather Data 

Use the weather data to exercise on the array processing (taking sum and average). 


Unguided Lab Project: Weather Data
01:41

More advanced array processing methods for basic statistics and array reversal (with comparison to integer reverse and string reversal).

Preview 08:57

Basic statistics methods using arrays (2nd version Stats02.java) including new methods range, mode and median.

Demo Program: Statistics Stats02.java (Array Version)
07:43

Introduce enhanced for-loop and use it to demonstrate array processing by re-writing Stats02.java.

Besiedes, a rangeIn, which can generate integer arithmetic seqeuence in array format, is also presented

and used to rewrite mode() method in Stats02.java.

Array Processing III: (for-each-loop)
07:50

Unguided Lab Project: Health Index 

Use for-each-loop to process the array data for temperature and humidity for the health index calculation. 

Unguided Lab Project: Health Index
02:48

Background information for using array to represents poker card and poker card deck. An simple example program is used to demonstrate how this can be done. This similar method is used over and over again, and, finally, it will be the essential part of the College Board suggested AP Computer Science Course laboratory work: Elevens Lab.

Demo Program: Random Card
05:48

Based on the knowledge learned from the Random Card demo program to develop a Deck of Card program. This project is very important as audience moves on to the other card related projects in this course, because it develops the building blocks of the card games.

Lab: Deck of Cards
05:15

Extensions from the Deck of Cards project. More card shuffling and reordering methods are introduced. These methods can also be used for re-ordering arrays of other applications.

Demo Program: Card Deck Shuffling (Advanced Array Techniques)
15:27

Calculate the surface gravity of all the planets in the solar system. 

Unguided Lab Project: NASA
02:15

Discuss the various ways of copying an array in Java language. The topic of shallow copy versus deep copy is touched briefly but not explained in details because it is not in the course scope.

Copying of Arrays
05:31

Discuss the topics about passing arrays to methods: anonymous arrays, call by reference, memory allocation for arrays, pointer and body of arrays, and reversal of arrays.

Passing Array to Methods and Return Array from Methods
14:35

Hurricane project to exercise the multiple one-dimensional array and the average and sum of three arrays. 

Unguided Lab Project: Hurricanes
02:14

Discuss simple linear search algorithm which is very useful in many applications. This lecture is followed by two exemplary demo program for letter occurrence count and word occurrence count in a text string.

Linear Search (Basic Algorithm)
03:41

Tally for the letter occurrence in the text file named usdeclaration.txt. This demo program shows a commonly used technique to tally for occurrence of certain letter or array items and use an occurrence array or frequency array to keep track of the occurrence data.

Demo Program: LetterCount.java
05:10

A demo program to count the total number of words, words used, and put the words used into a dictionary array (dict) and calculate for its occurrence in (wordCount array). This version is using array only. It is simple and very straight forward. You may compare this program with the other program in the external links. You may find out this version is very robust and very easy.

Demo Program: Bible's Word Occurrence Count
08:26

Discuss the binary search algorithm and Arrays Class binarySearch() method.

Binary Searching (Index Operations, Basic Algorithm)
07:51

Introduce advanced topic (non-AP CS topic) for Arrays Class (Wrapper Class for arrays.)

Arrays Class I (Wrapper Class for array)
08:42

More coverage on Arrays Class and main method's string argument array.

Arrays Class II (Wrapper Class for array)
06:02

A lab project for student to practice to read in the student score and name information from a text file. Use a pre-run loop to determine the total student number in the file. (If you have questions, look at the "Find Line Count, Word Count, and letter.pdf" for how to determine the line number is a AP-subset style)

Then, determine the grade for each course (math and English). After that use the letter occurrence tally technique to find out the class grade distribution and print the information out.

Lab: StudentScore.java
05:07

Build the fundamental methods in processing a hand of cards when a poker game is of the primary interests. The project demonstrate the creation of occurrence array, non-recurring-elements (distinct element) array to handle complex pattern matching (category of cards) problems.

This project also leads to essential techniques in game design (poker game itself is a popular online or desktop game).

The activity 1 is the fundamentals. The activity 2 is focused on card pattern analysis for determining the category of a hand of cards.


Chapter Project: DeckOfCardsPoker.java (Activity 1)
17:35

Build the fundamental methods in processing a hand of cards when a poker game is of the primary interests. The project demonstrate the creation of occurrence array, non-recurring-elements (distinct element) array to handle complex pattern matching (category of cards) problems.

This project also leads to essential techniques in game design (poker game itself is a popular online or desktop game).

The activity 1 is the fundamentals. The activity 2 is focused on card pattern analysis for determining the category of a hand of cards.

Chapter Project: DeckOfCardsPoker.java (Activity 2)
10:48

Chapter 7 Quiz: 1-D Array
15 questions
7 More Sections
About the Instructor
Dr. Eric Chou
3.6 Average rating
133 Reviews
3,486 Students
3 Courses
IEEE Senior Member, an engineer and an inventor

I love computational research and its application to real world. i have involved in many large-scale computer/communication product research development in many world-leading company such as HP, Micrel, and many startups. I also involved in founding a startup company. I also enjoy sharing my ideas through teaching. I hold many US and international patents in technical fields such as software development, mobile computing, IC design and communication receiver design. I am also a certified coach in Taekwondo in both UAST and AAU. 

I also serve as an adjunct faculty for on-line M.S. program in Computer Science/Data Science at Lewis University, IL, USA.