JAVA PROGRAMMING
CIS84 Course Outline - Fall 2011

INSTRUCTOR: Dan McElroy       
OFFICE:
T-410
See the last page of the Syllabus for office hours or http://unix.sjcc.edu/OfficeHours.htm
PHONE:
298-2181 x 3235
E-MAIL: Dan.McElroy@sjcc.edu

TEXTBOOK (Required):
Java - An Introduction to Problem Solving and Programming 6th Edition,
    by Walter Savitch
Prentice Hall,     ISBN-13:   978-0-13-216270-8
    Java - An Introduction to Problem Solving and Programming 6th Edition  - cover

COURSE OVERVIEW AND OBJECTIVES:
Java is an object oriented programming language which features economy of expression, modern control flow and data structures, and a rich set of operators. The course will explore these features through a variety of programming assignments. This course is for students and professional programmers whose needs include applications packages and/or systems software in software environments where efficiency and portability are important. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems Inc.

This course covers programming using the Java Programming Language. Upon completion of this course, the student will be able to:

  1. Demonstrate the ability to read and understand verbal and symbolic statements and translate these into working computer models.
  2. Construct a simple working Java program using the correct structure of the language
  3. Identify valid names for constants and variables. List the Java data types and their attributes. Compare and contrast the differences between data types. Create programs that assign appropriate data types based on a problem definition.
  4. Construct programs that use Scanner and Console.out for input and output with a Java program. Compare and contrast the advantages and disadvantages of different methods. Apply redirection to console programs to modify the source and destination of data.
  5. Describe the operation of each arithmetic, relational, and logical operator. Construct truth tables for simple and complex formulas containing multiple logical operators. Calculate the result of variables when use pre- and post- increments and decrements. Compute the resultant modifications to data when the data is converted from one data type to another.
  6. Describe how arithmetic and logical operators can be combined with the assignment operator to form new operators. Construct expressions utilizing the assignment operators. List the order of precedence for evaluating expressions. Evaluate expressions utilizing expressions having multiple levels of precedence with and without parentheses.
  7. Formulate solutions to simple and complex programming problems using combinations of logical operators as conditional expressions as part of if, elseif, and else statements. Convert if/elseif sequence of statements to switch statements. Compare and contrast the different organizations of code when implemented as if/elseif statements vs. case statements.
  8. Create programs that contain loop structures. Select the appropriate while or do-while structure for a given problem. Compare the use of a for statement to a while statement when used in counting loops. Construct solutions using priming reads and sentinel values when the amount of data is unknown.
  9. Organize a solution to a large program by breaking the program into smaller parts. Describe how data can be passed to and from functions and procedures using argument lists. Describe how functions return integer and non-integer variables. Compare and contrast the use of external variables to variables passed as arguments. Identify the scope and visibility of variables internal and external to a function. Explain the rules of static variables as applied to variables internal and external to a function. Compare and contrast the use of register variables to automatic variables. Demonstrate the use of functions as programming blocks.
  10. Organize data into single and multidimensional arrays. Use index notation to initialize and access data. Diagram and use pointers to access data in arrays. Use an array of pointers to functions to select a function to be activated.
  11. Organize different data types into a record using the struct statement. Create arrays of structures. Access data in arrays of structures. Diagram the use of pointers to structures and their data members. Compare and contrast the use of pointers to indexing when accessing data in arrays of structures. Create and utilize pointers to functions. Utilize unions and typedefs statements to create multiple methods of accessing data and new data types.
  12. Define an object-oriented class. Create objects as instances of a class. Create and utilize member constructor and destructor functions. Compare the use of the constructors and destructors to functions external to the class definition. Create arrays of objects and access the objects utilizing index and pointer notation. Describe how the assignment and copy constructors are implemented in Java.

