COP2800 – Java Programming

INSTRUCTOR: Prof. David Freer

TELEPHONE: (786)877-4573

EMAIL: dfreer@mdc.edu, david.freer@gmail.com


WEBSITES:
http://mdcjava.blogspot.com
                
http://www.freerschool.com

COMPUTER ACCESS:

You will need to use a computer with internet access to complete assignments. Study Center in Room 9103 provides computers access for CIS students. You will be asked to provide a current MDC ID and validated schedule when you enter the Study Center. The hours of operation are on the door of Room 9103 and on the CIS Department web page located at http://www.cis.kendall.mdc.edu/About/Center.htm. Broken computers and “internet down” are not valid excuses! You can use the CIS Study Center computers.

COURSE DESCRIPTION

This is an intermediate level programming course using the Java computer language, recommended for Computer Science and Computer Information Systems majors. Students will learn to code, compile and execute programs while learning advanced programming concepts and object oriented programming and design concepts and principles. Prerequisite: COP1334. Laboratory fee. (3 hr. lecture, 2hr. lab)

 

COURSE COMPETENCIES

Competency 1: The student will demonstrate an understanding of the Java system architecture and its major components

Competency 2: The student will demonstrate an understanding of the professional software development process

Competency 3: Students will demonstrate an understanding of fundamental programming constructs and concepts

Competency 4: The student will demonstrate an understanding of the following advanced programming techniques

Competency 5: The student will demonstrate an understanding of the object oriented programming concepts of Class and Object

Competency 6: The student will demonstrate an understanding of inheritance

Competency 7: The student will demonstrate an understanding of Object Oriented Design concepts

Competency 8: The student will demonstrate an understanding of Java input and output

Competency 9: The student will demonstrate an understanding of exception programming techniques

Competency 10: The student will demonstrate an understanding of GUI (Graphical User Interfaces) and event-driven programs

Competency 11:The student will demonstrate an understanding of professional development

 
 

Miami Dade College - General Education Learning Outcomes

Purpose: Through the academic disciplines and co-curricular activities, General Education provides multiple, varied, and intentional learning experiences to facilitate the acquisition of fundamental knowledge and skills and the development of attitudes that foster effective citizenship and life-long learning. As graduates of Miami Dade College, students will be able to:

  1. Communicate effectively using listening, speaking, reading, and writing skills.

 a.  This outcome is not reinforced in this course.

  1. Use quantitative analytical skills to evaluate and process numerical data.

 

  1. Solve problems using critical and creative thinking and scientific reasoning.

 

  1. Formulate strategies to locate, evaluate, and apply information.

 

  1. Demonstrate knowledge of diverse cultures, including global and historical perspectives.
    1. This outcome is not reinforced in this course.

 

  1. Create strategies that can be used to fulfill personal, civic, and social responsibilities.
    1. This outcome is not reinforced in this course.

 

  1. Demonstrate knowledge of ethical thinking and its application to issues in society.
  a.   This outcome is not reinforced in this course.

  1. Use computer and emerging technologies effectively.

 

  1. Demonstrate an appreciation for aesthetics and creative activities.
    1. This outcome is not reinforced in this course.

 

  1. Describe how natural systems function and recognize the impact of humans on the environment.
    1. This outcome is not reinforced in this course.
TEXTBOOKS & MATERIALS

Required:

Big Java 3e with WileyPLUS by Cay Horstmann. Publisher: John Wiley & Sons, Inc. (WileyPLUS provides access to required online features)

Printed book with WileyPLUS ISBN: 0470105542 (updated 3/11/09)

OR

WileyPLUS only (includes book online) ISBN: 9780470111130

Highly Recommended:

Home computer with high speed internet access
USB Drive (Flash Drive, Thumb drive).
 

E-MAIL AND PHONE MESSAGES

I am generally very quick about responding to emails. If there is a delay of a day, write me again!

ATTENDANCE

This is a participatory course and you must be in class to succeed. Roll will be taken at the start of each class – if you are late you will be counted absent. It is the student's responsibility to obtain the information missed during an absence.

TEXTBOOK DATAFILES AND INSTRUCTOR FILES

