Why this course exists

Why I made this course

Students struggle a lot with their first data structures course. Most data structures courses introduce a new language (Java) and fundamental computer science concepts (algorithms, Big-O complexity, data structures, etc.) all at once. The first few weeks of a data structures course can have a definite "sink or swim" feel.

Additionally, when I took data structures, I spent so much time learning Java that I left with a half-baked understanding of most of the algorithms. There simply wasn't enough time for me to study them while I was coding complicated programs in a language I hardly knew.

This course seeks to give students lots of practice with Java so they'll have enough time to study algorithms and enough skill to code more complicated Java programs.

What you'll learn

The basic syntax of Java: how to make variables, for loops, while loops, if-statements, arrays, methods, objects, and classes.

A review of object-oriented programming concepts. Java is founded on object-oriented principles, so it's important to understand them if you want to code in Java.

How to google well. I would not have survived as a computer science major without knowing how to google. Programmers can't possibly remember all the language constructs, functions, and syntax they need to code all on their own. Strong googling skills are extremely important to have.

How to program methodically. A lot of people get through their introductory computer science class by throwing code at the screen and hoping it sticks. Sometimes, they even write their entire programs before running them for the first time. You cannot succeed in a tough data structures course if you code like this. It is very important that you 1) code slowly, and 2) test as you go. Code a little. Test it thoroughly. Then code a little more. As one of my professors likes to say, "Don't be a monkey at the keyboard".