Course Number and Title: CSC 164 Computer Science II
This course, the second in a series, emphasizes the use of classes and objects. Topics include object-oriented programming concepts, abstraction, algorithms, encapsulation, inheritance, and polymorphism. Students write programs that are fault tolerant using multiple files, modules, and class hierarchies.
- Discuss significant trends and societal impacts related to computing, software, and the Internet. (CCC 4, 5; PGC 1, 2, 3)
- Construct Object-Oriented Programming (OOP) solutions for reuse, using multiple modules, abstract data types (ADTs) that incorporate encapsulation, polymorphism, data abstraction, inheritance, and information hiding. (CCC 2, 6; PGC 1, 2, 3)
- Create programming solutions that use data structures and existing libraries. (CCC 2, 6; PGC 1, 2, 3)
- Differentiate between object-oriented and structured programming methodologies. (CCC 2, 6; PGC 1, 3)
- Apply the principles of user interface design. (CCC 2, 6; PGC 2, 3)
See Core Curriculum Competencies and Program Graduate Competencies at the end of the syllabus. CCPOs are linked to every competency they develop.
Upon completion of this course, the student will:
- Discuss significant trends and societal impacts related to computing, software, and the Internet.
- Discuss and identify ethical issues that arise in software development, and address them technically and ethically.
- Identify and explain recent societal trends and issues related to assignments, e.g., securing medical devices such as pacemakers.
- Construct Object-Oriented Programming (OOP) solutions for reuse, using multiple modules, abstract data types (ADTs) that incorporate encapsulation, polymorphism, data abstraction, inheritance, and information hiding.
- Create OOP programs that make appropriate use of encapsulation, data abstraction, and information hiding.
- Test, debug, and correct OOP programs employing encapsulation, data abstraction, and information hiding.
- Design, test, and secure OOP programs from current security vulnerabilities.
- Analyze the execution of searching and sorting algorithms and prepare a walk-through or demonstration.
- Produce user interfaces that incorporate simple color models and handle events.
- Create programming solutions that use data structures and existing libraries.
- Create OOP programs that make appropriate use of simple data structures and library modules such as arrays, lists, and dictionaries.
- Analyze programs, and evaluate efficiency by applying different data structures in different data sets.
- Compare and contrast OOP programs using different data structures in terms of modularity, reusability, and maintainability.
- Differentiate between object-oriented and structured programming methodologies.
- Identify the key characteristics of the object-oriented, structured programming.
- Outline the strengths and weaknesses of the object-oriented and structured programming paradigms.
- Analyze programs that use the object-oriented and structured paradigms.
- Apply the principles of user interface design.
- Identify user interface design issues during design phase.
- Discuss the issues of interface design such as human factors, ergonomics, psychological, and consistency, etc.
- Implement solutions based on the user interface requirements and error-handling.
Students must demonstrate proficiency on all CCPOs at a minimal 75 percent level to successfully complete the course. The grade will be determined using the Delaware Tech grading system:
Students should refer to the Student Handbook for information on the Academic Standing Policy, the Academic Integrity Policy, Student Rights and Responsibilities, and other policies relevant to their academic progress.
Calculated using the following weighted average
Percentage of final grade
Lecture Exams: 4 exams weighted at 8% each (summative)
Final Exam (summative)
Programming assignments: 7 are weighted at 6% each (summative)
Assessments are determined by the course instructor with a percentage of 15% total (formative)
- Apply clear and effective communication skills.
- Use critical thinking to solve problems.
- Collaborate to achieve a common goal.
- Demonstrate professional and ethical conduct.
- Use information literacy for effective vocational and/or academic research.
- Apply quantitative reasoning and/or scientific inquiry to solve practical problems.
- Design and implement moderate to complex programs that meet specifications, perform reliably, and are maintainable using the principles of software engineering.
- Apply object oriented design principles to software analysis and programming.
- Analyze currently available operating systems and software development platforms to design and implement software applications that are effective and secure.
- Develop programs in assembly language that directly address the computer architecture.
- Develop technical documentation to meet end user requirements.
The College is committed to providing reasonable accommodations for students with disabilities. Students are encouraged to schedule an appointment with the campus Disabilities Support Counselor to request an accommodation needed due to a disability. A listing of campus Disabilities Support Counselors and contact information can be found at the disabilities services web page or visit the campus Advising Center.