header image
Check this page for updates on upcoming classes, our learning goals, and the lesson modules we'll use to get there.

CIT-111 Java ONLINE: Weekly Lesson Guides

Course Schedule and Lesson Guides

Our online class is structured by week, and each week has it's own learning guide on this page.

Please treat each week's guide as gold--it is your path through this course, week-by-week. If you have any questions, please call the technologyrediscovery.net shop at 412.894.3020.

I can also receive emails at edarsow@ccac.edu but programming questions can most effectively be answered over the phone or during office hours.


Current week's lesson:

Week 10: Monday 16 April - Monday 23 April

A first look at object-oriented java

check_circleLearning Objectives

check_box

Explain in English how object-oriented programming is different from procedural programming (the kind we've done in class up to this point).

check_box

Write a Java class that creates objects which model real-life donuts.

check_box

Write Java code outside our Donut class that sets and gets properties on our Donut objects.

listLesson Sequence:

Explore the subtleties and excitements of object-oriented Java programming in Chunk 3, Module 1. Don't forget to follow the module rigorously since this is a critical module and you'll be asked to read excerpts before diving into the module itself.


Past weekly learning guides:

Week 1: Monday 29 Jan - Saturday 3 Feb

Setting up a Java compiler | Running a simple program | Java basics

Welcome to CIT-111 online! Our journey together is diving into the Java programming language. Please attend to the content in each week's guide carefully, as it will guide your through your learning.

Our goal this week is to setup our work environment which means getting an Integrated Development Environment (IDE) setup on our computers, explore our online code repository called GitHub, and execute some basic Java programs and start tinkering with them.

check_circle

Learning Objectives

  1. Install and test Netbeans, a Java-oriented development environment that is community created and 100% free
  2. Execute a Java application in NetBeans and edit some of its basic components to see how easy it is to create and adjust programs written in Java!
format_list_numbered

Lesson Sequence

  1. movie View our welcome video that provides a course overview and introduction to Java. It's hosted on YouTube and located here.
  2. Study our course syllabus and prepare any questions you might have. Pay particular attention to the course grading procedures, which are also described here.
  3. Buy a copy of Oracle's Java: A Beginner's Guide (6th edition is the cheapest) from a source of your choosing. The Amazon.com link is here.
  4. Scan and think about our core Java skill learning flow which we will roughly follow throughout this course.
  5. The first chunk of stuff to do for this course is get your workspace setup, which involves installing a two programs that allow you to create, debug, and run programs in Java. The first is the Java Development Kit 8 which is a program that includes a Java compiler and virtual machine. The version you should use is produced by Oracle, a major software company. It's free.. Note that you DO NOT want to install Java 9 SDK which has recently been released.
  6. The second program is called NetBeans and is used by everybody from students who have never programmed before to folks who program hugely complicated systems for mega-organizations, like Oracle. Start by visiting the NetBeans download page and download the program listed under the "Java SE" column. external You are welcome to download any of the other versions of the software if you think you'll want more programming power.
  7. Complete EACH step in this NetBeans quick start guide which will ensure that your compiler is working and you'll see how easy it is to create and run Java programs.
  8. After you have the Hello World program running, study Oracle's dissection of this simple program so you can glean a general sense of what each of the lines does. A challenge with Java is that because it can do so many powerful things, doing simple things is a little more complicated than if the system only did simple stuff.
  9. Attempt to answer and study the correct responses to this little quiz created by Oracle about Java basics. The core value of this exercise is to familiarize yourself with some of the technical terms that we need to learn in order to take advantage of the vast documentation about Java available to us for free.
  10. Now that you have a working netbeans environment, view the success tips video specific to learning programming languages. movieWeek 1, Segment 2: Success Tips
build

Weekly Products

STEP 1: Create a new word processing document. Type your first name, "CIT111, Spring 2018, Week 1" and your special ID number at the top of the document. (See the intro video for instructions on creating your special ID.)

STEP 2: Manufacture your Special ID number. Locate your student id number either within MyCCAC or on your Student ID card. Your four-digit special ID is the FIRST TWO followed by the LAST TWO digits of your student ID number.

So if my assigned student ID number is 56387239, the special ID I'll use throughout this course is 5639.

STEP 3: Save this document with a title that looks like this:

week1_netbeans_[your special ID number]_[your first name].

For example, Juan's special ID number is 1234, so he would name is file: "week1_netbeans_juan_1234".

STEP 4: Capture a screen shot of your Netbeans application running your "hello world" program and insert it into this document. Include a brief sentence describing any install issues you had so your instructor can help other students through these issues more effectively next time.

You can use a tool in Windows 10 called "snipping tool" to capture an area of the screen and save it as an image file on your hard drive. Then you can then insert photos into a MS Word document with these simple steps.

STEP 5: Upload your image to our shared online directory located here.

book

Essential Resources (For quick reference)

Netbeans IDE download page netbeans will provide you access to the executable files for installing both Java 8 Standard Edition and the application used to develop, test, and run that code. You'll need to install this ASAP.

Oracle's Java tutorials are the preferred online resource for learning the Java language. Many tutorials and courses exist online, but Oracle has provided the most comprehensive and updated set of guides for Java 8.

lightbulb_outline

curiosity Corner

Java is one of the most widely-used programming languages in the world. Many projects coded in Java are open source and can be viewed, edited, and republished by anybody without paying a dime. You can browse thousands the code of many Java programs on github, here. While you may not yet know how to comprehend the code, soaking up how widely used this language is will propel your learning.


Week 2: Monday 5 Feb - Saturday 10 Feb

Projects, Packages, and Classes | NetBeans is our friend

This week's learning centers around structuring projects in NetBeans and becoming eminently comfortable with the concept of a class and its main() method for running simple programs. We'll also explore how to adjust code so it's readable and learn how to load class files from our class repository so you don't have to retype each and every line of code you want to tinker with.

check_circle

Learning Objectives

  1. Explain the Java program creation lifecyle including the editor, compiler, and Java Virtual Machine
  2. Create projects, packages and class files in NetBeans that work together to structure an application
  3. Comment code, properly indent code and internalize the use of blocks { } of code to show structure
  4. Practice loading code from outside sources into NetBeans and getting them to run
book

Essential Resources

Chapter 1 & 2 of Java: A Beginner's Guide gives an introduction of the Java language and chapter 2 explores the essential java data types. Please start studying these chapters as soon as you'd like. While this week's modules will not depend on these chapters, next week's will and you may need to read them a few times to internalize their language.

format_list_numbered

Lesson Sequence

  1. View this weekly overview video that discusses the concept of a computer language by drawing connections in cooking recipes.
  2. Our learning most weeks will not live in this list, but rather in the module guides that also have links on technologyrediscovery.net's home page. For this week, we'll tackle Chunk 1, Module 1 & Module 2. Start by carefully studying and working all the examples in Chunk 1, Module 1: Java Langauge Essentials. Note that there are big teal boxes that ask you to stop and study your book. Please don't skip over these!
  3. When you've digested all of Module 1, Move on to the shorter Chunk 1, Module 2: Loading external classes into NetBeans.
build

Weekly Products

  1. This week's product is a piece of cake: to verify that you have indeed acquired our textbook: Java, A Beginner's Guide 6th Edition. Grab your copy of the book, turn to page 245, and copy the very last sentence on that page into the body of a blank email. NOTE: The 6th edition is NOT the most current, since it is much cheaper than edition 8 and has all the necessary content inside. If you bought a more current version, please let me know in the email you'll send next.
  2. Make the subject of this email: "Java Online Book Check"
  3. Send this email to your instructor: edarsow@ccac.edu by the 11th or 12th of February.
  4. You are more than welcome to include any comments or questions about the class in your email, but this is not necessary.


Week 3: Monday 12 Feb - Saturday 17 Feb

Primitive Variable Initialization | Referencing & Manipulating Variables

check_circleLearning Objectives

bookLearning Resources

  1. Oracle online tutorial on primitive data types
  2. Oracle online tutorial on Operators (entire subsection)
  3. Oracle online tutorial on If-then statements
  4. Java: A Beginner's Guide: Chapter 2 on Data Types and Operators (6th edition pages 31-61). If you have other editions, check the Table of Contents for "Data types and Operators"
  5. Java: A Beginner's Guide: Sub-chunks of Chapter 3 on the If-Then statement (6th edition pages 63-69 only).

listLesson Sequence:

  1. Work through our Module Tutorial: Chunk 1: Module 3 located here.. There are a bunch of exercises and links to resources. Plan on devoting a serious amount of time to working all of these exercises carefully, studying as you go.

cakeProducts to Produce


Week 4: Monday 19 Feb - Saturday 25 Feb

Gathering user input | Diagramming Program Logic | If-Blocks

We'll continue our exploration of Java's fundamentals by practicing creating program logic with if() blocks which evaluate an expression which produces either a true or false value and runs blocks of code based on that result.

This is the first week you'll be asked to upload code that you write by yourself to a public code repository. This exercise will be straightforward for some folks, and rather challenging for others. Please remember, this is not a test! You are expected to work at a level that is challenging for you, but not frustrating. If you can only get part of the program to run, make a note in the comments and reach out to me with questions.

Week overview video

Video reviews our progress in Java so far, setting up GitHub, Slack, and a preview of grading procedures.

check_circleLearning Objectives

bookLearning Resources

  1. Oracle online tutorial on If-then statements
  2. Java's technical documentation on the Scanner class in the java.util package. For most folks, this documentation will not be easily comprehensible, but you can still find the nextInt(), nextDouble(), and next() methods in the method list and see how the Java library is explained.

listLesson Sequence:

  1. Devote a serious amount of time to working through our Chunk 1, Module 4: User Input and control-of-flow with if() statements. Work through the code in the core concepts section and the three exercises, each with a mini coding project and a source code key.

cakeProducts to Produce

The module final project is located in Chunk 1, Module 4 and will be this week's product and should be uploaded to GitHub, an open source code repository used by many organizations and individuals. Follow this sequence which takes you through the entire preparation and upload process.

  1. Devote time and effort to first planning and then coding the module project listed after all the exercises. Think carefully about how to implement the specification in java. Test your code.
  2. When you have a working program, please return to your code and add comments before all major lines (you don't have to comment System.out.println() statements since they are self-explanatory). The comments should be in your own words and not copied from any of our class code or others' code.
  3. Create a GitHub account using this detailed guide
  4. Upload your .java file to your github account's repository you just created using the steps it described.
  5. Make an entry in the Fall 2018 fall project submission index so your instructor and all other students can review and benefit from your hard work!


header image Week 5: Monday 26 Feb - Sunday 4 March

Looping execution control structures: while(), for()

check_circleLearning Objectives

  1. Plan an application with if() and while()-controlled blocks using an accurate flow diagram of execution.
  2. Get exposed to for() loops that we'll cover in the second half of the course.
  3. Implement while()-controlled blocks to meet a program's specification, including the use of the break statement
  4. Use block nesting of if() and while() blocks to implement complex program logic.

bookLearning Resources

  1. Looping control structures: Chunk 1, Module 5: The full lesson and project descriptions for this week.
  2. Java Oracle online tutorials: While() and for() looping mechanisms. [Note the coverage of the do-while structure which our exercises don't explicitly practice but will come in handy when you are most stumped on a user input looping issue.]: The full lesson and project descriptions for this week.

bookJava: A Beginner's Guide (6th edition): Chapter 3: Program control structures. 6th Edition: Pages 63-103. This chapter contains coverage of for() loops which are cool, but will come in the second half of the class. If you're curious, tinker with those, but if you're feeling plenty full of new concepts, don't sweat the for()s just yet.

Please make a note in our edition synchronization google doc. If you're using another edition.

listLesson Sequence:

  1. Carve out a few hours and work through the module guide: Looping control structures: Chunk 1, Module 5. This is a very detailed document. It was designed to be worked through sequentially from top to bottom. The link box at the top jumps you down to the main sectiosns of the document if you need to jump around. If you need a break, try taking one at the end of one of the sections with big purple headers.
  2. Make a cool quiz program that you'll be prepared to program by the end of the module in number 1. This link jumps to the last section of the tutorial. Remember: make your programs yours! You may always expand specifications. Clients love extra features (that work).

cakeProducts to Produce

  1. Pull up your quiz class and prepare it for sharing with the class on GitHub:
    • Make sure you actually made and finalized the flow chart you created for your quiz program.
    • Comment your code! Review a well-commented class from one of our modules. Add comments where comments exist in the sample. Remember: comment writing is an intellectual exercise at this point. You're commenting variable initializations to learn about them. When you write code as part of a functional project, readers are assumed to be familiar with Java fundmentals.
    • Add any interesting header or closing text printouts so if you share a screen shot of the output, the program makes sense to a user who just sits down at it once it's launched.
  2. Commit/Upload your code to the GitHub repository you created last week. Just in case, the guide to setting up github.
  3. Commit/Upload an image of your flow chart to your GitHub repository. Digitial diagrams are cool. Scanned images or photographed are great. (Technical request: Double check the focus, please. Sharing these flow charts is very meaningful.)
  4. Make TWO lines of entry in our code submission spreadsheet linking to your documents on GitHub: One to your source code, the other to your image.


Week 6: Tuesday 6 March - Sunday 11 March

Getting down and dirty with methods: the basic building block of classes

check_circleLearning Objectives

  • Call a method which returns no value and requires no parameters
  • Call a method which requires input parameters
  • Write a method that takes no input parameters and accomplishes a single task. Call that same method from another method and demonstrate the flow of execution through the entire call cycle.

listLesson Sequence:

  • Carve out a few hours and start work on Chunk 2, Module 1: Simple methods. There are tutorial videos embedded in each section as they apply to your learning.
  • Since this is a huge module, I'd plan on getting through core concept 2 and exercise 2 by the end of this week, so you can work through the larger Core Concept 3: Method calls with parameters and the module project next week.

cakeProducts to Produce

No formal products to submit this week. We've pushed Module 2, Chunk 1 to take two weeks, so your MysteryDoor program is due on Monday 19 March. See next week's instructions for detailed info.


Week 7: Monday 12 March - Monday 19 March

Continuing method-based thinking

check_circleLearning Objectives

  1. Call and write simple methods that take no input data and return nothing to the caller
  2. Build switch-controlled blocks and use that structure to call different methods in the same class
  3. Call and write medium complexity methods that require data input and return nothing to the caller
  4. Refactor (re-organize) code to use named methods instead of repeated code

listLesson Sequence:

  • Continue work on Chunk 2, Module 1: Simple methods. There are tutorial videos embedded in each section as they apply to your learning.
  • Hopefully, you've made it through Core Concept 2 and yo're ready to jump into method calls with parameters.

cakeProducts to Produce: Due Monday

  • As described at the end of the mini-project at the conclusion of the module, please code up a Mystery Door program using method structures. The full specification is, of course, in the module guide. Upload this file to your GitHub account and make a corresponding entry in our Java Project Submission Spreadsheet linked below.


Week 8: Monday 19 March - Monday 2 April

Methods with return types

check_circleLearning Objectives

  • Write methods without return types from English descriptions
  • Write methods that take parameters and returns primitive types to the calling method
  • Usefully capture and process data passed back from methods

listLesson Sequence:

This week's work is entirely self-contained inside the Chunk 2, Module 2 Guide. This is a serious document with dozens of figures and examples and practice exercises. Please devote 4-6 hours to working through this material and designing your mini-project.


Week X: [SPRING BREAK!!!] Monday 26 March - Saturday 31 March

Take the week off and explore!

No required activities this week: only an encouragement to relax by learning something new about computers that you are curious about or interested in.


Week 9: Wednesday 4 April - Tuesday 10 April

Member variables and access scope

check_circleLearning Objectives

check_box

Describe in English the parts that make up well-formed Java classes and how they work together: Member variables and methods

check_box

Create member variables of appropriate types and justify their placement in class scope rather than method scope

check_box

Create a set of well-designed methods that each accomplish one task and operate on member variables of their hosting class

listLesson Sequence:

Dedicate some serious time to working through the Chunk 2, Module 3 guide on variable scope and complete the module project. This lesson is critical to internalize since member variables are part of virtually every class you'll write and read in the remainder of your Java explorations.


Page created on 2018 and last updated on 2018 and can be freely reproduced according to the site's content use agreement.