| 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..
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):
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.
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.
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.
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.
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.
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).
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
will receive a grade no greater than 80% of the assignment points. |