Programming II CS231A

Fall Semester 2008

 

Instructor Information:  Dr. Ron King

      Associate Professor of Mathematics and Computer Science 

      Office: Science Hall 108                          Phone: (386) 481-2670      

      Email: kingr@cookman.edu

     Office Hours: 9:30AM-11:00AM and TR 4:15PM-5:15PM

 

Pre-Requisite Courses: CS 230 Computer Programming I or transfer credit in Java Programming.  No exception:  Note: A major unrecorded prerequisite needed to achieve a mastery of this course material is the willingness to spend an average of 2 hours of study time for each hour in class.

 

Course Description:

This course continues where CS 230 leaves off with in developing an understanding of the Java programming language and its extensive Application Programming Interface (API) with a focus on program design, style, and testing.  Topics covered include: recursion, file-based I/O, classes, packages, method overloading, inheritance, polymorphism, abstract classes, Remote Method Invocation (RMI), interfaces and exceptions. This course requires students to co-register for a programming lab, CSL 231. The lab provide students with hands-on practice developing programs implementing the programming constructs.

 

Goals:  Continue to use JAVA to introduce students to the concept of object-oriented programming.  At the completion of this course students will be expected to be able to:

  1. At the end of this course a student should be able to program at the CS 1 level as defined by the Association for Computing Machinery (ACM). Additionally, the student will be introduced to the core of a CS 2 level program.
  2. This course provides prerequisite preparation for more advanced programming in junior and senior level courses, including, CS 332, CS 333, CS 335, CS 433, CS 436 and CS 499.
  3. use all features of the Java programming language
  4. use most of the packages in the core Java API
  5. complete at least 10 well-written Java programs

 

 

Textbook: An Introduction to Object-Oriented Programming with JAVA (4th edition) by C. Thomas Wu (McGraw Hill)

 

General Requirements/Student Expectations:  

  1. Collaboration: There are no group assignments in this course.  Programming projects are expected to be your own. ALWAYS try each part of the project BEFORE asking for help from ANYONE.  Only after you first give it a good try on your own should you seek an opportunity to discuss general approaches with others including your classmates.  Once you do decide to seek help be prepared to communicate your difficulties in order to obtain the appropriate level of help.  But remember you must design and write the code yourself.   Can you consult with others about your design or seek help in debugging?  YES!  Yet, you may not collaborate with anyone on the writing of your code. 
b.      Late policy:  Ample time is given to complete each project.  As a result, project deadlines are absolute and late work will not be accepted.  Failure to submit an assignment by the deadline will result in a grade of ZERO.  There are no exceptions.  Since projects are turned in by email, you can always turn them in early. However, I will ONLY look at the last on time turn-in.

c.      Programming Assignments will be submitted by email: kingr@cookman.edu  Programs MUST compile and run using the PC version of Java 5.0.   A program that does not compile will receive a zero grade. 

  1. Questions about grades:  After each graded assignment is returned students will have one week following the return of the assignment to question the grade assigned. After one week has passed the grade becomes final and will not change. This applies to all programming assignments, and quiz/tests.
  2. Participate in class discussions and be responsible for any material missed when you are absent.
  3. Disabilities: If you need special consideration due to a disability documented by the college, please inform me during the first week of class and I'll be pleased to accommodate you.
  4. Academic Dishonesty: Cheating of any form will not be tolerated. Any student found guilty of plagiarism or cheating will automatically receive an "F" for the course, and will be referred for disciplinary action that could result in probation or suspension.  Please remember that academic dishonesty includes initialing the attendance sheet for another student who is not in attendance or late for class.

Methods of Instruction

A mixture of lectures and demonstrations combine with group work.

 

Course outline:  Tentative list of topics to cover

  1. Objects and classes
  2. Strings and text I/O
  3. Inheritance and Polymorphism
  4. Abstract Classes and Interfaces
  5. Object-oriented design
  6. Getting started with GUI programming
  7. Graphics
  8. Event-Driven programming
  9. Applets and multimedia
  10. Files and Streams
  11. Exceptions and assertions
  12. Recursion

 

Technology

Computers in the classroom used for this course should only be used during class for class assignments.  You must follow all turn-in instructions carefully and email your assignments alone with attachments to kingr@cookman.edu on or before the due date to receive credit.  

 

Assessment/Grading scale

a. Your grade will be based on eight programming projects (50%), and eight pop quizzes (50%).  There is no final exam for this class. All quizzes are close-book and close-notebook. Calculators are allowed and should be used during exams.   A total of 1600 points make-up this course with 800 coming form exams and 800 from quizzes.   Note: There is no makeup quizzes.  TEN pop quizzes will be given during the course with the TOP eight counting toward your grade.  Students who anticipate the necessity of being absent from class on more then two quizzes days need to see the Dean.  

b. The grade you receive will be based on the percentage of possible course points that you obtain. I reserve the right to set grade lines at the end of the course. For your information, the following are my historical grade lines.

Grade line cutoffs for the lowest grades:

Bottom "A" was 90% (i.e., 1440 points)

Bottom "B" was 80% (i.e., 1280 points)

Bottom "C" was 67% (i.e., 1072 points)

 

