This is a complete course for you to take at your own pace, which starts at the very beginning of computer science and takes you all the way to algorithms and data structures, two pillars of computer science and programming.
Many online courses teach solely by programming and building apps. This is a great way to get some quick experience, but it doesn't teach you the very fundamentals of computer science, which you need to get yourself to the next level and which internet companies worldwide are desperate for you to understand.
Today I will start the journey of taking you from no programming experience to become someone who truly understands the field and the more complex aspects of it.
In this course not only do we learn by building 6 Java applications, we learn how to build these by using these more advanced and vital concepts:
This course is great if you are 100% new to computer science, but also if you already have some experience and would like to learn these concepts.
We will start with things like what programming is, how computers work, and what binary numbers are, and then we will move onto programming in Java, covering data types, if-statements, and loops. After that, we will learn more advanced Java concepts, like boolean comparisons, file I/O, algorithms, and data structures.
If you complete over 80% of the course material, you will get a certificate of completion that will tell potential employers that have completed this course, and thus helping even further!
However, if you ever feel that the course just isn't for you, or maybe you expected some completely different, I offer you a 30-day money-back guarantee, regardless of the reason why you might choose to take it.
Look at what some people are saying!
He is very down to earth, concise, and knowledgeable on the lectures he presents. I am looking forward to more advance courses from Jose -- keep up the wonderful work! - "Jay-Ar Jamon"
Was nice and easy to follow for a beginner like me. I'll definitely be revisiting the course again to refresh my memory since it covered so many topics... - "Clara Chen"
Join me in a journey of learning. Lets enjoy the course!
This lecture is about what programming is. It's actually a really simple concept!
There are a few groups, or types, of programming languages. Here we cover the largest ones.
If you want more information on how ASSEMBLY works, I've written a more extensive description for you to read: http://jslvtr.com/explaining-assembly-to-the-beginner-in-computer-science/
Quiz for Section 1: programming and programming languages
We take a look at the parts of a computer in a basic view.
Here we go more in depth as to what the CPU (Central Processing Unit) of a computer is.
Here we discuss what the RAM (Random Access Memory) is and why we need it.
Here we describe what buses are. And yes, they are methods of transport!
Here we talk about the function of graphics adapters or graphics cards in modern computers.
This is the quiz for Section 2: parts of the computer
In this lecture we look at a (very) brief history of programming.
In this lecture we take a look at the history of Java up until now.
In this lecture we take a look at how to install the software that we will need in this course:
Make sure to install the "Eclipse IDE for Java Developers" version of the Eclipse program.
In this video we take a look at Eclipse, the program we downloaded in the previous video, and its different parts.
In this lecture we take a look at what comments, statements, and methods are in Java.
A comment is a line of code that gets ignored when the program is running. It is used so that you can write explanations of what the code does, maybe for other people who might be reading your program, or reminders of what you still need to implement.
Statements are single instructions that get executed in one line. They end with a semi-colon in Java.
Methods are names for a group of statements. "Calling" a method is simply executing the set of statements that are comprised within the method.
This is a quiz on the previous lecture, "Comments, statements, and methods".
In this video we program some comments, statements, and methods.
In this lecture we take a look at the different types of data that can be stored in Java variables, the main ones being:
This is a quiz on data types in Java.
In this video we take a look at how the data types and variables are programmed in Java.
In this lecture we take a look at how to write text to the console, so that our program can write output to the screen for the user to read.
Please check the supplementary material provided for some exercises on writing text to the console, before and after checking the next programming video.
This is a short quiz on writing text to the console in Java.
This is your first assignment: to create a program that will print text to the screen.
In this programming video we take a look at how to write text to the console, with a more hands-on approach.
Remember to attempt the exercises after this video if you didn't already!
In this lecture we take a look at one of the main paradigms of Computer Science: Object Oriented Programming.
This is a really important concept. Make sure you understand this throughout the next few videos.
In this lecture we explain a bit more on blocks: classes and methods, and how they work.
This is a quiz that will test your knowledge on Object-Oriented Programming.
In this video we go to our programming environment and try to work with objects and methods, to extend our knowledge with these two concepts.
In this lecture we take a look at how to accept user input from the users of our program. This will let our program interact with the user fully.
This quiz is meant to test your knowledge on accepting user input with Java.
In this programming video we will take a look at how to accept user input with a more hands-on approach.
In this video we take a look at how to make our program "branch out". This means, instead of simply being sequential, make our program do one thing or another depending on the result of a test we give it.
This quiz will test your knowledge of if statements in Java.
In this programming video we keep exploring the 'if statements' with a more hands-on approach.
In this lecture we introduce the concept of a while loop. This lets us repeat a set of statements many times.
The while loop works with a test. While this test is true, the statements we give the loop are repeated. When the test is no longer true, then we stop repeating the statements.
In this video we continue looking at while loops, by going to our programming environment and having a more hands-on approach.
In this lecture we introduce another new concept, the for loop. This is another type of loop that repeats a set of statements a given number of times.
In this programming video we take a more hands-on approach at programming for loops.
In the next section we will start putting all of these concepts together into actual working programs!
This quiz will help you test your knowledge of loops in Java, both `for` and `while` loops.
In this lecture we take a look at what Algorithms are, and essentially how computers work.
In this lecture we explain what algorithms are used for in the computing world.
In this lecture we look at how we would think about constructing algorithms. It is very important to realise how the computer thinks and how it works when creating new algorithms.
In this programming video we actually start constructing some algorithms and we take a look at how the programming side would look like.
This is a quiz for the section of the course on Algorithms.
In this lecture we take a more extensive look at the boolean values and how to use them.
In this programming video we continue using boolean values and comparisons.
In this lecture we study Strings and characters more in-depth than we did previously.
In this programming video we continue studying Strings and characters, with a more hands-on approach.
This is a quiz for the section of the course on extended Data types.
In this lecture we talk about how we are going to implement the first full program of the course.
Remember to check the supplementary materials before and after watching the programming video. Attempt to implement this program before watching the next video!
Another assignment for you: attempt to create the age program we talked about in the previous presentation.
In this programming video we implement our age program.
Remember to use the document provided, and try to implement this program before watching the video!
In this lecture we take our first look at how to group variables: give a single name to a group of variables, by using an Array.
In this programming video we implement and explain more about Arrays.
In this lecture we explain another Collection in Java: the ArrayList. It is in many ways similar to the Array, but has some key differences.
In this programming video we implement the ArrayLists.
A quiz on Arrays and ArrayLists in Java.
In this lecture we take a look at how to iterate through an Array. This means visit every element of an Array in order to access each of the values that are grouped together.
In this programming video we implement what we saw in the last video: iteration over arrays.
In this lecture we see how we can iterate through ArrayLists.
We can use all the knowledge gained so far to implement a new program. The supplementary material provided will give you an exercise you can try to implement.
In this programming video we take a further look at how to iterate through ArrayLists.
Try to bring together all the knowledge accumulated to far in the course into one assignment: a DVD store.
In this video we talk about how to create the first part of the assignment: the DVD Class.
In this video we talk about how to create the second part of the assignment: the Store Class.
In this video we talk about how to create the last part of the assignment: the Controller Class.
These are the code files for the finished DVD Store assignment. Only use as reference / to learn, but after you have attempted it on your own!
In this lecture we study another one of the pillars of Object-Oriented Programming: Inheritance.
In this programming video we keep exploring inheritance and how to implement it.
In this lecture we study how to store data in our programs efficiently by getting an introduction to Data Structures.
In this lecture we talk about how to create our first data structure: the linked list.
Many other data structures are based on this one, so pay close attention!
Remember to check the supplementary materials in order to find an assignment to do with Lists before watching the programming videos!
In this programming video we talk about how to create the first part of our List: the Node.
A Node in a List just holds the information that each element in the List should hold, plus a reference to the following item on the List, so that we can traverse it from beginning to end following these references.
In this programming video we talk about how to actually program the List.
In this programming video we create a Controller class that will control our List and let us deal with user input.
Try to implement what we have been discussing in the past four videos: a List.
In this lecture we talk about how to create our Queue. A Queue is a data structure that is very tightly based on the List.
Please remember to check the supplementary materials for an assignment on creating the Queue!
In this programming video we talk about how to create a Node for our Queue. It is essentially the same thing as for our List.
In this programming video we talk about how to create the Queue class that is going to store functionality to deal with Nodes in a Queue-like fashion: first-in first-out (FIFO).
In this programming video we start creating our Controller class to deal with user input and control our Queue.
In this programming video we extend the Controller class to include a menu, which will let the user run the program indefinitely, adding and removing Nodes from the Queue, until he/she decides to exit.
Now try to bring together the List and some extra functionality to implement a Queue.
In this lecture we talk about Stacks, a new data structure that is also based on the List.
In this programming video we keep exploring Stacks, and how to implement them as compared to Lists and Queues.
In this lecture we talk about a new data structure, the Set. Sets are no longer based on Lists, as they are a completely different and new data structure!
In this programming video we implement a Set class by extending the Java built-in HashSet class.
For this assignment we are going to use Sets to implement a Lottery system with user input.
In this lecture we take a look at the last data structure: the Binary Tree.
This is the most complicated data structure, and the most complicated part of the course.
In this programming video we create the Node class for our Binary Tree. Remember that Nodes use two child Nodes in Binary Trees, one for the left and one for the right child.
In this lecture we take a look at how to delete Nodes from a Binary Tree.
In this programming video we implement the Tree class. In the next video we will look at deleting Nodes from a tree in programming.
In this programming video we implement a way to delete Nodes from a Binary Tree in programming.
In this programming video we take a look at how to create the Controller class and the menu for our Binary Tree.
I've been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. Here's my story so far.
I started programming at the age of 10, just a couple years after I started studying music, when my dad, excited that I had showed interest in similar things to himself, taught me the basics of Marin Saric's METAL. Shortly thereafter we moved on to RealBASIC, and from there I started learning, after a couple years, Java and C.
Ever since I started learning programming I knew I wanted to study Computer Science or something along those lines. Half a decade ago I ended up at the University of Dundee, studying Applied Computing.
The University of Dundee is one of the most prestigious for computing-related courses, and I was offered the chance to participate in their computing scholarships due to academic achievement.
I have worked for "Eseye", an M2M company, as an intern doing mainly backend developing, writing PHP scripts and programming Zenoss ZenPacks, and currently work for Skyscanner, one of Scotland's largest technology companies, programming mainly in Python and web languages.
At the moment I enjoy programming in Python, Java and C, playing and recording music, usually as an accompanying pianist for singers, and sports and bodybuilding. I hope that my courses are interesting to you, enjoyable and that you learn from them!