----------------------------- LAB CONTENT ----------------------------------

  1. Compare and contrast different data types
  2. Create interactive programs utilizing console input and console output
  3. Develop programs that demonstrate the use of the arithmetic and arithmetic-assignment operators
  4. Implement decision statements utilizing relational and logical operators
  5. Create programs that use sentinel values to terminate data input
  6. Create programs that use a counting value to implement a loop
  7. Divide programs into smaller segments by use of functions and sub procedures
  8. Organize and process data using arrays
  9. Access data through the use of pointers
  10. Manipulate character strings
  11. Write code utilizing Object Oriented Programming (OOP) techniques
  12. Create more complex objects utilizing class functions

MOODLE:
Moodle may contain class notes, PowerPoint slides, class announcements, the course syllabus, test dates, and other information for the course. Lab assignments and homework must be submitted using Moodle. The assignments must have your name, student ID, and exercise name at the top of the document. Late assignments will be accepted with a penalty. Make sure you can login to your Moodle account the first week of class. If you are adding the class, your Moodle account should be active within two hours of your completed add request. Supplementary information for the course on Moodle.

E-MAIL:
All students are required to obtain an e-mail account in addition to their Moodle account. All correspondence through Moodle uses the e-mail address that you have listed with the Admissions and Records office. This includes any messages that I send to the class as well as scores for each assignment. It is important that you update your e-mail address if it changes.
If you have any questions about the course or need assistance, please contact me in person or by telephone during office hours or by e-mail at any time. You can update your e-mail address by clicking the "CLICK HERE" message on the purple rectangle when you go to the MyWeb page at https://myweb.sjeccd.edu (NOTE the 'S' in https, and the 'E' in sjeccd). If you have an e-mail filter for spam, etc., it is your responsibility to make sure that you are receiving the e-mails that I send you, either from my college address Dan.McElroy@sjcc.edu, or e-mails sent through Moodle.

ACCESS TO CAMPUS COMPUTER LABS:
San Jose City College has many computer labs on campus. The labs used by the CIS and CA departments have all of the software installed that you will need to complete the class assignments. Most of the other labs on campus will have Microsoft Office installed, but may not have a Java compiler installed. You need to be an SJCC registered student to use the computers in the Library. You may need to be registered for tutoring to use the LRC labs. Other labs serve different departments on campus. You may need to be registered in one of their classes to use their labs.

LAB ASSIGNMENTS:
Some of the lab assignments will take longer than the time available during class. It is expected that each student will make use of the Open-Lab time to complete assignments as needed. Open-Lab hours are made available to students registered in CIS courses. Instructions will be given during the first class meeting on how to use the open lab.

Programs turned in must include printouts of both the program and the results of testing the program. Some labs may require that a disk be turned in as part of the assignment. Programs will be graded on whether they work, quality of output, program readability and appearance, program construction and completeness of testing, and very importantly - documentation.

LAB REPORTS:
A lab report form is available on Moodle. Each lab report must include:
1. Your name, class, and date
2. A written description of the lab project in English
3. A list of inputs, processing and outputs for each program
4. Test data values, expected results and actual results when the program runs
5. A discussion of what you did to make the program run and any problems you encountered

6. A screen shot of the program execution
7. The listing of the program (code for the program)

ATTENDANCE:
You are expected to attend all class meetings. If you are absent from either lecture or lab, it is your responsibility to find out what you missed, and complete any assignments that were given. It would be a good idea to make a friend or two with other people in the class to share notes in the event that any of you are absent. Once you have shown some commitment to the class by attending, participating in quizzes, labs, or homework, I assume that you wish to be in the class. It is your responsibility to drop the class if you do not wish to continue. However, you may be dropped by the instructor if it appears that you are not participating in the class by submitting regular course work. If you do not complete the course, and do not officially drop through the Admissions office and are not dropped by the instructor, you will receive a grade based on your completed work.

In other words, if you want to stay in the class, you need to submit work on a regular basis or your may be dropped. If you want to drop the class, you should drop the class by one of the drop dates to make sure it happens for the best result on your transcript.

