Kishwaukee College Syllabus
CIS 160 - 3001
Java Programming I
3 Credit Hours, Fall 2017

Course Description

This is the first course in the Java language sequence. It emphasizes a disciplined approach to problem solving and algorithm development. Input and output will be done using the command line, a graphical user interface, and files. Topics include selection, repetition, methods, arrays, text manipulation, data abstraction, and object oriented programming. Program design, style, documentation, and testing will be practiced. Three hours lecture/discussion a week.IAI: CS 911

Prerequisite: MAT 086

Meeting Time and Place

Lecture/Lab:   A-1374    
Time:12:30 P.M. - 1:45 P.M.Tuesday, Thursday
Dates:8/22/17 - 12/15/17 
Withdrawal date:11/27/17 
Labor Day:9/4/17School closed
Fall break:10/13/17School closed
Thanksgiving:11/22/17 5PM - 11/25/17School closed
Midterm exam:10/12/17during class
Final exam:12/12/17Noon - 1:50 P.M.

Instructor Information

Instructor: David G. Klick
Office:A-1342
Email:dklick@kish.edu
Phone:815/825-9337
Website:kermit.kish.edu/~dklick/
Backup website:klickfamily.com/david/school/
Desire2Learn:https://kish.desire2learn.com/
Dept. Secretary:815/825-9303 (Shelley Lawson)
Office hours:M 10:00 A.M. - 11:00 A.M., 1:45 P.M. - 2:30 P.M.
T 1:45 P.M. - 2:30 P.M., 5:15 P.M. - 6:00 P.M.
W 10:00 A.M. - 11:00 A.M., 1:45 P.M. - 2:30 P.M.
R 1:45 P.M. - 2:45 P.M.
other times by appointment

Expected Learner Outcomes

Upon completion of this course, the student will be able to:

  1. create, compile, and run Java programs
  2. compare and contrast basic data types
  3. declare and use variables
  4. get input using a CLI and a GUI
  5. display output using a CLI and a GUI
  6. process numeric data using arithmetic operators
  7. create and use methods and parameters, including passing by reference and passing by value
  8. explain variable scope and lifetime
  9. use selection to implement algorithms
  10. use repetition to implement algorithms
  11. use files for input and output
  12. format output
  13. create and use arrays
  14. sort an array
  15. create and use classes and objects, including inheritance and instance variables
  16. create and use constructors, overloaded methods, and overridden methods
  17. catch exceptions and use assertions
  18. write programs that follow standard style conventions
  19. test and debug programs

Required Text and Materials

  1. Eck, David J. Introduction to Programming Using Java. Copyright 2016. This book is available online for free at math.hws.edu/javanotes.
  2. Downey, Allen. Think Java (version 6). Copyright 2016. This book is available online for free at greenteapress.com/wp/think-java/.
  3. A standard modern Java compiler. The standard Java compiler is available online for free at www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  4. Oracle's Java 8 documentation: https://docs.oracle.com/javase/8/docs/api/index.html
  5. Internet access

Breakdown of Course Requirements

10 programming projects @ 40 points each400 points
1 midterm exam @ 100 points100 points
1 final exam @ 100 points100 points
--------------------------------------------------------------------
Total600 points

Final Grade Determination

A = 90 - 100% 540 points or more
B = 80 - 89.9%480 - 539 points
C = 70 - 79.9%420 - 479 points
D = 60 - 69.9%360 - 419 points
F = below 60%less than 360 points
Grade reports will not be mailed out. Please check KishSOS, My Student Info, under Academic Profile, Grades, for grade reports.