Some files may be stored on the CIS network in the classroom and in the CIS Study Center. You will upload files to your moodle account which will be located at www.freerschool.com

READING and TUTORIAL ASSIGNMENTS

Students will be responsible for all material covered in class and all chapters assigned in the textbook. Readings should be completed before class begins. While some class time will be spent working on the tutorial exercises in the book, you are responsible for completing each of the assigned tutorials.

GRADING:

Grading Criteria

number

percent of total

Major Assignments

5 – 10

35%

Minor Assignments, Quizzes, and Blog

10 -- 20

25%

Exams

3 – 4

25%

Final exam

1

15%

Total

 

100%


 

Final Grading Scale

A

B

C

D

Percentage cut-off

90%

80%

70%

60%

You can make up one test at the end of the semester.

 

GUIDELINES FOR PROGRAMMING ASSIGNMENTS

Assignments are due at the beginning of class on the due date. Late assignments will lose 10% of their grade and will only be accepted up to one week past their due date. Each assignment will have specific submission guidelines. Most assignments will be submitted via the internet to either http://www.freerschool.com 

All coding assignments must follow professional coding style guidelines. See the Coding Style Guide.

While I encourage discussion about assignments, ALL CODE MUST BE YOUR OWN unless otherwise specified. Since it is impossible to determine who the author was and who was the plagiarizer, all assignments submitted with duplicate code will receive a 0.  The second sign of copied code will be taken to the Dean.
 

USEFUL WEBSITES

Sun Java Technology: http://java.sun.com/

                WileyPLUS: http://www.wileyplus.com/

                Netbeans: http://www.netbeans.org

BlueJ IDE website: http://www.bluej.org/

The Java Tutorial: http://java.sun.com/docs/books/tutorial/index.html

developerWorks : Java technology: http://www.ibm.com/developerworks/java/  (there are many others!)

Slashdot: News for nerds, stuff that matters: http://slashdot.org/

USEFUL BOOKS

Kathy Sierra and Bert Bates, Head First Java (2nd Edition) , O'Reilly. A highly regarded alternative textbook. Good alternative explanations and illustrations; a limited preview is available at books.google.com.

Peter van der Linden. Just Java™ 2 (6th Edition). Prentice Hall. Good reference and source of alternative explanations.

Ken Arnold, James Gosling, and David Holmes. The Java™ Programming Language. Addison-Wesley . Good description of language design; interesting reading but not a good reference for syntax.

Steve McConnell, Code Complete (2nd Edition), Microsoft Press. This is a book that every professional programmer should read. McConnell's claim "… this handbook will help you to create higher-quality software and to do your work more quickly and with fewer problems." is absolutely true.

WITHDRAWAL AND INCOMPLETE

All students that are listed on the final grade report will receive a final grade. Incomplete grades will be given only if a) you are up-to-date in class AND b) you have a passing grade AND c) you have an emergency or life change that occurred after the semester began that can be verified and is beyond your control. It is your responsibility to determine the official drop dates for your courses. See http://www.mdc.edu/academic_calendar/.

COP2800 09-1

TENTATIVE SCHEDULE OF ACTIVITIES FOR Monday / Wednesday

(6:00 – 7:40 PM – REFERENCE NO. 545013)

January 5, 2010 – April 30, 2010, in room 2128

 

 

      Week  

  Topics / Reading Assignments

        1

Using objects and exploring variables

Tools for Programming
• Java Technology
• Download and install JDK and download netbeans (Download 6.7)

http://faculty.mdc.edu/gballing/Java/Installation%20Instructions.htm

To bundle the JDK and Netbeans go here.
• Pseudocode and UML
• Reading the API documentation

Chapter 1, 2 Presentations

              1
 

Pseudocode II
Defining and modifying objects
• Public interfaces and documentation

Small Business Example

**LAST DAY TO DROP WITH A FULL REFUND January 11, 2010.**
 

        2

 

Fundamental Data Types

Exploring objects and writing methods
• Control flow
• Writing and calling methods

Chapter 3

Scanner: Input

Major Assignment 1

                2




 

Toy and ToyStore example in class.