GRADING:

Homework

144 points

 

 DEFINITIONS    
A=Distinguished
B=Above Average
C=Average
D=Minimum Passing
F=Failing

GRADE Points  Percent
 A = 720-800  90%-100%
 B = 640-719  80%-89.9%
 C = 560-639  70%-79.9%
 D = 480-559  60%-69.9%
 F =   0-479   0%-59.9%

Lab work

556 points

 

Final Exam

100 points

 

Total

800 points

 

   

 

NO-NAME and LATE PENALTIES:
You must include your name, student ID or Moodle ID, and exercise name on all work you submit. Unless otherwise specified in an assignment, your name, ID and exercise name should appear in the upper right corner of your lab report or essay. Penalties will be applied AFTER the score for your assignment has been computed. A maximum of 50% penalty be applied for No-name or Late penalties.

Homework is due on Moodle before the beginning of the next week's class (6:00pm). Homework will NOT be accepted late

Lab assignments are due on Moodle by 11:55 pm the Friday after class. Lab assignments are accepted one or two weeks late with the late penalty shown below. Lab assignments will NOT be accepted that are three weeks late or more.

No work will be accepted after the Friday following the final exam.

Penalty
Cause
1 point
No name on submitted assignment
1 point
No ID on the submitted assignment. Moodle or SJCC student ID is acceptable.
1 point
The assignment name is missing on the submitted assignment
-10%
Lab assignment is one, two, or three days late
-25%
Lab assignment is four, five, or six days late
-50%
Lab assignment is one or two weeks late
-100%
Lab assignments three weeks late or more will NOT be accepted

CIS 084 COURSE OUTLINE - subject to change

Week
Date

Lecture Topic
Tue 6:00 pm - 8:25 pm
Chapter numbers refer to
Java - An Introduction to Problem Solving and Programming 6/e
Lab Assignment
Tue 8:30 pm - 9:50 pm
Page numbers refer to
Java - An Introduction to Problem Solving and Programming 6/e
Homework
To be completed before next week's class. Page numbers refer to
Java - An Introduction to Problem Solving and Programming 6/e
Points this week
Week 1
Sept 6
 

Class Orientation
Course Syllabus
Moodle
Submitting Lab Assignments

Chapter 1
Computer Systems
Programming and Problem Solving
Intro to Java
The Unicode Characters (Appendix)
Testing and Debugging
NetBeans

 

Lab 1.0 Paycheck Program
Enter the Paycheck program. See Paycheck project code. Fill out the lab report form and submit using Moodle. (12 points)
 
Lab 1.4 Birthday Wizard
Complete the Programming Project #4 on page 42. Fill out the lab report form and submit using Moodle. (12 points)
 
Lab 1.8 Graphical Pattern (GUI)
Complete the Programming Project #8 on page 42. Fill out the lab report form and submit using Moodle. (12 points)

Read chapter 2 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 6 on pages 67.

Homework each week is due before the start of class the following week. (12 points)

48
Week 2
Sept 13
 

Chapter 2
Variables and Expressions
Input and Output
Data Types and Expressions
Documentation and Style
Keyboard and Screen I/O
Graphics I/O using
     JFrame and JOptionPane

Lab 2.6 Fahrenheit to Celsius
Complete the Programming Project #6 on page 130. Fill out the lab report form and submit using Moodle (20 points)

Lab 2.15 DateDisplayer (GUI)
Complete the Programming Project #15 on page 132. See DateDisplayer.java Fill out the lab report form and submit using Moodle (20 points)

Read chapter 2
Read chapter 3 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 6 on pages 154 and 155.

Homework each week is due before the start of class the following week. (12 points)

52
Week 3
Sept 20
 
Chapter 3
The if-else Statement
Nested if Statements
Boolean Expressions
The switch statement

