CSCI 470/680E Syllabus

CSCI 470/680 00En Syllabus - Fall 2009

Instructors Teaching Assistant
CSCI 470/680 00E1 : Jim Henry
Office: PM 467
Office Hours:  MW 2:00 - 3:30 pm; by appointment; and as available
Phone: 753-6496
Email: henry@cs.niu.edu
CSCI 470/680 00E2 : Jie Zhou
Office: PM 360
Office Hours:  M 10 - 12am ; Tu 9:30 - 11:30 am; W 1:00 - 3:00 pm
Phone: 753-3815
Email: jzhou@niu.edu
Glen Reschke
Office: PM 254
Office Hours: MW 12:00 - 2:00 pm; TuTh 11:00 - 12:00 am
Phone: 753-3935
email: greschke@niu.edu

Required Text

Recommended Texts

Required Materials:

You can download the most recent version of Java for your own computer (Java JDK 6, latest update) if you want to; you should download the online help files for  Java (Java SE 6 Documentation)  from Sun's Java Web site and install them on the computer(s) that you work on.  Officially, you will use versions of Java on one of the Department's Unix machines and Sun's JDK Version 6 on Windows XP in the labs.  If you have access to other development environments (e.g. Windows at home or office) you may also use these with the Sun JDK. In this course, since you are learning the language, we do not want you to use Java IDE's such as Microsoft's J++, Symantec's Cafe, or Inprise's JBuilder etc..


Course Overview

This course will cover the basics of the Java programming language, object oriented, event-driven, multi-threaded programming, and applet development with graphics and a graphical user interface. No previous knowledge of these topics is assumed. A good working knowledge of C (but not C++) is assumed. The basics of Java and object-oriented programming will be covered early in the course.
Topics covered in the course will include most or all of the following (and maybe some others):


Programming Assignments

There will be about 5 programming assignments, some of which may consist of several distinct versions of a program.

When an assignment is ready for submission (prior to the due date), you may request a program check during office hours.  If a program is not correct and complete, your instructor will tell you and note what is lacking. The next submission must then correct those deficiencies. If your instructor makes notes on your source code printouts, you should bring those with you for subsequent checks.

You will submit some assignments online through the Blackboard system ((http://webcourses.niu.edu/). You should turn in printed versions of all source code files (.java) for the assignment (possibly more than one version).  In addition, in the case of Web-based programs such as a Java applet, be sure to include the URL of your program in the comment block of  the source code of your main java class.

Other details of submission process for each assignment will be given in class.

Only assignments as a whole will have assigned due dates (not the several distinct versions). Assignments late for less than 24 hours will be penalized 20%. Late assignments thereafter will be penalized 40% or more. 

You may work on these assignments in groups of 2 or 3 people. You may choose your own groups. If you want to work in a group, you must inform your instructor by the end of the second week of class. After the groups are formed, no changes may be made without your instructor's permission. Occasionally there may be some in-class group-work time, but you will need to meet with your group outside of class as well. You may work together in whatever way seems best: for example, as a group at a terminal or as individuals writing specified subroutines or classes. Each team member, however, is responsible for understanding (and explaining) the whole program.


Tests

There will be three tests, each worth 100 points. A large part of each test will be designed to determine if you understand the programming and concepts covered to date. This means that even though you work in groups and you might actually write only parts of the code, you are responsible for understanding and being able to explain ALL the code and ALL the concepts behind the program(s). Anyone who depends to a large extent on the help of others probably will not do well on these tests. There will not be a comprehensive Final; the third test will be given at the scheduled Final Exam time.


Graduate Student Reports

Each graduate student will be required to present a 20-minute report to the class during the last two weeks of the semester. This report will summarize and explain some aspect of Java or the Java class libraries not covered in class (for example, RMI, Beans, etc.). Each graduate student should select a topic from a list to be provided later.  If you want to do a topic not on the list, you must obtain permission from your instructor.
Note: if there are too many graduate students to fit the allotted time for this, some students will be asked to prepare and submit written reports.  Those students will be chosen randomly by your instructor.


Final Grade

Undergraduates:
Your Final Grade will be based on a 40-60 weighting of program average and test average. You must pass both components to pass the course. Each member of a group will have the same program average unless your instructor determines otherwise - any such change will be communicated to the group before it is implemented. The scale used will be 90 - 80 - 70 etc.

Graduates
Your final grade will be determined as explained above, with your report serving as an additional plus-or-minus 5-point factor. That is, if you present a particularly good report, your final course average could increase by as much as 5 points. If you do a poor job, your final course average could decrease by as much as 5 points. If you do an adequate job, your score will not be affected.


Privacy Concerns

Students who have chosen to restrict the university from disclosing their student information may request that the instructor devise a way for them to submit those assignments that involve publicly accessible Web pages in some alternate manner (such as running the program on a local computer). If you have such a concern, please contact your instructor.

Disability Services

NIU abides by Section 504 of the Rehabilitation Act of 1973, which stipulates that no student shall be denied the benefits of an education “solely by reason of handicap.” Disabilities covered by law include, but are not limited to, learning disabilities and hearing, sight or mobility impairments. Please contact your instructor if you have a disability that may have some impact on your work in this class and for which you may require accommodations. If you have not already done so, you will need to register with the Center for Access-Ability Resources (CAAR)  located on the 4th floor of the University Health Services building (753-1303).


Coding Practices, Programming Style, and Documentation

Matters of coding practices, program style, and documentation will be considered in evaluating a program. In connection with this, you must supply a printed copy of each program when it is submitted for a program check (as well as for grading).

Your coding practices will evolve with experience.  Do the best you can at any time.  Don't do things that you know are badly inefficient, difficult to modify, or hard to follow.
You are encouraged (but not required) to follow the style presented in class. If you prefer your own style it must be clear, consistent, and readable.
Please do not make your instructor tell you things you already know about clarity, neatness, and accuracy with regard to documentation.
Do not lie in your documentation. Wrong documentation is worse than none!
See the document on Java Coding and Documentation Standards.  Read it from time to time during the semester. 

Provide reasonable documentation including AT LEAST

We are very fussy about documentation and coding. Your programs must read like poems. After you get something to work, ask yourself if this is the best/right way to do it. If there is a better way, do it that way.

Therefore:

A perfectly executing program with

  • little or poor documentation or

  • poor and inconsistent formatting or

  • bad coding practices

will receive a grade no greater than 80% of the assignment points.