CSC-112 – Intermediate Topics in Java Programming Syllabus

Course No/Name CSC-112 – INTERMEDIATE TOPICS IN JAVA PROGRAMMING
Lab Number CSC-112L (MUST ENROLL IN LAB)
Credits 3 + 1 Credit Lab
Date Modified 01/19/17 for the Spring 2018 Semester
Instructor Prof. Antonio C. Silvestri
Office 17/415
Phone 413-755-4621
E-Mail silvestri@stcc.edu  (Please use email whenever possible.)
Web-Page http://cs.stcc.edu/category/csc-112/
Prerequisites
  • CSC-111 with a grade of C- or better.
  • Potential students must also feel comfortable with the Windows and Linux environments. Questions concerning installation or OS issues will not be entertained as this is an upper level programming class.
  • No exceptions will be made to these prerequisite

Course Description

A second course in Java programming that exposes students to the concepts involved in using a higher-level, object-oriented programming techniques. This course, a continuation of CSC-111, covers more advanced Java topics and gives students experience in writing graphical (GUI) applications. Topics also include exception handling, file input/output (I/O), multithreading, networking, and simple JDBC database access.

This course is designed for those students interested in transferring to a four year college or university. Consequently, the student must be prepared to invest much time and effort for successful course completion.

Required Textbook

Introduction to Java Programming, Comprehensive Version, 11/E
Y. Daniel Liang
ISBN-10: 0134670949
ISBN-13:  9780134670942
Publisher:  Pearson
Copyright:  2018

 

Course Policy

WEBSITE: In an effort to implement distance learning, course files will be placed on the Internet. Homework and lab assignments, solutions, and class announcements can be accessed using the web. Access the STCC Computer Science Web page using the URL:

http://cs.stcc.edu/category/csc-112/

All course announcements and correspondence will be done through this site.  Also check your school issued student.stcc.edu email accounts for the latest course announcements, homework, and news.  It is your responsibility to visit this course site and check your email at least once every other  day.  It is unacceptable to say that you are not aware of something happening in the course.

HOMEWORK: Homework will be assigned after a major topic has been developed. The homework will consist of a programming assignment that reinforces a topic discussed in lectures. Each assignment has equal weight. Ten or more assignments will be assigned.

Homework is to be a reflection of things learned in class and lectures.  While you can certainly ask the instructor some questions on homework assignments, excessive questioning of the instructor on homework does not reflect well on your grasp of the material.  There have been times in the past where students questioned the instructor to the point where the program they submitted was really something the instructor wrote. The instructor in reality should have been awarded the A on the assignment.  So please understand that in the interest of fairness to others in the class, excessive questioning will result in a reduction of the grade earned on the assignment.

At the start of each source listing, a global comment identification section containing the following information must be included:

  1. Your name
  2. Date
  3. Course Name and Number
  4. Problem Number
  5. Short Description of the Problem
  6. The email address where you can be reached.

Missing 2 assignments will be grounds for dismissal from class. Late homework cannot be accepted as solutions to the homework are routinely given as part of lectures.

ATTENDANCE:  Attendance is required; a student is expected to attend all scheduled classes.  Missing 6 MWF classes, or 4 TTh classes, or the equivalent of 2 weeks of lecture will be grounds for class dismissal.  Students who arrive late to a class and miss the attendance call will be considered absent.  Any benefit of the doubt in the final grade will be given to students who come to class regularly.  You will find each class contains much material.  If you miss a class,  do not expect  the instructor to review missed material. It is your responsibility to get the lecture notes from a fellow student. Check the website for any materials discussed in class.

CELL PHONE POLICY: Turn it off, please! Cell phone use of any kind (i.e., as phone, calculator, camera, etc.) is prohibited in class or lab unless an emergency situation exists which requires the student to be available by phone. In those rare instances, the phone should be placed on vibrate; the student will momentarily excuse himself/herself from class and handle phone calls outside of the room.