Course Procedures

  1. Students are expected to attend class sessions on time and prepared (Note: CIS 123 class sessions are optional attendance). Students should bring whatever they need to take notes to every class.
  2. Food and beverages are not permitted in the classrooms or labs. See a more detailed policy at http://kermit.kish.edu/~dklick/foodDrinkPolicy.html
  3. Cellphones, music players, etc. must be turned off in class.
  4. Students are expected to spend time outside of class completing assignments.
  5. A familiarity with computers and the Windows operating system is expected.
  6. Depending on the assignment, both digital and hardcopy versions of assignments may be required for submission. The procedure for submitting digital copies of assignments will be explained in class. Make sure you always keep a copy of all of your assignments. The instructor is NOT responsible for network failures, server failures, or student mistakes.
  7. The instructor answers many questions via email. Due to the high volume of requests, submissions, and questions received via email, the instructor must prioritize responses. Most questions will be answered (or at least acknowledged) within 48 hours. If you do not get a response when you expect one, please keep in mind that your email may have failed to reach the instructor, or may have automatically been rejected by an email client or server. Please try to contact the instructor again and possibly use the phone or an in-person visit if email is failing.

Make-up Policy

  1. Assignments are to be turned in on time. Assignments which are not turned in on time will not be accepted unless individual arrangements are made in advance with the instructor. In unusual cases where late assignments are accepted, the cost of being late is ten percent of the total possible points for every portion of a day late, up to a maximum of three days late. For example, an assignment received twenty-five hours past its due date will lose twenty percent of its total possible point value (because it is two days late). Assignments which are received more than three days (seventy-two hours) late will not be accepted and are not worth any points. Exceptions may be made to this rule if the student contacts the instructor before the due date and makes special arrangements in advance with the instructor. All late acceptance decisions of this nature are left solely to the discretion of the instructor. This rule does not apply once answers to an assignment have been distributed or posted. Assignments submitted after answers have been released are worth zero points even if the answers are posted one minute past the due date.
  2. Answers to assignments may be posted online, handed out in class, or sent via email by the instructor. Once an answer to an assignment has been released, no further submissions for the assignment will be allowed. This rule supersedes all other rules about when late assignments may be accepted. In general, the instructor will try to wait at least forty-eight hours before posting or distributing solutions, but there is no guarantee, so get your assignments in on time.
  3. Tests are to be taken at the day and time scheduled. Failure to take a test at the scheduled time may result in a grade of 0 for that test. In the case of an excusable absence or a genuine emergency, the instructor must be contacted as soon as possible, preferably before the scheduled test, to reschedule the makeup of that test in the Learning Skills Center on the day the student returns to campus.

Attendance Policy

Class attendance is strongly encouraged. You are responsible for whatever was covered in class, whether you are there or not. If you must miss a class, it is your responsibility to contact the instructor and make arrangements for notes, handouts, or announcements that were missed. Although attendance is not counted toward the final grade, there may be coursework which is done during class time which may count toward the final grade and may not be able to be taken outside of class time.

Kishwaukee College Policies and Resources

It is the responsibility of the student to be aware of Kishwaukee College Policies & Resources found on this link: kish.edu/kcsyllabuspolicies

Tentative Weekly Schedule

Please note that this schedule and the topics covered are likely to change. Changes will be announced in class. If you are not able to attend class, it is your responsibility to find out what was covered. A more detailed schedule is provided on the course website. Assignment descriptions and due dates will also be posted on the course web site.

Week Date Topics Readings
1 8/22, 8/24 Overview of course and introduction to programming
  • syllabus
  • basic programming concepts
  • getting Java installed
  • entering, compiling, and running a Java program
Eck Chap. 1
Downey Chap. 1
2 8/29, 8/31 Variables, expressions, and assignment statements
  • comments
  • program style conventions
  • primitive data types in Java
  • converting between primitive data types
  • the String class
  • parsing a String as a number
  • declaring and initializing variables
  • literals
  • constants
  • arithmetic operators and precedence
  • the concatenation operator
  • simple CLI input and output
Eck Chap. 2
Downey Chaps. 2, 3, 9
3 9/5, 9/7 Selection
  • Note: School closed for Labor Day on Monday, 9/4/17
  • logical operators
  • comparing Strings
  • if statement
  • if/else statement
  • nested if/else statements
  • variable scope
  • conditional operator (if time permits)
  • switch statement
  • formatting output
