COURSE DESCRIPTION
An introduction to procedural and object-oriented programming methodology. Topics include program structure, conditional and iterative programming, procedures, arrays and records, object classes, encapsulation, information hiding, inheritance, polymorphism, file I/O, and exceptions. Software debugging and testing techniques are emphasized. Includes required laboratory.
COURSE GOALS
- Introduce the basic concepts of object-oriented programming, including object classes, encapsulation, inheritance, and polymorphism.
- Discuss the fundamental data structures of high-level programming languages (e.g., arrays), and how they are used.
- Through programming assignments, emphasize the importance of sound code structure and systematic software debugging and testing techniques.
COURSE TOPICS
- Introduction to Objects in Java, using predefined objects (e.g. String)
- Review of program control statements: conditionals and loops with an introduction to formal methods (preconditions, post conditions, loop invariant)
- Writing more complex classes.
- Arrays and the Array List class.
- Inheritance and polymorphism in Java, simple examples, the Java class hierarchy.
- Exceptions and File I/O.
- Introduction to graphical user interface components.
- Recursive programming, basic examples (factorial, Fibonacci numbers, Towers of Hanoi, etc...)
- Documenting sources of code, effects of software piracy on business and individuals.
PREREQUISITES
One of the following: CSE 110, CSE 130, ESE 124, ESG 111, MEC 111, MEC 112. If you meet the course prerequisities but have been unable to register for the course, please see the professor the first day of class.
INSTRUCTOR
Richard McKenna
Lecturer
Computer Science 1436
Office Hours: MF 10:30am-12:30pm
Teaching Assistants - HW Grading and Office Hours
Rami Al-Rfou'
HW Grading for students with last names Akanmu - Fletcher
Office Hours: Thursdays, 9am-11am, 1pm-2pm, & 4pm-5pm
Richard Defrancisco
HW Grading for students with last names Gibbons - Lee (Karen)
Tuesdays & Thursdays, 11:20am-12:40pm & Wednesdays 2:20pm-3:40pm
Sayyid Fayazbakhsh
HW Grading for students with last names Lee (Suhyung) - Moncrieffe
No Office Hours
Ankur Jain
HW Grading for students with last names Moore - Sung
No Office Hours
Teresa Johnson (grading now done by Richard McKenna)
HW Grading for students with last names Tak - Zhong
No more office hours for Teresa
HW GURUS - OFFICE HOURS in CS 2110
Brijesh Joshi: Mondays & Fridays, 2:00pm - 3:30pm
Tom Ayalon: Tuesdays & Thursdays, 9:50am - 11:10am
Justin Park: Tuesdays & Thursdays, 12:50pm - 2:10pm
Niripjit Singh: Tuesdays & Thursdays, 3:50pm - 5:10pm
Anthony Lomanaco: Wednesdays, 11:30am - 2:10pm
LECTURE
Tuesdays & Thursdays
11:20 am - 12:40 pm
Engineering 145
LABS
Section L01: (Ian Sutherland)
Tuesday & Thursday 9:50 am - 11:10 am
CS 2116

Section L02: (Martino Buffolino)
Tuesday & Thursday 3:50 pm - 5:10 pm
CS 2116

Section L03: (Daniel Huang)
Tuesday & Thursday 12:50 pm - 2:10 pm
CS 2116

Section L04: (Shams Rahman)
Tuesday & Thursday 2:20 pm - 3:40 pm
CS 2116

Section L05: (Xian Lin)
Tuesday & Thursday 6:50 pm - 8:10 pm
CS 2116

Section L06: (Matthew Cordaro)
Tuesday & Thursday 5:20 pm - 6:40 pm
CS 2116

TEXTBOOK
Introduction to Java Programming, Brief Version (7th Edition)
by Y. Daniel Liang
Published by Prentice Hall, 2008,
ISBN 0136042589
COURSE COMPONENTS
- Labs - During lab, you will be given problems that require a programmed solution. You will have only the lab period to edit, compile, and execute your solution. Before leaving, you will demonstrate your work to the lab TA and then submit it using the prescribed mechanism. TAs will assign grades of 0 - 3 as follows:
- 0 - student did not attend lab
- 1 - student attended lab and attempted to complete it, but it has major problems (doesn't compile or does nothing of value)
- 2 - student attended lab and when executed, student work is partially complete
- 3 - student attended lab and all work completed
- 6 Programming Assignments - There will be 6 programming assignments which must be submitted electronically by the announced due date and time. All code must compile. Code that does not compile will not be graded. Assignments will be graded based on program performance and documentation. You may not submit any programming assignment late. Late programming work will not be graded. All program code that is submitted electronically must have the following information listed clearly in documentation (comments in your program code) at the beginning of each file:
- Your name
- The course (CSE 114)
- The programming assignment number
- Your recitation number and TAs Name
- 1 Final Programming Project - At the end of the semester, students will put together all the pieces into a cohesive application. In this project, students will make a useful program approximately twice as complex as the homeowrk assignments.
- 2 Midterm Exams - These will be written exams that will test each student's grasp of the principles of programming covered in lecture, the labs, and the homework assignments.
- Final Coding Exam - The final exam will test each student's ability to program using the Java programming language. Students will have 2 1/2 hours to complete a number of programming exercises on a computer in a controlled environment. Programs will be graded based purely on functionality. Programs that do not compile will receive no credit, nor will programs that never produce correct results.
GRADING BREAKDOWN
| Best 22/24 Lab Exercises | 10 % | |
| 6 Programming Assignments | 30 % | (5% each) |
| 1 Final Programming Project | 10 % | |
| 2 Midterm Exams | 30 % | (15% each) |
| Final Coding Exam | 20 % | |
| 100 % |
DEVELOPMENT PLATFORMS
UNIX: Students will start the semester doing lab work and homework assignments using the UNIX environment. You must have a MySBMail account in order to do the labs and HW assignments on Sparky, which is the Unix server name. Before attending the first lab, make sure you can login to your MySBMail account. If you have any difficulty accessing your account, go to the Melville Library SINC site ASAP and ask them for your login information.
eclipse: This course will use the Java programming language for most of the programming assignments. The Java programming environment for this semester will be the Open Source eclipse IDE, which includes a very useful debugger. Go to the eclipse download page to get your own free copy. eclipse will also be available to you in the SINC Site Labs. eclipse is available for various platforms including Windows, Linux, and Mac.
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 it is the one that will be available in the room where the programming exam will be.
ACADEMIC DISHONESTY
Read This! You may discuss the assignments in this course with anyone you like, however each student's submission must be his or her own work, and only his or her own work. Any evidence that a submission has been copied, shared, or transmitted in any way between students, or has been downloaded from the Internet, or has been 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.
SPECIAL ASSISTANCE
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS) in the ECC building (where the Computer Store used to be), 632-6748v/tdD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.
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.
Web page created and maintained
by Richard McKenna