CS 131 Computer Programming ISyllabus
Instructor: Maynard Marquis
Course Description: This course provides an overview of computer organization and hardware, and an introduction to the science and theory of object-oriented programming including top-down structured program design, problem specification and abstraction, algorithms, data structures, documentation, debugging, testing, and maintenance. The course presents programming applications including input/output, selection, repetition, arrays, functions, and procedures. The course, which also addresses the ethical and social issues in computing, emphasizes communication skills in documentation and design of user interface. Three credits.
Textbook: The textbook is the primary source of material for this course. The Lessons and Examples are also very important. All the homework assignments and examinations come directly from those three sources. The textbook specified below has been ordered for this class in the Fairfield bookstore.
Textbook: Java 5 Illuminated, J. Anderson and H. Franceschi, Jones and Bartlett Publishers, 2005. ISBN 0-7637-1667-7.
Additional References:
- Java How to Program, Sixth Edition, Deitel & Deitel, Prentice Hall.
- Java Programming: From Program Analysis to Program Design, D.S. Malik and P.S. Nair, Thomson Course Technology, 2003.
- The Complete Reference Java2, Herbert Schildt, McGraw Hill/Osborne.
- Java for Programmers, Douglas Lyon,Pearson Prentice Hall, 2004.
- Java, Java, Java, R.Morelli, Prentice Hall, 2000.
- Sun's Application Programming Interface, available on the Sun Java Website.
Computer Usage: Students MUST have access to a computer with a Java compiler and an ISP provider. The version of Java to be used is jdk1.5.0_04 or later, which can be downloaded free of charge from the http://java.sun.com web site. Eclipse 3.1 is the mandatory Integrated Development Environment (IDE) to be used for this course. It can be downloaded free of charge from the http://www.eclipse.org web site.
The material for this course is available on two forums:
- In-class lectures
- The WebCT site
The in-class lectures are available to all students, whether registered for in-class or online classes. All students also have a WebCT account.
All material: lectures, examples, and homework assignment, will be placed on the WebCT site. The lectures can be viewed on the site or downloaded from it. The examples and homework assignments can be downloaded from the site. Students are responsible for obtaining homework assignments each week from WebCT.
The WebCT e-mail feature is the primary electronic communication medium for this course. Homework submittals, questions, or other online communication will be done using WebCT e-mail. Similarly, students are responsible for checking their WebCT e-mail account daily for possible message from the instructor.
A file compressor/de-compressor (e.g., WinZip) is required. It can also be downloaded from the web. The Windows XP Operating System (OS) has its own compressor/de-compressor, so WinZip is unnecessary if that is your OS.
Course Notes: On WebCT
Phone: (203) 254-4147
Fax: (203) 254-4013
E- mail: WebCTaccount and mmarquis@stagweb.fairfield.edu Office Hours: In classroom 4:30 p.m. before class and e-mail for assistance at any time.
Course Objectives:
- Write clear, elementary Java programs
- Use the Java interpreter to run Java applications
- Understand algorithmic thinking and apply it to programming
- Understand problem-solving techniques
- Read, write, and debug Java programs
- Write programs using object-based programming techniques including classes and objects with inheritance and polymorphism
- Code with arithmetic, increment, decrement, assignment, relational, equality and logical operators
- Code control structures (if, if/else, switch, while, do/while, for) and use primitive data types
- Write user-defined methods
- Understand and manipulate arrays
- Pass arrays and vectors to methods
- Process text using Strings
- Design screens and draw primitive shapes onto the screen
- Write data to files and read from files.
Student Activities: Learning a new computer language is very much a hands-on activity, which cannot be learned from lectures or textbook reading alone. It does require that, but the real learning results from the laboratory trials and the homework assignments. To achieve the course objectives, the student must have good participation, and conduct the computer programming tasks assigned for homework.
This course offers five sources of material to assist the learning process: 1) the textbook, 2) the lectures, 3) the set of notes provided as PowerPoint slides, 4) computer code examples for each class session, and 5) additional references. The amount of learning to be gained is directly related to the usage of this material. All the homework assignments and test material are taken from the items #1 through #4 above. The student should expect to take at least twice the lecture time for reading, studies, and assignments.
Homework: There is a homework assignment for each of the chapters noted above. Each is numbered after its chapter. For example, HW3 is the homework for Chapter 3. The assignments are in two parts: 1) multiple choice questions (e.g., HW3Q), and 2) a program coding assignment (e.g., HW3C). The homework assignments are made available on WebCT on the first lecture day for that chapter. The answers to the questions are due one week after the assignment is made available and the coding solution is due one week after that.
The homework solutions are to be placed in a single folder, which will contain the source code file(s) (.java extension) as well as any other file associated with the assignment, as specified in the assignment. Then zip the folder and submit it on WebCT before the class on the day they are due. Timely homework submittals are strongly encouraged to permit immediate corrective actions for poorly performed or misunderstood assignments. Re-submittal of poor homework solutions to obtain a better grade is encouraged, but can only be accomplished if the original submittals are on time. Late homework submittals may cause a reduction of 10 points in its mark.
E-mail: The WebCT e-mail feature is the primary mode of communication between the students and the Instructor outside the classroom. Students should check their e-mail site daily. They are also encouraged to use e-mail to ask questions. Questions and their answers are provided to all students via e-mail.
Tests and Exams: There are two exams, a midterm exam and a final exam.
Course Requirements: The schedule of activities and topics to be covered in each class are outlined below. Most of the chapters shown below will be presented in three class sessions while others will take four class periods. They will be presented in the order shown. The student should read the syllabus and familiarize himself with the IDE before proceeding with lessons.
Chapter 1 - Introduction to Programming and the Java Language
- Basic Computer Concepts
- Displaying System Configuration
- Data Representation - Numbers
- Programming Languages
- Introduction to Programming
Goals: To provide the student with a familiarity of computers and programming languages.
Outcome:The student will be able to write a first Java program.
Chapter 2 - Programming Building Blocks - Java Basics
- Java Application Structure
-
Data Types, Variables, and Constants
- Primitives
- Literals
- Escapes
- Expressions and Arithmetic Operators
Goals: To teach the student the basic tools in Java for programming expressions that perform mathematical calculations and manipulate text.
Outcome: The student will be able to write a Java program that uses text and mathematical relationships.
Chapter 3 - Object-Oriented Programming, Part 1: Using Classes
- Class Basics and Benefits
- Creating Objects Using Constructors
- Calling Methods
- Using Object References
- Static Variables and Methods
- Java Packages
- The String Class
- The Math Class
- The Wrapper Classes
- Basic Input/Output and Formatting
Goals: To give the student the information necessary to write more complex computer programs that creates and calls several methods and uses numerous variables and objects.
Outcome: The student will be able to write computer programs that can solve moderately complex problems.
Chapter 4 - Introduction to Applets and Graphics
- Applet Structure
- Executing an Applet
- Drawing Shapes with Graphics Methods
- Using Color
Goals: Teach the student applets and the Graphics class.
Outcome: The student will be able to use applets and design screen displays.
Chapter 5 -Flow of Control, Part 1: Selection
- Forming Conditions
- The if selection
- The if/else selection
- Nested if/else
- Comparing Floating-Point Numbers
- Comparing Objects
- The Conditional Operator (?:)
- The switch Statement
Goals: To provide the students with the ability to make selections in Java programs.
Outcome: The studentwill be able to write computer code that can proceed along different paths depending on criterion they provide and select.
Chapter 6 -Flow of Control, Part 2: Looping
- Event-Controlled and Count-Controlled Loops
- The while loop
- The do/while loop
- The for loop
- Nested loops
- The Scanner Class
Goals: To expose the students to repetition in computer programs.
Outcome: The student will be able to add repetitive instructions to Java programs.
Chapter 7 - Object-Oriented Programming, Part 2: User-Defined Classes
- The Class
- Instance Variables
- Methods
- Constructors
- Accessor and Mutator Methods
- Reserved Word this
- Methods equals and toString
- Static Class Members
- Graphical Objects
- Enumeration Types
- Packages
- Javadoc
Goals: To provide the student with additional object-oriented techniques.
Outcome:The student will be able to expand his ability to leverage object-oriented programming in computer programs.
Chapter 8 - Single-Dimensional Arrays
- Declaring and Instantiating Arrays
- Accessing Array Elements
- Aggregate Array Operations
- Using Arrays in Classes
- Searching and Sorting Arrays
- Using Arrays as Counters
Goals: To provide the student with the ability to store a large quantity of data for subsequent use in a program.
Outcome:The student will be able to manipulate a large amount of data in the program.
Grading Policy:
Homework : 50 points
Midterm Examination: 25 points
Final Examination : 25 points
Total PointsAvailable: 100
Non-submittal of any homework assignment results in zero points for that assignment. A passing grade cannot be achieved without the submittal of the midterm and final examination projects, regardless of the points shown above. Non-submittal produces a penalty beyond the points shown above, and precludes a passing grade. |