Impact on BCU Mission and Institutional Student Learning Outcomes (ISLOs):

Through the attainment of the course student learning objectives (CSLOs), students will acquire knowledge, skills and competencies outlined in the Institutional Student Learning Outcomes, School Student Learning Outcomes (SSLOs) and Program Student Learning Outcomes (PSLOs) .  The Course Student Learning Objectives fully support the University Mission and Core Values as stated in the Strategic Plan; as well as, the School Goals.

 

Program Student Learning Outcomes (PSLOs) addressed in Course Learning Objectives.

PSLO 1:  An ability to apply knowledge of computing and mathematics appropriate to the discipline

PSLO 2: An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution

PSLO 3: An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs

PSLO 4: An ability to function effectively on teams to accomplish a common goal

PSLO 5: An understanding of professional, ethical, legal, security and social issues and responsibilities

PSLO 6: An ability to communicate effectively with a range of audiences

PSLO 7: An ability to analyze the local and global impact of computing on individuals, organizations, and society

PSLO 8: Recognition of the need for and an ability to engage in continuing professional development

PSLO 9: An ability to use current techniques, skills, and tools necessary for computing practice.

PSLO 10: An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.

PSLO 11: An ability to apply design and development principles in the construction of software systems of varying complexity.

 

 Course Student Learning Objectives and Measurements:

Students will be able to write and debug small to intermediate programs.  They will have a clear understanding of basic procedural programming constructs and how to use a variety of input sources such as files and keyboard alone with a variety of output destinations including graphical.  Students will learn the design principles such as information hiding and the elimination of redundancy.  Students will demonstrate knowledge of each of the following when taking exams or completing assignments at an acceptable level on assessment rubrics.

 

1.      Object-Oriented Programming:   (PSLO 8, 9, 10, 11)

a.      Defining Classes for objects

b.      Constructors

c.      Accessing Objects via Reference Variables

d.      Passing Objects to Methods

e.      Array of Objects

f.       Class Abstraction and Encapsulation

 

2.      Strings & Text I/O: (PSLO 3, 9, 11)

a.      The String Class

b.      The Character Class

c.      The StringBuilder/StringBuffer Class

d.      Command-line Arguments

e.      The File Class

 

3.      Inheritance and Polymorphism; (PSLO 1, 2, 3)

a.      Superclasses and Subclasses

b.      Overriding vs. Overloading 

c.      Polymorphism, Dynamic Binding, and Generic Programming

d.      Casting Objects and the instanceof Operator

 

4.      Abstract Classes and Interfaces:   (PSLO 1, 2, 3, 4, 8, 9, 10, 11)

a.      Abstract Classes

b.      Interfaces

 

5.      Object-Oriented Design:  (PSLO 1, 2, 3, 4, 8, 9, 10, 11)

a.      Software Development Process

b.      Discovering Class Relationships

 

6.      Getting started with GUI Programming:  (PSLO 1, 2, 3, 4, 8, 9, 10, 11)

a.      GUI Components

b.      The Java GUI API

c.      Frames

d.      Layout Managers

e.      Color Class

 

7.      Graphics:  (PSLO 1, 2, 3, 4, 8, 9, 10, 11)

a.      Graphical Coordinate Systems

b.      The Graphics Class

c.      The paintComponent Method

d.       

 

8.      Event-Driven Programming:  (PSLO 1, 2, 3, 4, 8, 9, 10, 11)

a.      Event and Event Source

b.      Listeners, Registrations, and Handling Events

c.      Mouse Events

d.      Key Events

 

Student Learning Outcomes Matrix (SLOM)

Alignment of Course Assessments with SSEM Goals,

Program Student Learning Outcomes,

Course Learning Objectives,

Institutional Student Learning Outcomes and University Strategic Goals

 

Student Learning Outcomes Matrix

Course Assessments

CS231

Course Learning Objectives

Program Student Learning Outcomes

School Student Learning Outcomes

Institutional Student Learning Outcomes

SSEM Goals

University Strategic Goals

Object-Oriented Programming

 

 

 

 

 

 

Exams, Programming assignments

1

PSLO 8, 9, 10, 11

3,4

2,4

1,2,3,4,5

1,3

Strings & Text I/O

 

 

 

 

 

 

Exams, Programming assignments

2

PSLO 3, 9, 11

3

2

1,2,3,4,5

1,3

Inheritance and Polymorphism

 

 

 

 

 

 

Exams, Programming assignments

3

PSLO 1, 2, 3

1, 3

1, 2

1,2,3,4,5

1,3

Abstract Classes and Interfaces

 

 

 

 

 

 

Exams, Programming assignments

4

PSLO 1, 2, 3, 4, 8, 9, 10, 11

1,2,3,4

1,2,3,4

1,2,3,4,5

1,3

Object-Oriented Design

 

 

 

 

 

 

Exams, Programming assignments

5

PSLO 1, 2, 3, 4, 8, 9, 10, 11

1,2,3,4

1,2,3,4

1,2,3,4,5

1,3

Object-Oriented Design

 

 

 

 

 

 

Exams, Programming assignments

6

PSLO 1, 2, 3, 4, 8, 9, 10, 11

1,2,3,4