CMP 168
Programming Methods II
Fall 2020 Syllabus

Course Information
Course Section Lecture Hours Location
CMP 168 - A01 Tu & Th 1:00PM - 2:40PM Online-Synchronous using Zoom
Contact Information
Instructor: Steven Fulakeza Email: steven.fulakeza(at)lehman.cuny.edu
Phone: NA Office Location: GI 232
Office Hours: Mondays & Wednesdays from 12:50 pm to 1:50 pm and 03:50 pm to 4:50 pm
Instructor Availability: I reply to students' emails regularly but please note that I do not typically check email or Slack messages during late hours on weekdays, and I do not check these at all on the weekends in order to devote time to family, rest, and religious observances. Messages received during these times will receive attention once I am back online.


Course Description: 4 hours, 4 credits

Continuation of parameter passing with a focus on devising function definitions and tracing recursive calls. Sorting and searching algorithms and a comparison of their performance. GUI programming. Threads, Exceptions, and Exception Handling. Object-Oriented Programming techniques. Lab exercises include designing, writing and debugging programs using commercial IDEs.

Prerequisite:

A grade of B- or better in CMP 167 or Departmental permission.
CIS 166 may be used as a PREREQ with Department Permission.

Course Objectives:

By the end of the course students should be able to read and write java code that does the following:

  1. Demonstrate OOP through proper use of encapsulation, polymorphism and inheritance.
  2. Independently design, create, debug Java Applications
  3. GUI (Graphical User Interface) for desktop applications
  4. Perform decision branching using if-else statements, switch cases
  5. Perform iteration using loops for, while, do-while
  6. Use Recursion to solve problems
  7. Manipulate Arrays 1 Dimensional & 2 Dimensional
  8. Manipulate Strings
  9. Use Streams and perform File I/O
  10. Demonstrate use of Exception Handling
  11. Popular Sorting Algorithms (Bubble, Selection, Insertion, Merge)
  12. Popular Searching Algorithms (Sequential, Binary)

Grading Policy:

Your grades will be computed based in the following

  • Participation & Challenge Activities From Textbook: 10%
  • Homework Problems: 15%
  • Projects: 15%
  • Midterm: 30%
  • Final Exam: 30%

Expectations: Students are expected to learn both the material covered in class and the material in the textbook and other assigned reading. Completing homework is an essential part of the learning experience. Students should review topics from prior courses as needed using old notes and books.

Honor Code: You are encouraged to work together on the overall design of the programs and homework. However, for specific programs and homework assignments, all work must be your own. You are responsible for knowing and following Lehman's academic integrity code (available from the Undergraduate Bulletin, Graduate Bulletin, Office of Academic Standards and Evaluations, or the Smart Catalog). All incidents of cheating will be reported to the Vice President of Student Affairs.

Communication: We will be communicating with you on a regular basis throughout the semester using slack, and the email address you provide us on day 1 of this course. You must check for messages on a regular basis. There will be no acceptable excuse for missing an announcement

Homework: Programming problems are due most weeks. Problems will be in your online textbook (see below). These programming problems reinforce concepts covered in class. To receive full credit for a program, it must be completed by the specified due date and the program must perform correctly. You will be allowed to submit your solution multiple times, the submission with the highest grade will count as your grade.

Materials and Resources:

Textbook: ZyBook code: CUNYCMP168Fall2020

Technology:

Access to personal computers with Eclipse IDE, JDK 8, Java 8 Documentation .

Communication:

