Advanced Programming and Design
Description
Advanced Programming and Design is an intensive course aimed at equipping students with the skills and knowledge required to become proficient and efficient software developers. Building on a solid foundation in object-oriented programming and Java, students will explore advanced language features not covered in earlier courses, including generics, memory management, and JVM performance tuning. The course introduces functional programming paradigms, with a focus on Streams, functional interfaces, and lambda expressions. Principles of multi-threaded programming will be examined to prepare students for concurrent application development. Emphasis is placed on professional software engineering practices, including clean code, continuous refactoring, test-driven development, object-oriented and architectural design patterns, and adherence to SOLID principles. Throughout the course, students will engage in extensive hands-on programming exercises to reinforce theoretical concepts and cultivate best practices in software design and development.
Requisites
Prerequisites: CS102/IS442 - Pre-req
Co-requisites: None
Anti-requisites: None
Attributes
Department: SCIS
Course Level: Undergraduate
Tracks: IS/T4BS: Product Development Track
Areas: Business Options IS Depth Electives IT Solution Development Electives Software Engineering Core (Intake 2022 to 2023) Software Engineering Core (Intake 2024 onwards)
Learning Outcomes
Graduate Learning Outcomes
Disciplinary Knowledge, Critical thinking & problem solving, Collaboration and leadership, Communication, Self-directed learning, Resilience
Competencies
Software Design, Agile Software Development, Applications Development, Software Testing