Course Objective
Introduces more advanced elements of object-oriented programming for students in CS and CS-related degree programs. Specific topics to be covered in the course include:
- Abstract Classes
- Abstract Methods
- Method Overloading and Overriding
- Interfaces
- Inheritance
- Polymorphism
- Sorting Algorithms
Course Outcomes
- Analyze and explain the behavior of simple programs involving the following fundamental programming constructs: assignment, I/O (including file I/O), selection, iteration, methods
- Write a program that uses each of the following fundamental programming constructs: assignment, I/O (including file I/O), selection, iteration, methods
- Break a problem into logical pieces that can be solved (programmed) independently.
- Develop, and analyze, algorithms for solving simple problems.
- Use a suitable programming language, and development environment, to implement, test, and debug algorithms for solving simple problems.
- Write programs that use each of the following data structures (and describe how they are represented in memory): strings, arrays
- Explain the basics of the concept of recursion.
- Write, test, and debug simple recursive functions and procedures.
- Explain and apply object-oriented design and testing involving the following concepts: data abstraction, encapsulation, information hiding, inheritance, and polymorphism. Utilize tools such as Unified Modeling language (UML) to represent object oriented designs.
- Use a development environment to design, code, test, and debug simple programs, including multi-file source projects, in an object-oriented programming language.
- Implement basic error handling
- Solve problems by creating and using sequential search, binary search, and quadratic sorting algorithms (selection, insertion)
- Determine the time complexity of simple algorithms.
- Apply appropriate problem-solving strategies
- Use APIs (Application Programmer Interfaces) and design/program APIs
Program Outcomes
- An ability to apply knowledge of computing and mathematics appropriate to the program's student outcomes and to the discipline.
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs.
- An ability to use current techniques, skills, and tools necessary for computing practices.
- An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
- An ability to apply design and development principles in the construction of software systems of varying complexity.
The
syllabus and the information on course administration are provided
here
Grading
Assignment | Total points |
Assignments | 26 |
Project | 12 |
Quizzes(2) | 12 |
Exams(2) | 50 |
Lab Exercises(Extra Credits) | 10 |
Total | 100 |
Tentative Schedule
Date | Topic/Activity | Assignments/Tests |
Week 1 |
Course Preliminaries: Syllabus, Class policies CS115 review quiz
CS115 Review: User defined classes Static/non-static methods |
CS115 review lab |
Week 2 |
CS115 Review (cont.): Service/client classes Java defined classes (Scanner class) Variable Scope Command line input |
Lab-Exercise-1 |
Week 3 |
Wrapper classes Enum datatype Packaging Generating Javadocs |
Lab-Exercise-2 HW1 due |
Week 4 |
Data structures: Single dimension arrays Sequential search |
Lab-Exercise-3 |
Week 5 | Data structures: Multi-dimensional arrays Vector/ArrayList class |
Lab-Exercise-4 HW2 due |
Week 6 | Algorithms: Sorting algorithms |
Programming Quiz 1 |
Week 7 | Binary search Class Inheritance |
Lab-Exercise-5 HW3 due |
Week 8 | Class Inheritance: Method Overriding vs Method Overloading |
Midterm |
Week 9 | Abstract classes & methods |
Lab-Exercise-6 HW4 due |
Week 10 | Polymorphism Interfaces |
Lab-Exercise-7 |
Week 11 | Project Discussion
Exceptions: User Defined Exception Handling |
Lab-Exercise-8 HW5 due |
Week 12 | Project discussion I/O Streams Binary Files Object Serialization |
Lab-Exercise-9 |
Week 13 | Lecture on recursion Project Discussion Select project demo slot |
Programming Quiz 2 HW6 due |
Week 14 | Project Discussion Final Exam review |
HW7 (extra-credit) due |
Attendance Policy
Students are expected to attend classes without fail and sign the attendance sheet distributed in class. Absences will be reported to academic affairs and multiple absences may also affect your final grade.
Honor Code
The university academic dishonesty policies are in force for the course. Please refer to the handbook for details. Students will not collaborate on assignments or homeworks unless it is explicitly allowed. Students will also read, sign the
College of Science academic integrity pledge and submit to the instructor.