CSE116A,B Introduction to Computer Science II Fall 2002
Bina Ramamurthy
Description
This course is a sequel to CSE115 Introduction to Computer Science I for Majors. It focuses on techniques in problem-solving, principles of object-oriented design and modeling, defining and using data structures and algorithms, using a modern, high-level language. The central theme of the course is to help students develop competence in the field of Computer Science and Engineering by learning and practicing skills from math, science and engineering. Students will study and practice a variety of problem solving techniques with emphasis on abstraction, modularity and information hiding. Problem solving using popular abstract data types lists, stacks, queues, tress and graphs will be discussed in detail. Object-oriented analysis and design will be emphasized in all the problems studied in this course. Using fundamental design patterns will also be illustrated. Unified Modeling Language (UML) will be used to communicate solution design . Concepts such as inheritance, polymorphism, abstract classes, interfaces and implementation will be studied. Basic techniques for analyzing the efficiency of algorithms, concept of recursion and standard algorithms for searching and sorting will be examined. Students will develop their skills using hands-on projects on Unix-based operating system in Sun Micro System's Java language.
Outcome Objectives
|
|
Gain competence in problem solving, object-oriented (OO) principles and applying them to designing and expressing solutions, |
|
|
Acquire knowledge of fundamental data structures and algorithms, their description and application, |
|
|
Continue the cultivation of discipline in software design, development, style, documentation and testing, and |
|
|
Gain enough proficiency in Java programming language to solve a fairly large problem and professionally present it in a software package. |
Prerequisites
CSE115 (SUNYAB) or a strong equivalent of this course from other institutions. Good understanding of OO principles. Fluency in basic software design and development process. Good working knowledge of the OO Java language.
Time and Place
You will attend the lecture class and the recitation you are registered for.
|
Lecture/Recitation |
Time |
Place |
|---|---|---|
|
CSE116A |
12.00noon - 12.50pm MWF |
210 NSC |
|
CSE116B |
10.00am - 10.50am MWF |
210 NSC |
|
CSE116A1 |
12.00 - 12.50pm TH |
21 Baldy |
|
CSE116A2 |
4.00pm - 4.50pm W |
21 Baldy |
|
CSE116A3 |
9.00am - 9.50pm M |
21 Baldy |
|
CSE116A4 |
1.00pm - 1.50pm W |
21 Baldy |
|
CSE116B1 |
9.00am - 9.50am W |
21 Baldy |
|
CSE116B2 |
9.30am - 10.20am T |
21 Baldy |
|
CSE116B3 |
2.00pm - 2.50pm W |
21 Baldy |
|
CSE116B4 |
12.00 - 12.50pm T |
21 Baldy |
|
CSE116B5 |
12.00 - 12.50pm M |
21 Baldy |
Textbook
Data Structure and Algorithms in Java by M.T. Goodrich and R. Tamassia, Second Edition, John Wiley & Sons., August 2000.
It is highly recommended that you acquire a reference book each for OO principles, Java language and UML.
Instructor: Bina Ramamurthy
|
|
Office Room: 127 Bell Hall |
|
|
email: bina@cse.buffalo.edu |
|
|
Phone: 716-645-3180 (108) |
|
|
Office hours: 9a.m. - 9.50a.m. MWF |

