First Course in Java, EDP 304758, 2006 Summer

Schedule and Syllabus

  • 10 meetings
  • JUNE 19 to AUGUST 21: Mondays., 6:30-9:30 pm (including a meeting on 03-JULY)
  • San Francisco: Room 805, UC Berkeley Extension Downtown Center, 425 Market St., 8th Floor (enter on Fremont St.)
  • $645 (EDP 304758)
  • http://www.unex.berkeley.edu/cat/course346.html 

Schedule

Session

Date

Topic (and link to lecture notes)

Chapter in Textbook

Homework #

Homework due on the next session

1

19 JUNE

Java Fundamentals

1
(pp. 1-34)

1

Download the SDK, run HelloWorld, and write a program that does some  arithmetic

2

26 JUNE

Introducing Data Types and Operators

2
(pp. 35-70)

2

Write a program that does conversion and casting

3

03 JULY

Program Control Statements

3
(pp. 71-114)

3

Write a program with a nested for loop, and rewrite it with a nested while loop

4

10 JULY

Introducing Classes, Objects, and Methods

4
(pp. 115-150)

4

Write a program that defines the Animal class with a speak method and a feed method

 

5

17 JULY

MIDTERM


More Data Types and Operators (arrays and their length, the for-each style loop, string operations, command-line args, the ? operator)

5
(pp.151-184, so we skip pp. 185-200)

5

Write a program that performs a string operation on an array of strings.


Optional Challenge: study the Strings examples at

 

http://java.sun.com/docs/books/tutorial/java/data/strings.html

and/or at  http://javaalmanac.com/egs/java.lang/pkg.html#Strings

and write a program that does something with Strings that you consider useful.

  • One use case might be to remove the prefix "Mr. or Mrs." from a list of names. Another might be to remove the suffix ", Jr." and ", Sr."

  • Another use case might be to compare two strings and find any differences

 6

24 JULY

A Closer Look at Methods and Classes

6
(pp. 201-250)

6

Write a program with overloaded constructors and methods

7

31 JULY

Inheritance

7
(pp. 251-300)

7

Write an abstract class called Animal that has at least one abstract method and one non-abstract method. Extend the abstract class by implementing the abstract method it inherits. Override a non-abstract  method it inherits.

8

07 AUG

Packages and Interfaces

8
(pp. 301-332)

8

Write an Animal interface, implement it, create a package, and email the .zip

9

14 AUG

Exception Handling

9
(pp. 333-364)

9

Add exception handling to one of your previous programs

10

21 AUG

FINAL EXAM

 

 

Take the final (1 hour), grade the final, know your course grade, fill out the course evaluation form


Tally of grades


Syllabus

Textbook (required)


3rd Edition (2005)

by Herbert Schildt
McGraw Hill/Osborne
623 pages.
http://shop.osborne.com/getbook.php?isbn=0072231890&template=
(free online sample code to download)
ISBN: 0-07-223189-0 ($34.99 list price; $23 on Amazon)

We are using the THIRD edition.

Other Books To Consider

An introduction that assumes the reader is new to programming.
Java Demystified: A Self-Teaching Guide

Jim Keogh
McGraw Hill/Osborne (2004)
300 pages
ISBN 0-07-225454-8 ($19.95)

An introduction similar to our textbook, but more comprehensive and with less guidance for the non-programmer:
Java 2 The Complete Reference
Fifth Edition (2002)
by Herbert Schildt
McGraw HIll/Osborne
1184 pages
ISBN: 0072224207 ($49)

Innovative teaching style: photos, cartoons, puzzles, and whatever else might keep you from getting bored.
Head First Java
by Kathy Sierra & Bert Bates
O'Reilly (2003)
ISBN: 0-596-00465-6 ($39.95)
http://www.oreilly.com/catalog/hfjava/?CMP=IL7015

Handy reference if you do not want to use http://java.sun.com/j2se/1.4.2/docs/api/
(also has a brief introduction for people who are already programmers):
Java in a Nutshell, 4th Edition

bDavid Flanagan
Fourth Edition March 2002 
Series: In a Nutshell
0-596-00283-1, Order Number: 2831
992 pages, $39.95 US

More thorough and detailed than what we cover in this introductory course.
Best for people with a C/C++ background.
Learning Java, 2nd Edition

Patrick Niemeyer & Jonathan Knudsen
O'Reilly
0-596-00285-8
800 pages, $44.95 US


Course Description 

