USB logo
CS Banner
CSE 219
Computer Science III
Course Information - Fall 2009

Quick Links


COURSE DESCRIPTION

Development of the basic concepts and techniques from Computer Science I and II into practical programming skills that include a systematic approach to program design, coding, testing, and debugging. Application of these skills to the construction of robust programs of 1000-2000 lines of source code. Use of programming environments and tools to aid in the software development process.


COURSE TOPICS

  • Programming style and its impact on readability, reliability, maintainability, and portability.
  • Decomposing problems into modular designs with simple, narrow interfaces.
  • Determining the proper objects in an object-oriented design.
  • Selecting appropriate algorithms and data structures.
  • Reusing code, including external libraries designed and built by others.
  • Learning systematic testing and debugging techniques.
  • Maintaining a repository of code during incremental development of a software project.
  • Learning how to use threads to synchronize several tasks.
  • Improving program performance.
  • Making effective use of a programming environment, including:
    • Syntax-directed editor
    • Build tools
    • Debugging tools
    • Testing tools
    • Source code management tools
    • Profiling tools


PREREQUISITES

You must have taken CSE 214 and received a grade of "C" or better in order to take this course. In more detail, you are expected to have the following knowledge and skills at the beginning of the course:

  • Ability to write programs of a few hundred lines of code in the Java programming language.
  • Understanding of fundamental data structures, including lists, binary trees, hash tables, and graphs, and the ability to employ these data structures in the form provided by the standard Java API.
  • Ability to construct simple command-based user interfaces, and to use files for the input and output of data.
  • Mastery of basic mathematical and geometric reasoning using pre-calculus concepts.


COURSE GOALS

At the end of the course you should have the following knowledge and skills:

  • Ability to systematically design, code, debug, and test programs of about two thousand lines of code.
  • Sensitivity to the issues of programming style and modularity and their relationship to the construction and evolution of robust software.
  • Knowledge of basic ideas and techniques of object-oriented programming.
  • Familiarity with the capabilities and use of programming tools such as syntax-directed editors, debuggers, execution profilers, documentation generators, and revison-control systems.


INSTRUCTOR

Ahmad Esmaili
Computer Science 1438A
Office Hours: Mondays and Fridays 12:45-2:15pm or by appointment
Email: esmaili@cs.sunysb.edu



LECTURE

Mondays, Wednesdays and Fridays
9:35 am - 10:40 am
MELVILLE LBR W4550


TEXTBOOKS

Object Oriented Design and PatternsObject Oriented Design & Patterns, 2nd Edition
by Cay Horstmann
Published by Wiley, 2005,
ISBN 0471744875


AND

Java How to Program Java How to Program - 8th Edition
by Deitel and Deitel
Published by Prentice Hall, 2010.
ISBNs 0136053068 & 9780136053064




COURSE PLATFORMS

This course will use the Java programming language. The programming environment for this semester will be the Open Source eclipse IDE, which includes a syntax-directed editor, run-time environment, debugger, unit tester, and additional software development tools. Go to the eclipse download page to get your own free copy. All software will also be provided for you to use in the CA Transaction Processing Lab.

Although you might have access to other Java programming environments installed on your PC or elsewhere, you are strongly encouraged to use the officially sanctioned programming environment for this course: because the assignments you submit must run on one of them, because the examinations will test you on your knowledge of the tools, and because these are the only environments for which the course staff will provide support.

Please note that regardless of how you do your programming for this course all code you submit for this course must compile and run under JDK 6.0. Due to the large number of students expected in this class, the course staff will not be able to spend time fiddling with programs that do not compile and/or run.


LAB FACILITIES

We will use the CA Transaction Processing Lab (Translab) for this course. Login instructions & room passwords will be provided to you.


COURSE COMPONENTS

  • Final Exam - This will be a written, cumulative final exam on all material covered during the semester.
  • Written Midterm Exam - This exam will be given in class during a scheduled lecture. The midterm and final examinations will attempt to assess whether students have understood the material covered during lecture and applied in the homework assignments.
  • Homework Assignments - You must turn in each programming & design assignment by noon on the day it is due. Submitted code that does not compile will receive no credit. Programs will be evaluated purely based on program performance. Late submissions will NOT be accepted. Assignments will be handed in electronically, instructions for which will be provided early in the semester.
  • Design/Coding Midterm Exam - The design portion of this exam will be held in class, where you will use UML to design your solution to a programming problem. You will then take-home the coding portion, where you will implement your design. The design/coding exam will attempt assess whether students can produce a detailed object-oriented design in a controlled setting, and whether they can subsequently produce a working program that conforms closely to this design. This exam will be based on the series of homework assignments given in class
  • Software Tool Proficiency Quiz - The software tool proficiency quiz will attempt to assess whether students can physically demonstrate the basic skills required to use the various tools introduced in class. This will be given in CS 2114.
  • Surprise Quizzes - There will a number of surprise quizzes given during lecture on the material covered in class that day or on previous reading assignments. These quizzes will not be difficult, but are intended to make sure students are keeping up with the material


GRADING BREAKDOWN

Final Exam (Monday, December 14th, 11:15am-1:45pm) 25 %
4 Homework Assignments 36 % (9% each)
Written Midterm Exam (Wednesday, October 14th, 9:35-10:30am) 15 %
Design/Coding Midterm Exam (Friday, November 20th, 9:35-10:30am) 19 %
Software Tool Proficiency Quiz (Wednesday, December 2nd, 9:35-10:30am) 5 %
100 %

Note CEAS Policy: The Pass/No Credit (P/NC) option is not available for this course.


ACADEMIC DISHONESTY

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at http://www.stonybrook.edu/uaa/academicjudiciary/ Adopted by the Undergraduate Council September 12, 2006

You may discuss the homework in this course with anyone you like, however each student's submission, including written material and coding, must be his or her own work, and only his or her 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. Additionally, any evidence of sharing of information or using unauthorized information during an examination will also 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. If you have a situation that may tempt you into doing something academically dishonest, resist the urge and speak with your instructor during office hours for help.

All students taking this course are required to complete HOMEWORK 0, which contains a form in which you acknowledge specific activities that are and are not permitted in this course. No grades will be issued for anyone who has not completed this form.


SPECIAL ASSISTANCE

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disablility Support Services office, 128 ECC Building (631) 632-6748. They will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Disability Support Services. For procedures and information go to the following web site: http://www.ehs.sunysb.edu and search Fire Safety and Evacuation and Disabilities.

If you need general computer help, you can use the Computer Science Help Desk. Services offered include setting up an account on a department server, using Windows NT, using a browser, and connecting to the campus network. The Help Desk office is located in the SBCS Office - Room 2110.