This course is designed for beginner-level programmers who want to learn object-oriented programming. the course will cover all topics of introduction to programming I and introduction to programming II usually taught in university. The course will also cover writing simple data structures and sorting algorithms. In future lectures, we will introduce more advanced data structures, such as binary search trees and hashing tables. The objective of this video series is to give aspiring programmers all the necessary tools to kick start their learning journey. We will cover not only how to write code, but also the inner workings of the machines on which we code in order to prepare students for success in the field.
the teaching method used for this video series is a learn by example approach. we first cover the topic at hand, we will then write some code for visualization purposes, and finally assign students mini projects for them to work on solo. After the students complete the project, we will cover the solutions together.
when the lecture portion of this course is complete, we will then work on larger projects together in order to cement the programming process and ensure students learn how to think like a programmer instead of just writing code.
list of topics:
hello world program.
the programming process.
data types.
mathematical operators.
comparison operators.
Logical operators.
control statements (if / else if / else, switch).
Loops (for, while)
break, continue, return.
Arrays.
methods,
String manipulation.
Recursive methods.
Classes.
class anatomy and utility.
inheritance.
abstracts classes.
abstract methods.
interfaces.
polymorphism.
Exception handling.
GUIs.
Array-Lists.
Read / Write to txt files.
end of semester project (city database).
planned future lectures:
sorting algorithm.
using data Structures (in city database project).
Introduction
quickly going over how to download resources, join our discord app and utilize our class notes.
Downloading and installing the Eclipse IDE and draw.io applications.
writing our first program.
A detailed guide to better programming practices.
A small quiz to test the understanding of students, covering material in Lecture 3: The Programming Process
The basics
An introduction to Data Types, covering Integers, Doubles, Floats, Booleans, Strings and Characters.
Mathematical Operations : addition, Subtraction, Multiplication, division, modulo, incrementing, decrementing, order of operations.
Research Question Answered: When dividing two integers, Java uses integer division. In integer division, the result is also an integer. The result is truncated (the fractional part is thrown away) and not rounded to the closest integer.
Comparison Operators in Java.
An in depth explanation of logical operators and their application in programming.
A detailed explanation of the if - then - else statement
A detailed explanation of switch statements and when to use them
a lecture on for loops and while loops.
lecture on break, continue and return instructions.
test your knowledge of section 1 topics.
Quick review and assignments.
Solutions to previously assigned projects.
Arrays, Methods, and String Manipulation
our first lecture on the array data structure.
array practice problems where we populate an array of 20 elements with random numbers, then print those elements, find the sum of all elements, find the average of all elements, find the minimum and maximum value of all elements and finally, print the element in reverse.
lets make sure we have this part down.
making cookies using methods - part 1
making cookies using methods - part 2
Methods lecture 3, creating an average grade method that accepts 3 parameters of type float and return the average.
you got this. lets give it our best shot.
Introduction to String manipulation in Java. Includes a brief lecture expanding on the students knowledge of String objects and how to utilize them.
The first set of String Manipulation exercises covered in this section.
1) printing a String backwards.
2) transforming a character array to a String object.
3) entering a string of digits, transforming said digits to integers and summing their value.
4) using the split method to split a string based on a character position.
The second set of String Manipulation exercises covered in this section.
1) capitalize the first letter of every word in a sentence.
2) print alternating characters in a String.
3) Binary, Hexadecimal, and Octal representation of an integer.
4) Capitalize the letter T in a sentence.
The third set of String Manipulation exercises covered in this section.
1) check the validity of a password. (pass >= 12 character, has uppercase character, lowercase character...)
2) count the number of words in a sentence
3) validate a website URL to ensure it starts with "www." and ends with ".com"
A lecture on recursive methods. discusses recursion, the recursive case, the base case, and some disadvantages and dangers of using recursion.
short quiz on recursive functions
Classes and inheritance
An introduction to classes and objects in Java.
Anatomy of a class. building a class with data, getters, and setters.
Anatomy of a class. constructors and method overloading.
instantiating objects from our class. utilizing objects in Java.
Anatomy of a class. building a toString method in Java and method overriding.
what we know about classes so far
inheritance and its utility.
Inheritance and its utility 2. creating an "is a" relationship between Student, Prof, and User.
Abstract Classes, Abstract Methods, interfaces, and polymorphism.
a quiz focused on inheritance, abstract classes and interfaces.
Exceptions, files, GUIs and Array Lists
we throw our own errors.
lecture covering exceptions and exception handling.
learn how to use try, catch, finally block.
write our very own exception class.
we delve into java's outdated swing library and get familiar with GUIs by creating a quiz.
a very brief introduction to Array Lists before using them in our end of semester project.
Reading from, Writing to, creating a file, locating a file and storing its path... Fun Stuff in this here lecture!
quick quiz to make sure were on solid ground.
City Database Project
Description of City Database Project and Assigning City Class.
City Class Solution
Breaking down the process and assigning Main Menu Function
Solution to the main menu function.
Database assignment:
- download the database txt file
- import necessary libraries
- create an array list of type City
- create a find file method, txt to obj method, and obj to txt method.
Solution to previous assignment
Display all cities, assignment and solution
Search for a city, assignment and solution
Insert new City, delete a city, save changes, assignment and solution
Update City Values, assignment and solution
writing methods to get distance between 2 cities using their latitudes and longitudes.
Sorting Algorithms
Insert Sort Algorithm, animation and code
Bubble Sort Algorithm, animation and code
Selection Sort Algorithm, animation and code
Quick Sort Algorithm, animation and code
Testing our algorithms with large arrays