http://www.unex.berkeley.edu/cat/course346.html

X429.9 (2 semester units in EECS)

Java, with its platform independence and support for animation, graphics, and sound, is heavily used in interactive Web pages that work on Windows, Macintosh, UNIX, and other platforms. This introductory course for nonprogrammers focuses on the Java programming language, covering fundamental programming concepts and statements and basic object-oriented programming, and introduces Java applets. On successful completion of the course you will be able to write simple Java applications and applets and be prepared to undertake advanced courses in Java.


Grading

Criteria for Grading the Homework, Midterm, and Final

  • Homework
    • Is the homework emailed on time?
    • Does the header comply with the required format?
    • Does the code compile?
    • Does the code run?
    • Does the code address the assignment problem?
    • Does the code solve the assignment problem?
  • Adherence to structured design methodology and, when appropriate, object-oriented design
  • Simplicity: is the implementation sufficient, without unnecessary complexity?
  • Naming:
    • Do variables and members have consistent names that adhere to standard Java conventions?
    • Are the names indicative?
  • Documentation (code comments):
    • Do the comments explain briefly the big picture at the top: approach, algorithm, usage tips?
    • Do the comments make the code easier to understand and maintain, without stating the obvious or causing clutter?

Attendance

You are responsible for your work. You do not have to contact the instructor with a reason of absence.

Withdrawing

If you decide to withdraw, it is your responsibility to make sure that U.C. Berkeley Extension processes your withdraw request and removes your name from the final grading form. If your name appears on the official grading form, the instructor will assign you the grade you earned at the end of the five weeks.

Grading Options for UCBX Courses

·        CLG - Credit-Letter-Grade is the normal grading option.
 

·        P/NP - Pass/No-Pass. Requires 70% for a Pass.
 

·        C/NC - Credit/No-Credit. A grade of No Credit will be assigned if you have done
insufficient work for any of the other grading options.
 

·        W - Withdraw. If you cannot complete the course, you will normally be assigned a
grade of NC. Under certain circumstances, you might be eligible to "Withdraw" from the
course. You must initiate this action directly with UC Berkeley Extension.
 

·        INC - Incomplete. If you have completed 60% of the course work, but cannot finish the
work by the end of the term, you are eligible for an Incomplete. You must get the form from Extension and have me sign the form by the last day of class, then make a copy for your records. I will submit the form along with the course grades and keep a copy for clearing the incomplete. See the section below: "Clearing Incompletes".

Method of Assigning Course Grades

·        If you earned a 'B' or better, I assign the earned grade.
 

·        If you have at least a 70% AND you have requested the P/NP option, I assign a grade of Pass.
 

·        If you have not completed 60% of the course work, I assign a grade of No Credit.

If you have done 60% - 79% of the course work and have not requested P/NP, I assign an Incomplete.

Clearing Incompletes

If you received an Incomplete, you have 90 days from the last class meeting.
to submit all remaining work. For this class, that would be 14-NOVEMBER-2005.
To clear an incomplete, email all the remaining work on one day in a zip.

Remember to identify each assignment with your full name, the term it pertains to, and the name
and EDP number of the course it pertains to.

Clearing incompletes involves significant administrative overhead on my part. To minimize
the work, I only address the clearing of incompletes once a month, on the last weekend of the
month. Therefore, it may actually be several weeks before I clear an incomplete once all work
has been submitted. When you see the updated grades on the website tally, contact
Extension directly to get an updated transcript.

Academic Dishonesty

The mid-term and final exam must be the individual work of each single without the help of others, books, or notes.
If you cheat, you fail that exam.

Tally Page for Homework, Midterm, and Final

See explanations on the Tally page.


Submitting Homework

  • I do not accept floppy disks because of the risks of a computer virus.
  • Attach each homework’s source code file to an email, such as MyHelloWorld.java.
  • Do NOT
    • insert your source code in the body of the email (formatting lost)
    • send compiled bytecode (unnecessary because I want to compile your codce)
    • attach a ZIP archive (unnecessary unless your project has multiple source code files)
  • BEFORE you send the email to me, please verify the following:
    • your work addresses the assignment (if you have any doubts, email me beforehand)
    • your source code file is named correctly for the class it contains
    • your source code compiles (using only the command-line compiler)
    • the resulting class file runs (using only the command-line)
    • your comments explain what your code does in a clear, brief manner
    • your formatting and naming of class members and variables conform to Java conventions
    • the header comment of the source code file provides
      • sample output
      • any special usage information (for example, if a user must type a special argument at the command line)
         