Eck Chaps. 3.1, 3.5, 3.6
Downey Chaps. 5.1 - 5.5, 9
4 9/12, 9/14 Repetition
  • increment and decrement operators
  • while loop
  • do/while loop
  • for loop
  • variable scope (revisited)
  • loop counters
  • sentinel values
  • accumulators
  • nested loops
  • break and continue (if time permits)
  • generating random numbers
  • text file input and output
Eck Chaps. 3.1, 3.3, 3.4
Downey Chap. 7
5 9/19, 9/21 Methods
  • syntax of a method
  • passing arguments to a method
  • returning a value from a method
  • passing by reference (objects) vs. passing by value
  • variable scope and lifetime
  • designing solutions using methods
Eck Chap. 4
Downey Chaps. 4, 6
6 9/26, 9/28 Arrays
  • array declaration
  • array initialization
  • accessing and modifying elements of an array
  • arrays of objects
  • passing an array to a method
  • common array algorithms (minimum, maximum, sum, fill, display)
  • linear search
  • binary search
Eck Chaps. 3.8, 7
Downey Chap. 8
7 10/3, 10/5 Arrays (continued) and introduction to objects
  • sorting an array
  • classes and objects
  • instance and static variables
  • creating (instantiating) an object of a class
  • constructors
  • packages and import statements
Eck Chaps. 7.4, 5.1, 5.2
Downey Chap. 11
8 10/10, 10/12 Object-oriented programming and midterm exam
  • instance and static variables
  • constructors
  • inheritance and composition
  • passing objects to/from methods
  • access modifiers (public, private, protected, default)
  • Midterm exam 10/12/17
Eck Chap. 5
Downey Chap. 11
9 10/17, 10/19 Designing objects
  • inheritance and composition
  • passing objects to/from methods
  • access modifiers (public, private, protected, default)
  • create and use overloaded methods
  • create and use overridden methods
Eck Chap. 5
Downey Chap. 11
10 10/24, 10/26 Designing objects (continued)
  • inheritance chains
  • the Object class
  • the "this" reference variable
  • superclass references and calls
  • access modifiers revisited (public, private, protected, default)
  • abstract methods and classes
  • interfaces
  • polymorphism
  • create and use overloaded methods revisited
  • create and use overridden methods revisited
Eck Chap. 5
Downey Chap. 11
11 10/31, 11/2 Text processing, error handling
  • the StringBuilder class
  • tokenizing a String
  • parsing Strings (revisited)
  • exception handling with try and catch
  • throwing an exception
  • assertions
Eck Chap. 3.7
Online notes
12 11/7, 11/9 Creating a GUI
  • the components of a GUI (containers, components, layout managers, listeners)
  • AWT and Swing
  • the event dispatch thread
  • create a container (JFrame, JPanel)
  • set a layout manager
  • create components (JLabel, JButton, JTextField)
  • add components and containers to containers
  • set JFrame settings
  • create a simple non-functional GUI
Eck Chap. 6
13 11/14, 11/16 Creating a GUI continued
  • create additional components (JComboBox, JRadioButton, JCheckBox)
  • create and use a ButtonGroup
  • create and use listeners
  • get input from a GUI component
  • display information on a (JLabel) GUI component
  • create a simple functional GUI
Eck Chap. 6
14 11/21, 11/23 Applets
  • discuss differences between applications and applets
  • create a working applet
  • Thanksgiving - school closed 11/22 5 P.M. - 11/25
Online notes
15 11/28, 11/30 Recursion
  • solving problems using recursion
  • examples of recursive methods
Eck Chap. 9.1
Downey Chap. 6.7
16 12/5, 12/7 Review or additional topics  
17 12/12 Final exam: Noon - 1:50 P.M., Rm. A-1374, Comprehensive  

Addendum

Suggested assignment topics:

  1. input, calculations, output
  2. input, calculations, selection, formatted output
  3. repetition
  4. methods
  5. array processing
  6. array processing, methods, sort implementation
  7. creating and using objects
  8. text file processing, selection, repetition, exception handling
  9. non-functional GUI, OOP concepts
  10. functional GUI, selection, OOP concepts