A development of the basic concepts and techniques from Computer Science I and II into practical programming skills that include a systematic approach to program design, coding, testing, and debugging. Application of these skills to the construction of robust programs of thousands of lines of source code. Use of programming environments and tools to aid in the software development process.
You must have taken CSE 214 and received a grade of C or better in order to take this course. In more detail, you are expected to have the following knowledge and skills at the beginning of the course:
Understanding of fundamental data structures, including lists, binary trees, hash tables, and graphs, and the ability to employ these data structures in the form provided by the standard Java API.
At the end of the course you should have the following knowledge and skills:
Sensitivity to the issues of programming style and modularity and their relationship to the construction and evolution of robust software.
Please follow the communication decorum below as strictly as possible for effective and efficient communication with the instructor and the teaching assistants:
Do not use any email address for the instructor other than the one provided on his home page.
Do not use any email address to communicate with a TA other than the one provided on the ones provided in the course web page.
Clearly state the course in your email subject. For example, "CSE 219: homework 3 doubt".
Follow announcements carefully.
Emails asking for information already available in announcements will not receive a response.
All homework and final project grading will be done by appointments.
Regrading later, or grading homework assignments by any other means, is not possible.
The mid-term exam papers will be retained by the instructor at first.
Any request for regrading must be made during instructor office hours within a 2-week period from the day the grade was provided on Blackboard.
Mid-term papers, once returned (which will be done during instructor office hours), will no longer be considered for regrading.
For the final exam, there will be a special office hour designated to resolve any grade queries or disputes. This will be announced after the final exam.
Students will attend weekly recitations that will introduce use of essential development tools and will require completion of an exercise for submission.
Programming assignments will be electronically submitted. Submission instructions will be made available along with the first homework.
There will be a mid-term and a final exam. The schedule for exams can be found here.
Traditionally, the following books (available online for SBU students) have been used in this course:
However, there may be additional reference material posted under the lectures and reading materials section.
|5 Homeworks||25% (5% each)|
The final grade you receive in this class will reflect, as far as possible, the extent to which you have mastered the concepts and their applications. How much someone needs a grade, or how close they are to the next higher grade, will have no effect on grade. As the instructor, I want everyone to do well in this course, and will make every reasonable effort to help you understand the material taught. However, the grades provided at the end of the semester are final, except for rare situations involving grading errors. They will not be altered for any reason, so please do not ask me to do so.
The Pass/No Credit (P/NC) option is not available for this course.
Incomplete or un/satisfactory grades cannot be given for this course.
You may discuss the homework in this course with anyone you like, however each student submission, including written material and coding, must be his or her own work, and only his or her own work. Any evidence that written homework submissions or source code have been copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or 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.
Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty are required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at http://www.stonybrook.edu/commcms/academic_integrity/index.html
If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disability Support Services, ECC (Educational Communications Center) Building, room 128, (631) 632-6748. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential. Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Disability Support Services. For procedures and information go to the following website: http://www.stonybrook.edu/ehs/fire/disabilities
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the Schoolof Medicine are required to follow their school-specific procedures.
Monday, Nov 06
1:00 pm – 2:20 pm
Frey Hall 104
Wednesday, Dec 20
2:30 pm - 5:00 pm (actual exam duration may be shorter)
Frey Hall 104
The complete final exam schedule for Fall 2017, as provided by the Office of the Registrar, can be found here.
All recitations for this section will be held in New Computer Science 115. The complete recitation schedule is available here.
Details on your undergraduate teaching assistants, a.k.a. the "homework gurus", are available here.
Office hours will be held in (Old) Computer Science 2203. For a detailed schedule of the office hours held by them, please consult the weekly schedule table.
|Monday, Aug 28||Introduction||Please go through the syllabus carefully.|
|Friday, Sep 01||Introduction to JavaFX||Getting Started with JavaFX (Oracle Documetation)|
|Friday, Sep 08||Event Handling||Tutorial on Event Handling in JavaFX|
|Monday, Sep 11||UI Controls and Multimedia in JavaFX||JavaFX UI Control Overview and the Canvas API|
|Friday, Sep 15||Inheritance in Java||Tutorial on Inheritance|
|Monday, Sep 18||
|Tutorial on Generic Programming in Java|
|Friday, Sep 22||A deep dive into OOP concepts in Java|
|Monday, Sep 25||- ctd -|
|Friday, Sep 29||Multhreaded Programming - I|
|Monday, Oct 02||Multhreaded Programming - II||
|Friday, Oct 06||Multhreaded Programming - III||
Code Examples (read the documentation carefully):
|Monday, Oct 09||Software Design and the Unified Modeling Language (UML)|
|Friday, Oct 13||Creational Design Patterns|
|Monday, Oct 16||Behavioral Design Patterns|
|Friday, Oct 20||- ctd -|
|Monday, Oct 23||Test-driven Development|
|Friday, Oct 27||- ctd -|
|Monday, Oct 30||practice mid-term|
|Friday, Nov 3||Designing with Exceptions|
|Monday, Nov 6||mid-term exam|
|Friday, Nov 10||
• Structural Design Patterns - I
|Monday, Nov 13||Binary IO in Java|
|Friday, Nov 17||Structural Design Patterns - II|
|Monday, Nov 20||
• Reflection - I
• Reflection - II
|Java Reflection Tutorial|
|Monday, Nov 27||Functional Programming in Java - I||
|Friday, Dec 1||Functional Programming in Java - II|
|Monday, Dec 4||Practice questions on Reflection (Q&A in class)||
|Friday, Dec 8||
|Homework 1||Friday, September 22, at 11:59 PM||HW1 Grading Criteria|
|Homework 2||Friday, October 13, at 11:59 PM||HW2 Grading Criteria|
|Homework 3||Monday, October 30, at 11:59 PM||HW3 Grading Criteria|
|Homework 4||Monday, November 13, at 11:59 PM||HW4 Grading Criteria|
|Homework 5||Monday, November 27, at 11:59 pm||HW5 Grading Criteria|
|Homework 6 [Final Project]||Friday, December 8, at 11:59 pm|
|Recitation 1: Version Control|
|Recitation 2: Debugging||
|Recitation 3: HTML and CSS||Restricted Access. Login details will only be provided during recitation.|
|Recitation 4: JavaFX and HTML5 Canvas||
|Recitation 5: Multithreading||Restricted Access.|
|Recitation 6: UML Diagrams||
|Recitation 7: Factory Pattern|
|Recitation 8: Equality and Hash Code||Restricted Access.|
|Recitation 9: Unit Testing|
|Recitation 10: Profiling|