Join Slack Workspace here (be sure to join your section in addition to #general) Provide contact/email information here

Tutoring:

Departmental tutoring is available in the Math Computer Science Learning Center , Gillet Hall, Room 222.

Computer Access:

Part of this course will use university computer laboratories. These machines are for work related to this course only and a code of conduct applies to computer use in the department and on-campus. Misusing university computers could result in losing your computer access for the rest of the term, making it exceedingly difficult to complete this course.

Accommodating Disabilities:

Lehman College is committed to providing access to all programs and curricula to all students. Students with disabilities who may need classroom accommodations are encouraged to register with the Office of Student Disability Services. For more info, please contact the Office of Student Disability Services, Shuster Hall, Room 238. http://www.lehman.edu/student-disability-services Telephone: 718-960-8441 Email: disability.services@lehman.cuny.edu

Recording of Remote Classes:

Students who participate in this class with their camera on or use a profile image are agreeing to have their video or image recorded solely for the purpose of creating a record for students enrolled in the class to refer to, including those enrolled students who are unable to attend live. If you are unwilling to consent to have your profile or video image recorded, be sure to keep your camera off and do not use a profile image. Likewise, students who un-mute during class and participate orally are agreeing to have their voices recorded. If you are not willing to consent to have your voice recorded during class, you will need to keep your mute button activated and communicate exclusively using the "chat" feature, which allows students to type questions and comments live.

The link for the recordings will be made available in Blackboard


Tentative Schedule:

Week Day Date Topic P&C Due Dates HW
1108/27/2020Ch2, Ch3 - Variables, I/O
1209/01/2020Ch4, Ch5 - Decision Branching, Loops
2309/03/2020Ch6, Ch7 - Methods, Arrays 1D
2409/08/2020Ch8 - Objects and Classes P&C Activity 1 & 2 (Review Ch 2,3,4,5,6,7) Due 09/08 11:59pm HW 1 & 2 (Review Ch 2,3,4,5,6,7) Due 09/08 11:59pm
3509/10/2020Ch8 - Objects and Classes
3609/15/2020Ch8 - Objects and Classes
4709/17/2020Ch8 Objects and Classes, Ch9 - Inheritance
4809/22/2020Ch9 - Inheritance P&C Activity 3 (Ch 8) Due by 09/21 HW 3 (Reinforce Ch8) Due by 09/21 11:59pm
5909/24/2020Ch10 - Abstract Class and Interfaces P&C Activity 4 (Ch 9) Due by 09/24
5X09/29/2020Classes Follow Monday Schedule HW 4 (Reinforce Ch9) Due by 09/29 11:59pm
61010/01/2020Ch10 - Abstract Class and Interfaces P&C Activity 5 (Ch 10) Due by 10/01
61110/06/2020Ch11 - Exceptions, Project 1 is available HW 5 (Reinforce Ch10) Due by 10/06 11:59pm
71210/08/2020Ch12 - File I/O
71310/13/2020Ch12 - File I/O
81410/15/2020Ch13 - 2D Arrays P&C Activity 6 (Ch 11,12) Due by 10/14 11:59pm HW 6 (Reinforce Ch11,12) Due 10/15
81510/20/2020Project 1 Presentations are due
91610/22/2020Review for the Midterm Exam (ch 2-12)
91710/27/2020Exam Midterm (open on zybook & blackboard 10/23/2020 12:00AM, close on 10/30/2020 11:59PM P&C Activity 7 (Ch 13) Due by 10/28
101810/29/2020Ch14 - GUI
101911/03/2020Ch14 - GUI
112011/05/2020Ch14 - GUI
112111/10/2020Ch14 - GUI P&C Activity 8 (Ch 14) Due by 11/11 by 11:59pm
122211/12/2020Ch15 - Recursion
122311/17/2020Ch15 - Recursion, Project 2 is available
132411/19/2020Ch15 - Recursion
132511/24/2020Ch15 - Recursion
14X11/26/2020No Class - Thanksgiving
142612/01/2020Ch15 - Recursion P&C Activity 9 (Ch 15) Due 12/02 11:59pm
152712/03/2020Project 2 Presentations HW 7 (Reinforce Ch15) Due by 12/07
152812/08/2020Final Exam Review
16X12/10/2020Study Day

If you will be using your personal computer, please install JDK and Eclipse.


Java Development Kit(JDK) Download and Installation:

Click here for Java SE Development Kit 8 Downloads
Download Java SE Development Kit 8. Open the downloaded file and follow the installation instructions


Eclipse Download:

Click here for Eclipse Download
Download Eclipse. Open the downloaded file and follow the installation instructions