CHEATING POLICY: While student interaction on the solution of homework problems and labs is encouraged, blatant cheating and/or copying on homework and lab assignments will not be tolerated and will result in a 0 grade for the assignment in question for all participants. Dismissal from the class can also be an option depending on the severity of the incident.

If the instructor senses a problem with an assignment, perhaps the assignment was not the students’ work, the instructor reserves the right to question the student to have them prove they did the work.

GRADING POLICY: The three components that make up your grade is described in the following table:

Activity Weight Additional Info
Programming
Homework
40% Each assignment has equal weight. 8 or more assignments will be assigned. Missing 2 assignments will be grounds for dismissal.
Mid Term Exams 40% 4 or 5 Exams of Equal Weight.
Final Exam 20%

Based on the percentages in the table above, an overall grade will be calculated. That grade will be entered for both the 3 credit lecture and 1 credit lab. 

Exams can be either a multiple choice type exam or in-lab problem solving exam where a programming problem is proposed and the student will write a program solution.  When an in-lab programming exam is scheduled, you required to use the Eclipse IDE and the command line java utilities, javac and java.  While there are a multitude of ways to build your programs, our lab is equipped with only these utilities.

Suggestions on How to do Well in this Class

  1. Keep a notebook either paper or electronic and take the best possible notes at each lecture. Some lecture material may not be fully discussed in the text. Also, problem solutions are performed routinely in the lectures.
  2. Start your assignments immediately after they have been assigned!!! It is unfortunate that students tend to put off working on their assignments until the day before it is due. Their work is usually substandard and their grades reflect it.
  3. In order to receive credit for an assignment, you must submit something that shows you were near a solution. The worse thing you can do is submit nothing. Nothing is the equivalent of a zero, and we all know what a zero can do to an average.
  4. Give a good effort to solving homework problems. Take the time to thoroughly understand the homework since it is through these assignments that you will understand the subject matter.
  5. Attend class and arrive on time.
  6. Arrive prepared with textbooks and assignments completed when they are due.
  7. Participate in group activities and class discussions.
  8. Be orderly and respectful toward your instructors and your fellow students.
  9. Observe the rules of academic integrity

Student Learning Outcomes / Course Goals

  1. Use a Java IDE.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
    • Reinforce good programming habits introduced in earlier course(s).
    • Use professionally accepted methods and materials in completion of projects.
    • Require students to practice elements of the work ethic such as punctuality, professionalism, dependability, cooperation, and contribution.
  2. Create and use Java packages
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
    • Reinforce good programming habits introduced in earlier course(s).
  3. Create and use Java classes.
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
    • Reinforce good programming habits introduced in earlier course(s).
  4. Create and use interfaces and abstract, final and anonymous classes
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
  5. Use JavaFX
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
  6. Throw and catch exceptions
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
  7. Use Java collection, file I/O and database connectivity packages
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
  8. Use JDBC to connect to and query a database
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
  9. Create and use Java applets and application
    • Familiarize students with the higher-level, object-oriented functionality of the Java programming language.
    • Require students to create fairly complex event-driven, GUI Java applications and applets.
    • Reinforce good programming habits introduced in earlier course(s).
    • Require students to practice elements of the work ethic such as punctuality, professionalism, dependability, cooperation, and contribution.

Course Content

(See your book’s Table of Contents for specific chapter details.)

  • Chapter 9 Objects and Classes
  • Chapter 10 Object-Oriented Thinking
  • Chapter 11 Inheritance and Polymorphism
  • Chapter 12 Exception Handling and Text I/O
  • Chapter 13 Abstract Classes and Interfaces
  • Chapter 14 JavaFX Basics
  • Chapter 15 Event-Driven Programming and Animations
  • Chapter 16 JavaFX UI Controls and Multimedia
  • Chapter 19 Binary I/O
  • Chapter 30 Multithreading
  • Chapter 31 Networking
  • Chapter 32 Java Database Programming