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

bullet

Gain competence in problem solving, object-oriented (OO) principles and applying them to designing and expressing solutions, 

bullet

Acquire knowledge of fundamental data structures and algorithms, their description and application,

bullet

Continue the cultivation of discipline in software design, development, style, documentation and testing, and 

bullet

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

bullet

Office Room: 127 Bell Hall

bullet

email: bina@cse.buffalo.edu

bullet

Phone: 716-645-3180 (108)

bullet

Office hours: 9a.m. - 9.50a.m. MWF

 

Teaching Assistants

Name

Office

Office Hours

email

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. Late assignments will be penalized at a rate of 25% of the achieved grade for each day overdue.  The penalty will be assessed from the due date and time indicated on the assignment.

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.

  This semester, all projects will be checked using an electronic cheat checking system.  We reserve the right to check or question any portion of any work submitted at any time during the semester. If you are caught violating the academic integrity policy, you will minimally receive a ZERO in the course.  We will also place the incident in your permanent record.  If it is your second violation, we will recommend to the Undergraduate Chair that formal proceedings be filed against you, which would mean either you could be expelled, or your degree progress will be terminated within the Computer Science and Engineering department.  

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).