Skimpy Preface: An Excuse for the Inadequacies Within
This isn’t a real textbook. It’s not imaginary or anything, it’s just missing most of the stuff a real textbook includes. It’s, well, skimpy.
This content is intended to be a companion to CIS150AB, which is an introduction to object-oriented programming. Since you’ll be attending (or viewing recordings of) lectures, and you’ll have access to additional content in Canvas (our LMS), this text doesn’t try to cover everything; it tries to give you the basic information you’ll need in order to get the most out of that other content.
It’s also skimpy because the purpose of this particular course, at least from my perspective, is not to give students a comprehensive look at a programming language. It’s an introductory course that’s taken by a variety of students. If you’re a coding student—majoring in Programming and Systems Analysis or Web Design and Development, for example—you’ll take language-specific courses that will get much more detailed, so our goal here is to give you a foundation for that. If you’re majoring in something else, you might never write another line of code after the semester ends—I want you to learn about programming and software development so you can communicate with the coders in your workplace and have a general understanding of how an idea becomes a program or app.
It’s also possible that I just don’t know very much. You know, a skimpy brain.
But why are we stuck reading this eBook?
The only reason I wrote this is because real textbooks are expensive. As I started to record more and more videos to supplement the real textbook I was using, students had less and less reason to actually read it. But I can’t cover everything we need in my videos, so I started writing content to fill in details I couldn’t get to.
To be clear, this isn’t skimpy just because students don’t bother to read textbooks that are dense and detailed. That sometimes seems true, but you’re different; I can tell just by looking at you! But I acknowledge that many students prefer video content and in-person instruction rather than reading, so this is my attempt to meet those students halfway.
This eBook might not be very good or very detailed, but it is very free.
And why are we using Java instead of my favorite language?
Looking at you, Python nerds…
Okay, there are a few reasons I use Java to teach OOP:
-
It’s cross-platform, so my students can use Windows, macOS, or Linux machines and I can grade the work without hassle on whatever machine I’m currently using.
-
I like the way Java implements OOP, which I think is "stronger" than in Python, for example.
-
Java is strongly, statically typed, meaning we have to declare data types when we make our variables and that type can’t change. I believe this "stricter" approach to data types is better for beginners.
-
Since it uses C syntax, Java skills transfer well to many other languages.
-
At Estrella Mountain Community College, we have other CIS classes that teach C# (my favorite OOP language) and Python. I want students using something different for this course so that they get exposed to multiple languages before they graduate.
If I’m doing this right, what you’re mostly learning here is a good foundation of OOP (and general programming) skills and concepts. We happen to be using Java to do that, but these skills transfer to pretty much any other language you want to learn.