SPRINGFIELD TECHNICAL COMMUNITY COLLEGE
ENGINEERING AND SCIENCE TRANSFER DEPARTMENT

Course No/Name CSCI-111 
INTRODUCTION TO THE JAVA PROGRAMMING LANGUAGE
Lab Number CSCI-111L
Credits 4
Date Modified 01/14/08 for the Spring 2008 Semester
Instructor Prof. Antonio C. Silvestri
Office 17/415
Phone 755-4689
E-Mail silvestri@stcc.edu
(Please use email whenever possible.)
Web-Page http://faculty.stcc.edu/silvestri/
Prerequisite
  • Good Background in Manipulating Microsoft Windows.
  • (MATH132) Technical Mathematics 1

Course Description

This course is designed specifically for students with no programming experience. This course provides first-time programmers an excellent choice for learning programming using the Java programming language. The course helps students understand the significance of the Java programming language. With this knowledge, students will develop programming skills in the areas of object orientated and Java technology. Through the use of the SUN Java JDK, students explore the principles of object-oriented programming, including classes and inheritance. Topics include compiling Java applications, variables and data types, operators, control flow, classes and objects. While the course focuses on the development of Java applications, students will be exposed to rudimentary GUI design and event handling to develop simple Java Windows-based applications. By the end of the class, students will be able to create simple programs using Java 1.6 technology and read and edit Java technology source code. Co-Requisite: MATH-132 or MATH-145

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.


Text and Materials

Required Text:

Starting Out with Java: From Control Structures through Objects, 3/E
Tony Gaddis

ISBN-10: 0321479270
ISBN-13: 9780321479273


 


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://faculty.stcc.edu/silvestri/

All course announcements and correspondence will be done through this site. It is your responsibility to visit this site at least once every two days to view the latest course announcements, homework, and news. To simplify the process, press Ctrl-D to bookmark the site in your browser.

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 and 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 3 assignments will be grounds for dismissal from class. No homework assignments will be dropped. 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 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.

LAB ATTENDANCE: Laboratory attendance is optional. You may complete your homework at home. Please bear in mind that all homework is expected to be completed and submitted at the posted times regardless of whether you decide to take advantage of the computer laboratory or not. Exams may be scheduled during lab periods to give you extra time to complete them.

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.

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

Activity

Weight

Additional Info

Homework

25%

Each assignment has equal weight. Ten or more assignments will be assigned. Missing 3 assignments will be grounds for dismissal from class. One homework assignment will be dropped.

Mid Term Exams

50%

6 to 8 Examlets (a test more involved than a quiz, but less intense than an exam) of Equal Weight. One examlet will be dropped.

Final Exam

25%

Any student with an A average at the end of the semester will not need to take the final!!!

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, java, and appletviewer.  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 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. Bring your textbook to class every day!!! Lectures will be based on examples given in the text.

Course Syllabus

CHAPTER 1 Introduction to Computers and Java
1.1 Introduction
1.2 Why Program?
1.3 Computer Systems: Hardware and Software
1.4 Programming Languages
1.5 What Is a Program Made Of?
1.6 The Programming Process
1.7 Object-Oriented Programming

CHAPTER 2 Java Fundamentals 
2.1 The Parts of a Java Program
2.2 The print and println Methods, and the Java API
2.3 Variables and Literals
2.4 Primitive Data Types
2.5 Arithmetic Operators
2.6 Combined Assignment Operators
2.7 Conversion Between Primitive Data Types
2.8 Creating Named Constants with final
2.9 The String Class
2.10 Scope
2.11 Comments
2.12 Programming Style
2.13 Reading Keyboard Input
2.14 Dialog Boxes

CHAPTER 3 Decision Structures 
3.1 The if Statement
3.2 The if-else Statement
3.3 The if-else-if Statement
3.4 Nested if Statements
3.5 Logical Operators
3.6 Comparing String Objects
3.7 More about Variable Declaration and Scope
3.8 The Conditional Operator (Optional)
3.9 The switch Statement
3.10 Creating Objects with the DecimalFormat Class
3.11 The printf Method (Optional)

CHAPTER 4 Loops and Files 
4.1 The Increment and Decrement Operators
4.2 The while Loop
4.3 Using the while Loop for Input Validation
4.4 The do-while Loop
4.5 The for Loop
4.6 Running Totals and Sentinel Values
4.7 Nested Loops
4.8 The break and continue Statements (Optional)
4.9 Deciding Which Loop to Use
4.10 Introduction to File Input and Output
4.11 The Random Class

CHAPTER 5 Methods 
5.1 Introduction to Methods
5.2 Passing Arguments to a Method
5.3 More About Local Variables
5.4 Returning a Value from a Method
5.5 Problem Solving with Methods

CHAPTER 6 A First Look at Classes 
6.1 Classes and Objects
6.2 Instance Fields and Methods
6.3 Constructors
6.4 Overloading Methods and Constructors
6.5 Scope of Instance Fields
6.6 Packages and import Statements
6.7 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities

CHAPTER 8 Arrays and the ArrayList Class  
8.1 Introduction to Arrays
8.2 Processing Array Contents
8.3 Passing Arrays as Arguments to Methods
8.4 Some Useful Array Algorithms and Operations
8.5 Returning Arrays from Methods
8.6 String Arrays
8.7 Arrays of Objects
8.8 The Sequential Search Algorithm
8.9 Two-Dimensional Arrays
8.10 Arrays with Three or More Dimensions
8.11 The Selection Sort and the Binary Search Algorithms
8.12 Command-Line Arguments and Variable-Length Argument Lists
8.13 The ArrayList Class

CHAPTER 9 A Second Look at Classes and Objects  
9.1 Static Class Members
9.2 Passing Objects as Arguments to Methods
9.3 Returning Objects from Methods
9.4 The toString Method
9.5 Writing an equals Method
9.6 Methods that Copy Objects
9.7 Aggregation
9.8 The this Reference Variable
9.9 Enumerated Types
9.10 Garbage Collection
9.11 Focus on Object-Oriented Design: Class Collaborations

CHAPTER 11 Inheritance  
11.1 What Is Inheritance?
11.2 Calling the Superclass Constructor
11.3 Overriding Superclass Methods
11.4 Protected Members
11.5 Chains of Inheritance
11.6 The Object Class
11.7 Polymorphism
11.8 Abstract Classes and Abstract Methods
11.9 Interfaces