The email Subject line should follow this format:
·        
Email Header: EDP304758, First Course in Java Homework #1, Student 03hj

The attached Java source code file must contain the following:

  • a comment header that:

    • identifies you

    • provides sample output

    • details any usage instructions necessary to run the program

  • your source code

 

The header comment should follow this format:

/* First Course in Java, EDP304758
   Homework 1
   Student 03hj, HENDRIX, Jimi
    Sample output:
    Hello World!
*/
/*
 * The HelloWorld class is an application that
 * displays "Hello World!" to the standard output.
 */
 public class HelloWorld {
 // Display "Hello World!"
 public static void main(String[] args) {
      System.out.println("Hello World!");
      }
   }

  • The timestamp of your email of the current week's homework to java@WORDesign.com must be before 5:00 p.m. on Sunday.
  • If you email the homework by 5:00 p.m. Saturday, I can probably help you solve any problem you might be having with the homework.
  • Note: I do not check email during regular working hours (Monday - Friday: 8 a.m. to 6 p.m.)
  • Each day your homework is late, it loses a grade, for example, an A (4) becomes a B (3).
  • To verify that I received your homework, please check the Tally pageafter 8:00 a.m. Monday.

How to copy from the output of the DOS prompt

  1. Click the icon for the command prompt, which is in the top left corner. A menu appears.
  2. Select Edit > Mark.
  3. Drag your cursor over the characters that you want to mark for saving. This copies the text.
  4. Paste the text in your source code file.

Download the Java Development Kit, Standard Edition - J2SE 5.0

Download Sun's JDK (Java Development Kit) for your computer's platform:

For Windows or Linux, you can see Sun's instructions at http://java.sun.com/docs/books/tutorial/getStarted/cupojava/
but it links to an older version of Java. Instead, download the current version of Java Development Kit (JDK 5.0), which is at http://java.sun.com/j2se/1.5.0/download.jsp
On this page, download the third option, JDK 5.0 Update 3, not the first option because we will NOT be using the NetBeans IDE.


For MacOS, Java is already built-in, and Apple users should read: http://developer.apple.com/java/

Many users have issues getting their applications to compile and run. You might want to read lecture1/index.htm#PATH and CLASSPATH

Use a Text Editor

For this First Course in Java, we recommend that you write your source code using a text editor you like.
Some text editors feature "syntax highlighting", that is, color to your source code to indicate the type (comments, keywords, strings, brackets, numbers).
Some provide shortcut keys that make it easier to compile and run a command-line application.

  • TextPad: http://www.textpad.com ($30, easy to use, with useful features for this course)
  • UltraEdit-32: http://www.ultraedit.com/ ($40: with more features)
  • JEdit, a text editor written in Java: http://sourceforge.net/projects/jedit/ and perhaps a good choice for Mac users
  • Notepad - no color coding (free with Windows, but not the best choice for learning Java)
  • Word--save as text - (free with Windows, but not the best choice for learning Java)
  • vi or emacs (UNIX)
  • SimpleText (Mac)

There are integrated development environments (IDEs) with sophisticated features, but I do not recommend them for the first course because gaining familiarity with a new tool costs time, can distract the student from the fundamental language concepts, and can complicate the submission of your homework by email. The instructor lists some IDEs for your information only.


About the instructor

Thomas Albert has taught First Course in Java in the following terms:

  • Fall 2005 (EDP 321299)
  • Summer 2005 (EDP 305789)
  • Spring 2005 (EDP 126581)
  • Fall 2004 (EDP 128645)
  • Summer 2004(EDP 124115)
  • Spring 2004 (EDP 123158)
  • Summer 2003 (EDP 135277)
  • Spring 2003 (EDP 306704)

He is a Senior Technical Communicator for Software Developer Documentation at MDL Information Systems, an East Bay firm that serves the biotech and pharmaceutical chemistry industries.
He writes sample code, syntax reference, and developer guide documentation involving Java, .NET, and the Cheshire scripting language for chemical structure database normalization.
He has 12 years experience in publishing technical information about software and 8 years experience teaching at the college level.
He holds a UC Berkeley Extension Certificate in Computer Information Systems, a doctoral degree in English, and a bachelors degree (with High Honors) from U.C. Berkeley.
For more information, see http://www.WORDesign.com


last updated: 18-JUNE-2006
Copyright © 2002 - 2006 granted to the Regents of the University of California