Stony Brook University
Computer Science Department


CSE 160

Computer Science: Honors
Spring 2008
Class hours: Tuesdays and Thursdays, 9:50-11:10, Computer Science 2129.
Lab hours: Wednesdays, 9:35-12:35, Computer Science 2129.


Prof. George Hart
Office: 1421 Computer Science
email: george@cs.sunysb.edu
Phone: (631) 632-8959
Office hours: tuesday and thursday 1:00-2:15, and by appt.


Web page:
http://www.cs.sunysb.edu/~cse160


Announcements:
I will not have office hours tuesdayMay 13.  Instead, I will have office hours monday May 12, 4:00-5:00, and wednesday May 14, 2:00-3:00.
Final Exam: Thursday, May 15, 8:00-10:30. Note the earlier-than-class starting time. Covers everything, including a bit of C and SML.

Please fill out this online survey for CSE160.
Here is last year's final, but it is too hard. (Crude answer available here.  Not at all polished and doesn't exactly match the question.)
Summer project to prepare for CSE260: Download Eclipse Europa and begin to learn its interface.
See the SML notes below. Here are some notes on C compared to Java. (Updated notes, April 3)
Midterm solution .jar file


Assignments:
HW #1, due thursday Feb 14.
HW #2, due thursday Feb 21.
HW #3, due thursday Feb 28.  (My answer to the BigNum question)
HW #4, due thursday March 6.
HW #5, due March 13 and 27.
HW #6, due April 10. (Answers: A, B, C)
HW #7, due April 17.  Extended to tuesday, Apr 22.
HW #8, due April 24.
HW #9, due May 1.
HW #10, due May 8 (Crude answer available here. Not a model answer, as I wrote it as I was designing the HW problem, but it mostly works (for 30 seconds).)


TA:
Giordano Fusco (email)
TA office hours: Fridays, 3:30-4:30, room CS2110.


SML Info:
Running SML
SML Examples #1, similar to April 1 class
SML Examples #2, similar to April 3 class


Software Versions:
The third edition of the text includes important features introduced in Java 1.5, including generic types, enums, for-each loops, and autoboxing. For the third edition of the Objects First text, you need Java 1.5 or 1.6, and BlueJ 2.1.2.  Do not use the older second edition of the text.

Projects for 3rd edition (zipped)  CH1 CH2 CH3 CH4 CH5 CH6 CH7 CH8 CH9 CH10 CH11 CH12


Useful links:
BlueJ Reference Manual (.pdf format)
BlueJ Tutorial (.pdf format)
www.bluej.org The official BlueJ web site
www.translab.cs.sunysb.edu Translab information
www.sinc.sunysb.edu Campus SINC sites
java.sun.com The official Java web site
http://java.sun.com/javase/6/docs/api/ The official Java documentation
The Java Tutorial Online tutorial about everything Java
Code Conventions for the Java Programming Language  A source code style guide.
Class notes on testing (.pdf format) and BlueJ testing tutorial.
Don't forget the CS HelpDesk is available.
If the university is closed for snow, it is announced on this page.
Final Exam: Thursday, May 15, 8:00-10:30. Note the earlier-than-class starting time.

Description

The CSE 160, 260 sequence covers topics coextensive with those covered in the CSE 114, 214, and 219, but at an accelerated pace, and with somewhat different ordering and emphasis. CSE 160 and 260 use the Java programming language and include a required laboratory as an integral part of the course.

The emphasis in CSE 160 is on a higher-level, object-oriented approach to the construction of software. Close attention is paid to software engineering issues such as programming style, modularity, and code reusability. The way which software tools can be used to aid the program development process is also emphasized. The course initially considers the construction of small programs, continues by treating the design and implementation of program modules, and culminates in an introduction to object-oriented design techniques suitable for larger programs.

Specific topics covered in CSE 160 include: objects and classes, programming style, object interaction, mutability and immutability, collections of objects, iterators, debugging and testing, information hiding and modularity, cohesion and coupling, code refactoring, programming by contract, inheritance and polymorphism, exceptions and handlers, and object-oriented design.

Grading is based on homework (25%), midterm examination (30%), final examination (35%) and participation (10%),.

Objectives

Prerequisite

You must be in the CSE Honors program and have taken CSE 110 to take this course, or else you must seek special permission from the instructor.

Textbooks

Course Format

The course will include the following components, all of which are required:

Academic Honesty

You may discuss the homework in this course with anyone you like, however each student's submission, including written material and coding, must be their own work, and only their own work. Any evidence that written homework submissions or source code have been copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters!) will be regarded as evidence of academic dishonesty. The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an `F' grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.

Be advised that any evidence of academic dishonesty will be treated with utmost seriousness. Those involved will be prosecuted to the fullest extent permitted by the University and College laws.

Students with Disabilities

If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disability Support Services office (DSS), ECC Building (behind SAC), 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.