The Final
Exam will be in-class on Friday, 12/10. The final will be non-comprehensive,
covering material since the midterm.
This course is
a continuation of CSE115, in which heavy emphasis is placed on programming
tactics and methodology. You will be expected to
solve diverse problems using design and programming skills. Strategies will
include Object Oriented methodologies, adaptive programming, applications
(rather than applets), graphics, timers, event-driven programming, structured
programs as well as OO, data structures as a programming “language”, Abstract
Data Types (ADTs) as components, design patterns as tools, philosophies,
attitude, personality, and solid software engineering.
Course Topics
- The Application
- The Problem Space
- Empowering methods: basic
control structures
- Empowering methods: basic
data structures - arrays, records, lists, vectors
- What if there were no objects?
/ Thank goodness there are objects.
- Graphics and User I/O
- Class, Object, Instantiation,
- Superclass, Subclass, Parent,
Child, Extends, Super
- Interface, Implements, Abstract
class, Final
- Static, Public, Private, Protected
- Constructor,
- Inheritance, Encapsulation,
Polymorphism,
- Events,
- “Is a”, “Has a”,
- Run-Time, Design-Time
- Abstract Data Types
- Active X Controls
- the “control” as an ADT
- Exceptions and Errors
- Event- and Error- driven programming
- Writing a Scheduler
- Java Foundation Classes
- The Model-View Controller,
Observer, Facade, Factory, Singleton Patterns
- Queues
- Binary Search Trees
- An OO Database using ADTs
Prerequisites
You must have passed CSE 115 with a minimum grade of C-, or have an equivalent
background and receive permission from the instructor.
Computing Resources
You will be provided with a CSE undergraduate computing account. You may
use the lab facilities in Baldy 19 and Baldy 21 during open hours. You can
connect to yeager.cse.buffalo.edu remotely from other sites, on or off campus.
You are expected to become proficient at using the machines in the lab,
the Unix system, the Java compiler, and whatever other software development
tools the course requires you to use. It is your responsibility to ensure
that any programs you write for this course compile using the Java compiler
installed on the department's machines.
You are also required to read mail sent to your CSE e-mail account. Any
e-mail communication that you send regarding this course must be sent from
your CSE e-mail account or your UB e-mail account. Under no circumstances
will e-mail from non-UB accounts be acknowledged or answered. You must include
an informative subject line in all e-mail, and include your full name in
any e-mail correspondence.
All e-mail that we send in reply to your e-mail will be sent to the address
from which you sent your e-mail. Our feedback on materials you hand in electronically
will be sent to your CSE e-mail account only. Since you may request re-grades
of work only within a set period from the time that the feedback was provided
to you, it is in your best interest to read your CSE e-mail account on a
daily basis.
Course organization
The course has both a lecture component and a recitation (lab) component.
Each component plays a role in helping you achieve the objectives of the
course. If you do not participate fully in both you should not expect to
do well in the course.
Lectures
Some of the topics will be difficult. It is therefore absolutely essential
that you ask questions whenever something is said which you do not understand.
You are expected to attend all lectures. If you are unable to attend a
lecture because of sickness or similar reasons, make sure you get the notes
from a classmate. If you are out of class for an extended period of time
because of sickness, notify your instructor as soon as possible, and see
your instructor immediately upon your return in order to determine how to
catch up. If you have missed a significant portion of the semester due to
illness, it is recommended that you resign from the course.
Recitations
The recitations are an integral part of this course. Attendance in all
recitations is mandatory and is critical to the success of the course project.
Besides fulfilling the requirement for lab exercises (see grading, below),
recitations provide you with an opportunity for hands-on practice applying
the concepts and theoretical constructs discussed in class. The are also
a time for review of lecture material and for asking more individual questions
about the course material than can typically be addressed in lecture. Some
material needed to do the programming projects may be covered only in the
recitations.
Recitations do not meet in the first week of classes.
Course evaluation
The following indicates the grade breakdown which I will use in assigning
grades in the course. I reserve the right to make small adjustments to the
breakdown if I feel it is necessary.
Midterm Exam: 20%
Final Exam: 20%
Programming Project 1: 20%
Programming Project 2: 20%
Lab Exercises (there will be 9, lowest will be dropped): 20%
note: Quiz counts as 1 lab
Peer evaluation
One of the long programming projects is a team-based project. Each team
member will evaluate the rest of the members of their team. More details
on this peer evaluation procedure will be handed out during the semester.
Your peer evaluation grade is an average of the evaluations you receive from
your team members, and counts for a total of 5% of your overall course grade.
General Notes
If you don't understand something covered in class, ask about it right
away. The only silly question is the one which is not asked. If you get a
poor mark on an assignment, quiz, or exam, find out why right away. Don't
wait a month before asking. The instructor and teaching assistants are available
to answer your questions. Don't be afraid to ask questions, or to approach
the instructor or T.A. in class, during office hours, in the hallways, or
through e-mail.
This course is intended to be hard work, but it is also intended to be
fun. Play with the computer, and have fun with the neat and elegant programming
ideas covered in this course. We think computer science is interesting and
exciting, and we want to convince you of this. Work hard, but have fun!
Academic Integrity
Source: http://www.cse.buffalo.edu/academics-academic_integrity.shtml
The academic degrees and the research findings produced by our Department
are worth no more than the integrity of the process by which they are gained.
If we do not maintain reliably high standards of ethics and integrity in
our work and our relationships, we have nothing of value to offer one another
or to offer the larger community outside this Department, whether potential
employers or fellow scholars.
For this reason, the principles of Academic Integrity have priority over
every other consideration in every aspect of our departmental life, and we
will defend these principles vigorously. It is essential that every student
be fully aware of these principles, what the procedures are by which possible
violations are investigated and adjudicated, and what the punishments for
these violations are. Wherever they are suspected, potential violations will
be investigated and determinations of fact sought. In short, breaches of
Academic Integrity will not be tolerated.
Departmental Statement on Academic Integrity in Coding Assignments and
Projects
The following statement further describes the specific application of these
general principles to a common context in the CSE Department environment,
the production of source code for project and homework assignments. It should
be thoroughly understood before undertaking any cooperative activities or
using any other sources in such contexts.
All academic work must be your own. Plagiarism, defined as copying or
receiving materials from a source or sources and submitting this material
as one's own without acknowledging the particular debts to the source (quotations,
paraphrases, basic ideas), or otherwise representing the work of another
as one's own, is never allowed. Collaboration, usually evidenced by unjustifiable
similarity, is never permitted in individual assignments. Any submitted academic
work may be subject to screening by software programs designed to detect
evidence of plagiarism or collaboration.
It is your responsibility to maintain the security of your computer accounts
and your written work. Do not share passwords with anyone, nor write your
password down where it may be seen by others. Do not change permissions to
allow others to read your course directories and files. Do not walk away
from a workstation without logging out. These are your responsibilities.
In groups that collaborate inappropriately, it may be impossible to determine
who has offered work to others in the group, who has received work, and who
may have inadvertently made their work available to the others by failure
to maintain adequate personal security In such cases, all will be held equally
liable.
These policies and interpretations may be augmented by individual instructors
for their courses. Always check the handouts and web pages of your course
and section for additional guidelines.
Departmental Policy on Violations of Academic Integrity
Any student accused of a violation of academic integrity will be so notified
by the course director. An informal review will be conducted, including a
meeting between these parties. After this review and upon determination that
a violation has occurred, the following sanctions will be imposed. It is
the policy of this department that, in general, any violation ofacademic
integrity will result in an F for the course, that all departmental/financial
support including teaching assistantship, research assistantship or scholarships
be terminated, that notification of this action be placed in the student's
confidential departmental record, and that the student be permanently ineligible
for future departmental financial support. A second violation of academic
integrity will cause the department to seek permanent dismissal from the
major and bar from enrollment in any departmental courses. Especially flagrant
violations will be considered under formal review proceedings, which may
in addition to the above sanctions result in expulsion from the University.