Instructor |
Howard J. Hamilton hamilton@cs.uregina.ca |
Lecture: |
TR 4:00-5:15 pm, January 7 – April 15; CL420 |
Office Hours: |
TR 1:30-3:00 pm, CW 308.21 |
Midterm Exam: |
Thursday, March 4, 4:00-4:50 pm; 50 minutes; CL420 |
Final Exam: |
April 20, 2010, 2:00-5:00 pm; Place: CL420 |
Course web page: |
· H. M. Deitel and P. J. Deitel, Java: How to Program, Eighth Edition. Prentice-Hall, 2010. Abbreviated as [Deitel & Deitel]. Or any other edition of this book. I find this book to be the most comprehensive one-volume book.
· Y. D. Liang, Introduction to Java Programming, Seventh Edition. Prentice-Hall, 2009. This book is currently used in CS 215, so it may be a more cost efficient choice.
· Official documentation on Java: http://java.sun.com/javase/6/docs/
CS 110
You are assumed to be familiar with the materials in Chapters 1-10 and Section 12.1 of the textbook by Dale & Weems from CS 110.
Nell Dale and Chip Weems. Programming and Problem Solving with C++ (4th edition). Jones and Bartlett, 2005. Referred to as: [Dale&Weems].
It is your responsibility to review the materials in these chapters. Most lessons from learning C++ carry over to Java, which is a similar language.
Assignments: |
35% |
Midterm Exam: |
15% |
Final Exam: |
50% |
Total |
100% |
You will be developing your assigned programming
exercises on hercules.cs.uregina.ca
, which runs a Unix-based operating system. Tutorial
materials about development tools on Unix will be posted on the CS 115
Tutorials page:
Your must demonstrate that your code compiles and runs on hercules.cs.uregina.ca. Failure to do so will result in a significant mark deduction. The goal is for you to learn to use the Unix operating system as well as the Java language. World-wide, it is common to host Java programs on Unix or Linux servers. We will also provide the netbeans integrated development environment (IDE) in the labs.
· If there is any student in this course who, because of a disability, may have a need for accommodations, please contact the Coordinator of Special Needs Services at 585-463l. It is your responsibility to obtain a suitable letter and have it presented to me.
· All exams are “closed book,” with no additional material permitted. You will be allowed the use of nonprogrammable calculators, although they are not needed. Coats, books, pencil cases, and other accessories should be left at the front of the room during exam periods. If you are in doubt about the meaning of an exam question, state your assumptions and answer to the best of your ability. No additional info will be provided during the examination.
· Java programs will be submitted electronically as a combination of .jar files and .html files. Consult the document Assignment Submission Guidelines (submit.html on the same web page) for details about what to include in your submission.
· Programs should be extensively tested on a wide variety of input before submission.
· All documentation for assignments must be submitted on paper in typed form. The first page of your submission must CLEARLY indicate your name, student number and assignment number, and nothing else. Programs must be well documented.
·
Your code must compile on hercules.cs.uregina.ca
. Failure for it to do so will result in a significant mark
deduction.
· No late assignments will be accepted without medical certification. Partial marks will be awarded for incomplete assignments. A working program missing some features will likely be awarded a higher mark than a non-working program.
· Keep your returned assignments and midterm. Sometimes grades get recorded incorrectly. You will have to show your assignments and midterm with the correct marks to get such problems resolved. Keep a copy of your assignment files on hercules and DO NOT access them after their due date (copy them if you want to examine them). To copy a whole directory, use:
cp –r Assignment1 Assignment2
where Assignment1 is the name of the old directory and Assignment2 is the name of the new directory.
· If you have any complaints about marking, attach a written explanation on a fresh sheet of 8.5"x11" paper to the front of your assignment and submit it your instructor (Hamilton).
· If you are sending email to your instructor or lab instructor, please include “CS 203:” at the beginning of the subject. It is recommended that you always send email messages from your uregina.ca email account. If you send it from some other mail address, make sure to include your name in the message. Email messages sent from uregina.ca email accounts always get through, whereas many other types of email get blocked.
· No web surfing, reading newspapers, reading novels, working on unrelated homework, playing computer games, etc. is permitted during lectures.
· CHEATING WILL NOT BE TOLERATED. The assignments are designed for individual work. Help is available via the supplemental instruction sections. Co-operation on programming assignments with other students in the class must be limited to verbal discussion of concepts rather than the sharing of program code or written documentation. For example, if you are given an assignment on two-dimensional arrays, you may legitimately discuss how two-dimensional arrays work, the syntax for using two-dimensional arrays in Java, and generally where a two-dimensional array would be useful in the context of the assignment, but you MUST NOT share any code from your solution to an assignment. Copying of assignments is plagiarism. Allowing your assignments to be copied will be treated the same as copying. You are NOT allowed to work in groups on the assignments. THE CONSEQUENCE OF PLAGIARISM OR ANY OTHER FORM OF CHEATING MAY RANGE FROM A ZERO GRADE, TO FAILURE IN THE CLASS, TO EXPULSION FROM THE UNIVERSITY. Please note that the department head of Computer Science and the Dean of your faculty will be informed of any such incident, as per university regulations. Refer to the section on Academic Misconduct and Penalties in the General University Calendar. For more information, consult the following sections of the university calendar:
· Section 5.14.2.1. Academic Integrity
· Section 5.14.2.2. Violations - Acts of Academic Misconduct
· Section 5.14.4.3. Penalties: Academic Misconduct
The following is a tentative lecture plan. Lecture material will be posted on the course web page, but actual lectures will vary from the posted materials.
Week |
Dates |
Topic |
Remarks |
1 |
Jan. 5 |
Introduction to Java
|
|
2 |
Jan. 12 |
Applets and Graphics
|
Assignment 1 due (3%) |
3 |
Jan. 19 |
Classes
|
|
4 |
Jan. 26 |
Arrays
|
Assignment 2 due (4%) |
5 |
Feb. 2 |
Input
|
|
6 |
Feb. 9 |
Threads
|
Assignment 3 due (7%) Midterm break, Feb. 15-19 |
7 |
Feb. 23 |
Program Organization Principles
|
|
8 |
Mar. 2 |
Object Oriented Programming
|
Assignment 4 due (7%) |
9 |
Mar. 9 |
Object Oriented Programming
|
|
10 |
Mar. 16 |
File Input/Output
|
Assignment 5 due (7%) |
11 |
Mar. 23 |
Images
|
|
12 |
Mar. 30 |
Image Filters and Audio
|
Assignment 6 due (7%) |
13 |
Apr. 6 |
Review
|
Assignment 7 due (optional, replaces any of asmts 3 to 6 or 1 and 2) |