Teaching Assistants
|
Name |
Office |
Office Hours |
|
|---|---|---|---|
|
Eric Crahen |
Trailer E-15 |
Mon11am-12; Thu11am-12 |
crahen@cse.buffalo.edu |
|
Vivek Kumar |
Trailer A-22 |
Wed 12-1pm; 3-4pm |
vkumar2@cse.buffalo.edu |
|
Lushan Liu |
Trailer A-10 |
Fri 9-10am;11am-12n |
lliu2@cse.buffalo.edu |
Grading Policy
Grades will consist of the following components:
Projects (4 projects) : 45%
Midterm Exam : 20%
Final Exam : 25%
Homework + attendance : 10%
|
Grade Range |
Letter Grade |
|---|---|
|
95 - 100 |
A |
|
90 - 94.99 |
A- |
|
85 - 89.99 |
B+ |
|
80 - 84.99 |
B |
|
75 - 79.99 |
B- |
|
70 - 74.99 |
C+ |
|
65 - 69.99 |
C |
|
60 - 64.99 |
C- |
|
55 - 59.99 |
D+ |
|
50 - 54.99 |
D |
|
0 - 49.99 |
F |
The Minimal point distribution guideline will be as above. We reserve the right to alter component weighting or provide a “curve” on an assignment as warranted. In order to pass this course you must have passing average in the Exam component of the course. All assignments will be graded and returned in a timely manner. When an assignment is returned, you will have a period of one week to contest any portion of the grade. Grading conflicts will be first resolved with the TA who graded your assignment. If the conflict cannot be resolved, the instructor will mediate the dispute. When contesting a grade, you must be able to demonstrate how your particular solution is correct. Also, when contesting a grade, the instructor or TA reserves the right to re-evaluate the entire exam, not just the question in dispute.
Projects
Projects constitute a major
component of the course. Over the
semester, you will be given four projects.
First one, an introductory project will be an individual project. Second -
fourth projects are in fact three phases of a large problem that will be
realized by pairs of students working together.
You will be given approximately
three weeks to complete each project. Do
not be lulled into a safe sense of security thinking you have a lot of time to
implement each project! Much
of your project development time will be spent in the design phase of your code.
When implementing your solution, you should plan on using an incremental
development path. You should plan your project in achievable stages such that
you can get parts of your solution working a little at a time.
This will help maximize partial credit during grading.
You will also be responsible for the development of test cases to show
the accuracy of your solution. You
will also be required to perform an analysis of your solution, as well as create
external documentation pertaining to your project.
Exams
There will be a midterm exam that will be administered and graded before the course resign date. Midterm material will cover all lecture and reading assignments before the exam, as well as concepts from homework and lab assignments. Midterms are closed book, closed notes. The final exam is a comprehensive final, covering all lecture, lab, and homework areas. Make-up exams are not administered! If you miss the midterm exam or final, you will be assigned a grade of 0 points for that component.
Lecture and Recitation Attendance
Attendance is required for all lectures and assigned recitations. You are responsible for all materials presented in lecture and recitation, as well as handouts and/or other supplemental material. If you know that you are going to miss a lecture or a recitation, have a reliable friend take notes for you. Attendance will be occasionally taken and may be used to determine how to resolve borderline grades at the end of the course.
During lectures, we will present and review material covered in the textbook. This includes working on problems from the text. We will also cover material that is not in the textbook, including real world examples of data structures and algorithmic issues. You will be given a reading assignment at the end of each lecture for the next day. Recitations are an essential part of this course! Recitations have several purposes; (1) to review homework solutions. (2) to continue the conversation pertaining to the projects (3) to review difficult concepts in the class. The recitation is your time to communicate with your TA about the course. Use the opportunity to the fullest.
I do not give incompletes in the course, unless under the most dire of circumstances. By definition, an incomplete is warranted if the student is capable of completing the course satisfactorily, but some traumatic event has interfered with their capability to finish within the timeframe of the semester. Incompletes are not designed as stalling tactic to defer a poor performance in a class until an easier professor allows the student to finish the coursework.

Academic Integrity
UB’s definition of Academic
Dishonesty in part is, “Students are responsible for the honest completion and
representation of their work”. You
should also read the departmental academic honesty policy located at http://www.cse.buffalo.edu/undergrad/academicintegrity.html.
There is a very fine line between conversation between your peers about concepts in the course and academic dishonesty. You are allowed to converse about general concepts, but in no way are you allowed to share code or have one person do the work for others. You must abide by the UB Academic Integrity policy at all times. Remember that items taken from the web are also covered by the academic honesty policy! If you are unsure if something violates the academic integrity policy, assume that it does until you get clarification from the instructor.
Help
Although I would like to be able to help each of you with your problems in this course, with large numbers students, this is not always practical. Therefore, when asking questions, please try and talk with the TAs first. They have probably covered the question many times with other students. Take advantage of my office hours and theirs. We have about 12 hours amongst us. Attend the recitations regularly. Attend the review lectures before the exams. Note: There is no special undergraduate TA help sessions similar to one you had in CSE115.
If
you have special needs due to a disability, and are registered with the
Office of Disability Services, we need to know as soon as possible!
Do not assume that we have received the paperwork!
(Although it is your responsibility to make sure we receive the paperwork
as soon as possible from Disability Services)