Page tree
Skip to end of metadata
Go to start of metadata

Instructor and Course Home Page

Thomas Albert, Ph.D.

U.C. Berkeley Extension course catalog description of First Course in Java -

Free Wifi - CalVisitor


  • able to navigate a file system from the command line, using commands like cd ..
  • be willing to compile and run Java code from the command line
  • know the difference between absolute and relative path
  • be able to create a directory to store your homework files
  • willing to work steadily each week
  • understand what this course is, and is not
  • understand how to succeed in this course

What this course is, and is not

IsIs Not

gentle introduction to object-oriented programming

not a course in advanced or even intermediate programming. If you want a course where you can study at your own pace and cover more material, I recommend the online version of First Course in Java. The instructor is Carl Limisco, a professional programmer for Java, Perl, and Python.

Java concepts, vocabulary, and syntax with illustrative examplesnot likely to have immediate value to solving any business or scientific problem
learning how to read code, follow the logic of execution, and write code correctly

no coverage of graphical user interfaces, database, performance tuning, generics, software design patterns, servlets, JavaBeans. In other words, we learn about Plain Old Java Objects (POJOs).

learning how to use the Java APIs (libraries) to find answers to your coding questions

Bookmark this link!

no introduction to any Integrated Development Environment (IDE), such as Eclipse or IntelliJ
(all code must work with command-line compilation and running)
A feature-by-feature approach, with some features being combined as we progressa full-fledge application development course with a major project at the end

Flow the the course

For details, see the Schedule of Lectures 

How to succeed in this course

  • Pay close attention to all the details of the requirements of the homework
    • Paste the requirements as comments into your code, so you can verify you meet every requirement
    • Your code must meet each and every requirement. Otherwise, no credit at all!
  • Keep your code simple
    • No need to write long programs. 20-50 lines is typically enough.
    • I will not read a file over 120 lines.
  • Follow the rules at How To Submit Homework
  • Work each week in a steady rhythm.
    • Each week's material builds upon the prior week's material. 
    • If you have time, preview the current week's material before the lecture.
  • Ask questions in class. Classroom learning is best when everyone participates in discussions.
  • Come to the lectures. Be on time and stay the entire time.
    • We take a 10-minute break from 7:30 - 7:40
    • I am usually in the classroom 15 minutes before the start of class, and I can provide individual help at that time

Location, Transportion / Parking, Wifi for Your Laptop

You are welcome to bring your own laptop. The classroom does not provide lab computers but does have free wireless Internet access

Text editor

Do NOT use TextEditor (Mac) or Notepad (Windows)!

Instead, write your code using a text-editor that is "aware" of Java, such as:

I do not recommend using an advanced Integrated Development Environment (IDE), such as Eclipse or IntelliJ because:

  • of the learning curve
  • often the code does NOT compile or run on the command line without the instructor having to create a special directory
  • some IDEs, by default, name the class with the main method "Main", which means the class name fails to indicate its noun

However, you can use an IDE to develop your code IF you test your code on the command line to ensure that it will run on any computer than contains a Java Runtime Environment.


Java A Beginner's Guide,
6th Edition (2014)

by Herbert Schildt
McGraw Hill/Osborne
600 pages.
Its code samples are at and a PDF of the first chapter (5th ed.) is at

Available in paper from Amazon for $26

or $26 from Barnes and Noble:

$40 from Oracle Press

Optional resources

The textbook is rather dry, and some people think it is boring. If you want a book that tries to be creative and fun, consider Head First Java: A Brain-Friendly Guide, which I, personally, find silly.

If you want a book that introduces object-oriented programming (with some discussions of Java), I recommend OOP Demystified.

If you want online introductions to specific areas of Java, you might try the official Java Tutorials, which are sometimes basic, and sometimes rather advanced.

What Students Say About First Course In Java

  • Professor Albert made learning Java fun, easy, and exciting.
  • Thank you for making "First Course in Java" a fun and enlightening class for someone with very little programming experience.

  • Good variety of examples. Excellent explanation of material.

  • Thanks for a great class!
  • He answers students' questions in a way that makes it easy to understand.
  • Very helpful and responsive to questions.
  • Thanks for all of your help and encouragement to get me moving in the right direction.
  • Thomas is enthusiastic, approachable, and communicative in answering with students' questions.
  • He was always helpful when I had questions, and entertaining so that I was glad to be a class that ended so late: 9:30 p.m.
  • Thomas knows Java and encourages students to ask questions.
  • He knows the subject matter and answered students' question effectively. He is enthusiastic and has a good sense of humor.
  • Thank you for your instruction and for your attention to my homework during this class. As a technical writer, my goals were to be able identify Java data types and to discuss sample code using the proper terminology. Your class is a HUGE help for me!
  • This class is the best Java class. I tried to learn Java from school and a training center, but no one can make Java easy to learn the way you can. The concept of Inheritance finally makes sense thanks to your lecture on how PlainDoughnut can be the superclass for ChocolateCoveredDoughnut.

  • No labels
Write a comment…