Pet and Vet class example Minor Project
 

Exam 1 Review sheet.

         3


 


 


 

 

Review Chapter 1-5
Work on looping examples.  Pet and Vet Class minor project.

Chapter 6
Array Examples
NetBeans Examples
Major Assignment 1 Due

Exam 1 Chapter 1-6

        3

 

Prime numbers
Polymorphism and Java interfaces
 

Introduction to Chapter 9.

 

        4

Polymorphism II

        4

Chapter 10 Inheritance

 Review static methods.

Design quality – coupling and cohesion

        5

 

Chapter 8 Presentation
Real Estate Example in class:
http://mdcjava.blogspot.com/2009/06/real-estate-gui.html

Major Assignment 2 Due.

 

        5

 

Finish Real Estate Example in class.
Review for exam 2

        6

Exam 2 Chapters 1-10

          6

Object Oriented Design II Chapter 8

Exceptions and Java I/O

Reading from Files
Books Example

BlackJack Program

        7

Reading from Files

Multiples of 3's and 5's under 1000 summed up! 

Video game programming: Blackjack!  1

**March 17, 2010 is the last day to withdraw from the class.**

        7

GUI and MySQL connections

Video game programming: Blackjack!  2

        8

Review for Exam 3

        8

 

Exam 3

9

Chapter 12

Chapter 18 GUI and Event

9

Handling,Chapter 12

Recursion

10

Chapter 18
Prime Numbers and recursion

Data Structures: Stacks, Queues, and Lists
Recursion Review

10

Searching data structures.
Exponents and palindromes.

11

 BetterProgrammer.com
Final review

11

Final Exam
Final Project Due on FreerSchool.

 

"Putting off an easy thing makes it hard.

Putting off a hard thing makes it impossible."

-- George Claude Lorimer





Steps to success!

READ THE TEXTBOOK! Before all else fails, read the directions.

PUT IN THE TIME! You should plan to spend a lot of time on this class. In college the average amount of study time per week should be twice the amount of lecture time in each class. Since you will spend 5 hours per week in this class, you should plan on spending at least 10 hours per week studying for this class. I say at least because the 2*Lecture hours formula is an average. Since this is a programming class, plan on spending more time than the average.

ASK QUESTIONS! Come prepared with questions. Read the material before coming to class and develop a list of questions or topics for which you would like an alternative explanation. If the instructor doesn’t answer these questions or offer the explanation during lecture, ask the question or request the explanation. Ask the instructor to clarify any points you have at the point of your confusion, don’t expect to figure it out later.

TAKE NOTES IN CLASS. What did he say? That it was going to on the test or not? Writing things down makes them easier to remember.

TAKE NOTES WHILE READING! If writing notes in class helps you remember what the instructor said, taking notes while reading will help you remember what the author wrote. Highlighting does not improve memory.

MAKE A LANGUAGE SUMMARY SHEET. Every time you encounter a new Java concept, add it to a master sheet showing the correct syntax and relevant notes for each Java concept you learn. Having this handy will greatly speed programming.

PLAN BEFORE CODING. You have been speaking English for much longer than you have been speaking Java. Write out your program in English (pseudocode) first. .If you can’t clearly express the program in English, you are not ready to try translating it into Java!

THINK THROUGH NON-ASSIGNED EXERCISES. Test your understanding of the material by thinking through some of the end-of-chapter exercises in the text, perhaps even going as far as writing pseudocode.

REVIEW NEW MATERIAL WITHIN 24 HOURS. A quick reading of your notes the day after you take them will almost double your memory of the material. If you read the notes out loud, it will double your memory.

START ASSIGNMENTS IMMEDIATELY! All assignments in this course will take longer than you expect. If you start early, you will be able to use the instructor’s (and fellow students’) class and lab time to help you develop your project. Waiting until the week it is due will not leave enough time to ask for help!

HAVE FUN! If you become bored, frustrated or sleepy this usually means that your short-term memory is “full” and it is time to take a break. Even a short break will give your short-term memory a chance to process what it has just absorbed.


 

The purpose of computing is insight, not numbers.

-- R. Hamming.