Back to Modules
CS102

Programming Fundamentals II

1 CreditsBoth

Description

This course focuses on fundamental concepts of developing programs using an object oriented approach. There will be an emphasis on writing clean and efficient code, and the ability to use an appropriate data structure or algorithm to solve problems. The Java programming language will be taught in depth.

Requisites

Prerequisites: IS111/SMT111/CS101/COR-IS1704 - Pre-req

Co-requisites: None

Anti-requisites: CS102/IS442 - Mutually Exclusive

Attributes

Department: SCIS

Course Level: Undergraduate

Tracks: IS/T4BS: Product Development Track

Areas: Advanced Business Technology Major Business Options Econ Major Rel/Econ Options Grad Req - Dig Tech/Data Ana (Intake 2024 onwards) IT Solution Development Core Information Systems Electives Social Sciences/PLE Major-related

Learning Outcomes

1. Demonstrate an understanding of the object oriented programming concepts of Class and Object 2. Demonstrate an understanding of inheritance: a. Explain the benefits of inheritance. b. Create a class which extends a parent class c. Override and overload parent class methods within a child class. d. Distinguish between inheritance of implementation (extends) and inheritance of design (implements). 3. Demonstrate an understanding of Object Oriented Design a. Use visibility modifiers (private, "default", protected and public) to implement appropriate abstraction and encapsulation. b. Explain cohesion and coupling c. Write a program which demonstrates polymorphism 4. Demonstrate an understanding of exceptions a. Describe exceptions. b. Write custom exceptions. c. Implement code that propagates and catches exceptions. 5. Write simple DOS batch files (e.g. compile & run) 6. Read UML class diagram and sequence diagram and translate them to code 7. Use arrays to solve problems. 8. Use Java packages to categorise Java files 9. Use basic data structures: lists, sets and maps 10. Use external libraries, and understand the workings of CLASSPATH.

Graduate Learning Outcomes

Disciplinary Knowledge, Critical thinking & problem solving, Self-directed learning

Competencies

Software Design, Agile Software Development, Applications Development, Algorithm Analysis, Software Testing