CSE116 Spring 2017 Syllabus
CSE116 Spring 2017 Syllabus
University at Buffalo
Department of Computer Science & Engineering
338 Davis Hall (716) 645-4736
Syllabus
Please read this sheet carefully, and save it for future reference.
Instructor
Name Office Phone Email Office hours
Monday 8:30 AM 11:00 AM
Matthew Hertz, Ph.D. 338L Davis 645-4736 mhertz@buffalo.edu Friday 2:00 PM 3:30 PM
OR by appointment
Teaching Assistants
See course website.
Course Information
Credit hours:
CSE 116 Introduction to Computer Science for Majors II 4 credits
CSE 504 Computer Science for Non-Majors II 3 credits
Course Description
This course is a continuation of CSE115/503, in which heavy emphasis is placed on abstract data types (ADTs) and object-
oriented methodology. You will be expected not only to understand abstract data types, but also how to design and implement
robust ADTs using a modern object-oriented programming language (Java). Topics such as encapsulation, polymorphism,
interfaces, inheritance and composition will be emphasized. Essential topics to be integrated in this framework include the use
of recursion, references, linked structures including linked lists, binary trees, stacks, queues, and other advanced data structures
and algorithms, including advanced searching and sorting algorithms. The analysis of algorithm complexity (O-notation) will be
introduced.
In the course of working on a team software project you will be introduced to a software development methodology, select
software development tools, software documentation and teamwork.
Prerequisites
You must have passed CSE115 (or CSE503) with a minimum grade of C-, or have an equivalent background and receive
permission from the instructor.
Assigned readings include occasional webpages (links found on the course website) and from the required textbook:
William J. Collins. 2011. Data Structures and the Java Collections Framework (3rd ed), John Wiley & Sons. (ISBN: 978-0-470-
48267-4).
You may find the following books useful as well. They are not required.
Cay Horstmann. 2015. Core Java for the Impatient, Addison-Wesley Professional. (ISBN-13: 978-0321996329)
Additional reading material may be assigned during the course, and will be announced in lecture.
1
CSE 116/504 Introduction to Computer Science for Majors II Spring 2017
This course is required of all computer engineering BS students and addresses the following student outcomes of the BS
Computer Engineering program:
(CEN-a) An ability to apply knowledge of mathematics, probability and statistics, computer science and electrical engineering as
it applies to the fields of computer software and hardware
(CEN-h) The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental,
and societal context.
(CEN-k) An ability to use the techniques, skills, and modern hardware and software engineering tools necessary for computer
engineering practice.
This course is required of all computer science BS students and addresses the following student outcomes of the BS Computer
Science program:
(CS-a) An ability to apply knowledge of computing and mathematics appropriate to the discipline.
(CS-d) An ability to function effectively on teams to accomplish a common goal.
(CS-c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired
needs.
(CS-i) An ability to use current techniques, skills, and tools necessary for computing practice.
CEN-h
CEN-k
Upon successful completion of this course a student will be able Assessment
CS-a
CS-d
CS-c
CS-i
to Instruments
HW, Project,
demonstrate the operation of fundamental data structures
Exams
implement fundamental data structures in Java Project
Project,
write unit tests from informal specifications
Exams
execute unit tests using the JUnit unit testing framework HW, Project
employ a versioning tool (git) to manage program files for
Project
teamwork
2
CSE 116/504 Introduction to Computer Science for Majors II Spring 2017
Computing Resources
You will be provided with a CSE undergraduate computing account. You may use the undergraduate lab facilities in Baldy 21.
These facilities are available for use as listed on the course website. They are on card-access - use your UB card to open the
door. For your own safety, and to protect the equipment in the lab, do not open or hold the door open in order to allow other
people to gain entry to the lab. All students authorized to use the lab have card access.
You are expected to become proficient at using the machines in the lab, the Linux operating system, the Java compiler as
integrated with the Eclipse IDE, and whatever other software development tools the course requires you to use. Information
about the CSE computing environment can be found at: https://wiki.cse.buffalo.edu/services/
You are expected to use your UB e-mail account for all communications with course staff. Always include your full and an
informative subject line for your e-mail.
Course Requirements
Lectures
Prior to each lecture, students will usually have assigned readings from the textbook and/or additional webpages. The lectures
will then expand and reinforce this material. A problem based on the material from the readings and lecture will be included on
the weekly homework so students can be certain they understand this material or know when they should seek additional help.
By reviewing the readings, their notes, and the course slides, students should be able to complete each homework problem in
under 15 minutes.
Class attendance is mandatory; this policy discusses enforcement. If you miss a class, you are responsible for talking to your
classmates, TAs, or the instructor to find out what happened. If must miss class for an extended period of time, 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, it may be recommended that you resign from the course.
Recitations
The recitations are an integral part of the course. Recitation sections are held in the computer lab in Baldy 21. The first hour of
almost all of the recitation sections will include a graded assignment. Attendance in all labs is critical.
The recitations often ask you to apply the material that was presented in class over the past week. Applying a new skill is a key
skill in computer science, but also one of the most difficult. Recitations therefore provide an excellent forum to get
individualized attention to your questions. Some material needed for the course project will only be covered in recitations.
New York State Board of Education regulations specify for every hour of time spent in lecture or recitation, students are
expected to spend 2 -3 hours on work outside of class. This means that you should expect to spend 8 12 hours each week on
readings, homework, projects, and studying.
3
CSE 116/504 Introduction to Computer Science for Majors II Spring 2017
Grading Policy
Each students grade is computed from a weighted average of the following items:
Examinations 50%
Homework Problems 15%
Adult Learning Questions 10%
Recitation Activities 15%
Course Project 10%
If necessary, the instructor may revise how the final grade will be calculated. In this situation, any changes will be sent via e-mail
to each students UB e-mail account. Each item within the course grade is described below.
The comprehensive final examination will be given during the final exam period. The final exam is worth 25% of your final
course grade. The schedule for this examination is done by the university. It is YOUR RESPONSIBILITY to check the HUB for the
date, time and place of the final exam and exam times can move, so you plan to be available for the entire examination
period. To find your examination schedule, see:
http://blogs.advising.buffalo.edu/beadvised/have-you-checked-your-final-exam-schedule
In accordance with the University Catalog, if you miss an examination because of sickness or similar reasons, you will be
required to notify the instructor in writing and provide a written note from a detailing the period during which you were
medically incapable of taking the exam is required. Notify me as early as possible in writing (e-mail is acceptable); missing an
examination for an expected absence will not be excused unless you received the instructors permission prior to the exam.
An unexcused absence from an examination will result in a grade of 0 for that examination. Make-up examinations are only
allowed for excused absences.
4
CSE 116/504 Introduction to Computer Science for Majors II Spring 2017
In accordance with the University Catalog, if you miss an individual programming assignment because of sickness, you will be
required to notify the instructor and provide a written note from a detailing the period during which you were medically
incapable of completing the assignment. In these cases, see your instructor as soon as you return to class.
If you miss an individual programming assignment without a valid excuse, you will receive a 0 for that assignment. No make-
ups will be available without a valid excuse.
While the course project is team-based, it is important for students to have their efforts acknowledged. After each stage of this
project, team members will submit peer- and self-evaluations. The details of these evaluations will be provided later in the
term, but the results of these evaluations will be factored into each students grade for that phase.
Missed questions cannot be made up, but reflecting the educational nature of these questions, the component will be graded
using 85% of the maximum score. As an example, if there were 50 questions students could earn up to 100 points, but their
score will be calculated by dividing their total points earned by 85 (e.g., 100 * 0.85).
Using another students clicker is a violation of UBs academic integrity policy. Allowing another student to use your clicker is
also an academic integrity policy violation. It is your responsibility to ensure that you bring your clicker to class, that you set it to
the correct channel, and that the batteries have sufficient power.
If you fail either the exam or the recitation activity component of the course,
you will automatically earn a failing grade in the course as a whole.
5
CSE 116/504 Introduction to Computer Science for Majors II Spring 2017
Incompletes cannot be given as a shelter from poor grades. It is your responsibility to make a timely resignation from the
course if you are doing poorly for any reason. The last day to resign the course is Friday, November 11, 2016.
Accessibility Resources
25 Capen Hall, Tel:645-2608, TTY:645-2616, Fax:645-3116 www.buffalo.edu/accessibility
If the Accessibility Resources office has determined that you are eligible for class accommodations, such as recruiting note-
takers, readers, or extended time on exams or assignments, you must provide the course instructor with written documentation
before any accommodation can be provided.
Counseling Center
120 Richmond Quad, Tel:645-2720, Fax:645-2175 ub-counseling.buffalo.edu
The Counseling Center staff is trained to help you deal with a wide range of issues, including how to study effectively and how to
deal with exam-related stress. Services are free and confidential.
6
CSE 116/504 Introduction to Computer Science for Majors II Spring 2017
Academic Integrity
Source: http://www.cse.buffalo.edu/undergrad/policy_academic.php
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.
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.
All AI violations will be reported to the department, school, and university, and recorded.
Even the 1st offense will receive "F" for the course, unless the instructor deems it appropriate to reduce the penalty.
Subsequent violations of AI, in any form and in any other course, will automatically result in an "F" grade, with no exceptions.
Between instructor office hours, UTA office hours, Piazza, e-mail, and reviewing the textbook and slides, students have sufficient
resources to get any questions answered. There is no reason why students would need to violate AI policies and so no
appropriate reason for students to violate AI policies or reductions from the departmental-prescribed penalty.