Lab 3.2 Increasing Values
Complete the Programming Project #2 on page 190. Fill out the lab report form and submit using Moodle (20 points)

Lab 3.6 Change Computation
Complete the Programming Project #6 on page 191. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 3 - first half
Submit a Word document with the questions and answers to Self-Test Questions 8 through 11 on page 164.

Homework each week is due before the start of class the following week. (12 points)

52
Week 4
Sept 27
 
Chapter 3
The if-else Statement
Nested if Statements
Boolean Expressions
The switch statement
GUI Examples

Lab 3.9 Date Validation
Complete the Programming Project #9 on page 191. Fill out the lab report form and submit using Moodle (20 points)

Lab 3.12 Interlocking Rings (GUI)
Complete the Programming Project #12 on page 192. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 3 - second half
Read chapter 4 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 6 on pages 210 and 211.

Homework each week is due before the start of class the following week. (12 points)

52
Week 5
Oct 4
 

Chapter 4
Java Loop Statements
Programming with Loops

Lab 4.5 Largest Smallest Average
Complete the Programming Project #5 on page 251. Fill out the lab report form and submit using Moodle (20 points)

Lab 4.6 Exam Grades
Complete the Programming Project #6 on page 251. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 4 - first half
Submit a Word document with the questions and answers to Self-Test Questions 7 through 12 on page 221.

Homework each week is due before the start of class the following week. (12 points)

52
Week 6
Oct 11
 
Chapter 4
Java Loop Statements
Programming with Loops
GUI Examples

Lab 4.14 Bouncing Ball
Complete the Programming Project #14 on page 253. Fill out the lab report form and submit using Moodle (20 points)

Lab 4.18 Bullseye (GUI)
Complete the Programming Project #18 on page 254. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 4 - second half
Read chapter 5 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 6 on pages 283 and 284.

Homework each week is due before the start of class the following week. (12 points)

52
Week 7
Oct 18
 
Chapter 5
Class and Method Definitions
Encapsulation
Objects and References

Lab 5.1 Klingons vs. Elephants
Complete the Programming Project #1 on page 361. Fill out the lab report form and submit using Moodle (20 points)

Lab 5.5 Grade Bar Graph
Complete the Programming Project #5 on page 362-363. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 5
Read chapter 6 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 4 on page 387.

Homework each week is due before the start of class the following week. (12 points)

52
Week 8
Oct 25
 

Chapter 6
Constructors
Static Variables and Methods
Writing Methods
Overloading
Enumeration
Packages
GUI Examples

Lab 6.12 Rational Numbers
Complete the Programming Project #12 on page 469. Fill out the lab report form and submit using Moodle (20 points)

Lab 6.18 Guess a Number (GUI)
Complete the Programming Project #18 on page 471. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 6
Read chapter 7 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 4 on pages 494-495.

Homework each week is due before the start of class the following week. (12 points)

52
Week 9
Nov 1
 

Chapter 7
Introduction to Arrays
Arrays in Classes and Methods
Sorting and Seraching Arrays

Lab 7.1 Percentage of Sum
Complete the Programming Project #1 on page 562. Fill out the lab report form and submit using Moodle (20 points)

Lab 7.4 Bubble Sort
Complete the Programming Project #4 on pages 563-564. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 7 - first half
Submit a Word document with the questions and answers to Self-Test Questions 9 through 14 on pages 514 and 515.

Homework each week is due before the start of class the following week. (12 points)

52
Week 10
Nov 8
 

Chapter 7
Multidimensional Arrays
GUI Examples

Lab 7.13 Pine Tree (GUI)
Complete the Programming Project #10 on page 565. Fill out the lab report form and submit using Moodle (20 points)

Lab 10.2 Veterans Day Quiz
(20 points)

Read chapter 7 - second half
Read chapter 8 - first third

40
Week 11
Nov 15
 
Chapter 8
Introduction to Inheritance
Polymorphism
Interfaces and Abstract Classes
GUI Examples

Lab 8.1 Employee Class
Complete the Programming Project #1 on page 648. Fill out the lab report form and submit using Moodle (20 points)

Lab 8.13 Button Demo (GUI)
Complete the Programming Project #13 on page 651. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 8
Read chapter 9 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 6 on pages 668-669.

Homework each week is due before the start of class the following week. (12 points)

52
Week 12
Nov 22
 

Chapter 9
Exception Handling
Exception Classes
GUI Examples

Lab 9.13 Time Trip Calculator (GUI)
Complete the Programming Project #13 on page 719. Fill out the lab report form and submit using Moodle (20 points)

 

HAPPY THANKSGIVING

20
Week 13
Nov 29
 
Chapter 10
Streams and File I/O
Text File I/O
Binary File I/O
Binary File I/O with Objects and Arrays

Lab 10.1 Largest and Smallest
Complete the Programming Project #1 on page 790. Get the data file from the instructor. Fill out the lab report form and submit using Moodle (20 points)

Lab 10.2 Duplicate Elimination
Complete the Programming Project #2 on page 790. Get the data file from the instructor. Fill out the lab report form and submit using Moodle (20 points)

Read Chapter 10
Read chapter 11 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 3 on pages 813 and 814.

Homework each week is due before the start of class the following week. (12 points)

52
Week 14
Dec 6
 
Chapter 11
Recursion
Binary Search
Recursive Sort

Lab 11.3 Factorial
Complete the Programming Project #3 on pages 837838. Fill out the lab report form and submit using Moodle (20 points)

Lab 11.4 Sum of Integers
Complete the Programming Project #4 on page 838. Fill out the lab report form and submit using Moodle (20 points)

Read chapter 11
Read chapter 12 - first third
Submit a Word document with the questions and answers to Self-Test Questions 1 through 6 on pages 854 and 856.

Homework each week is due before the start of class the following week. (12 points)

52
Week 15
Dec 13
 
Chapter 12
Array Based Data Structures
Java Collections Framework
Linked Data Structures
Lab 12.4 Pet Objects
Complete the Programming Project #4 on page 908. Fill out the lab report form and submit using Moodle (20 points)
Review for the Final 20
Week 16
Dec 20
 

FINAL EXAM - Written test

FINAL EXAM - Lab test

 

100
  TOTAL POINTS    

800


Important Dates Fall 2011
Regular semester courses
(all information subject to change)
9/5
Labor Day - campus closed
9/6
Fall Semester Begins
9/15
Last day to withdraw for a refund
9/18
Last day to use an ADD code at 11:00pm
9/19
SJCC instructor census reports due
9/29

Last day to withdraw without a "W" on record
Last day to apply for a refund (if dropped by 9/15)
Last day to submit CR/NC forms to A&R

10/14
Graduation/Certificate petitions due for Fall 2010
11/11-11-13
Veterans Day Weekend - campus closed
11/24-11/27
Thanksgiving Holiday - campus closed
11/29
Last day to withdraw with a "W"
12/16
English Finals (no regular day classes)
12/19-12-22
Final Exams
1/11/2012
Grades by phone 223-0300 or https://myweb.sjeccd.edu

Dan McElroy - Office Hours Fall 2011 - Room T410
 
MON
TUE
WED
THR
9:00
 CIS-41 Online
and
Class preparation
 
Office-T410 
9:00 - 10:30
CIS-41 Online
and
Class preparation
10:00
11:00
T213
(10:45-2:45)
12:00
1:00
2:00

Office-T410
2nd & 4th Tue

2:00 - 5:00

 Academic Senate
1st & 3rd Tue
2:00 - 5:00
3:00
Office-T410
1st, 2nd, 4th Wed
3:00 - 5:00
Dept Meeting
3rd Wed/Month
3:00 - 5:00 
4:00
5:00
 
 
6:00
T209
T209 
 
7:00
8:00
9:00