Chat with us, powered by LiveChat

Software Design and Construction

Software Design and Construction is available as a postgraduate-level subject offered by the International College of Management, Sydney (ICMS). Please click the button below to find a postgraduate course suitable for you.

 

Subject Code:

ICT701A

Subject Type:

Core

Subject Level:

700

Credit Points:

4 credit points

Subject Aim:

Software technologies are rapidly evolving to serve the ever-changing needs of individuals, organisations, and governments across many business domains. They make our lives easier and more accessible than ever. It is evident that the advancements in the digital landscape are tectonic and software solutions are at the centre of their realisation in various emerging areas that solve real-world problems such as artificial intelligence, cybersecurity, big data analytics, internet of things, quantum computing, and human augmentation.

This subject equips students with the key concepts and practices of contemporary software design and development. Throughout this subject, students will survey the principles, models, and methods of the object-oriented programming (OOP) paradigm by adopting the Python philosophy and built-in functions.

In this subject, students will deep-dive into the Python ecosystem and execute its popular modules, packages, libraries, and tools, developing a practical understanding of their application on OOP constructs. They will apply the Object-Oriented Analysis and Design (OOAD) approach incorporating object-oriented modelling techniques, design patterns, and testing in a Python environment.

Upon the completion of this subject, students will be ready to take the PCEP™ (Certified Entry-Level Python Programmer) and PCAP™ (Certified Associate in Python Programming) certification exams with Python Institute

Learning Outcomes:

a) Apply principles of structured and object-oriented programming paradigms via accurately utilising a programming language, including its inherent syntax, semantics, and constructs.

b) Construct a software blueprint using object-oriented design approaches and abstract modelling.

c) Implement object-oriented design principles to execution via adopting an OOP philosophy, language, and practices in a modern IDE environment.

d) Critically analyse a business context and build a functioning software solution to meet objectives, applying software design and development tools and techniques.

e) Apply testing methods and code reviews to software programs to avoid coding errors, handle program flow control, and ensure readable coding.

Assessment Information:

Learning outcomes for this subject are assessed using a range of assessment tasks as described in the table below.

Broad topics to be covered:

Topic: 
Week 1 – 2: Python Language and Environment 

  • Computer programming and SDLC 
  • Python in computer programming and its applications 
  • Built-in object types, variables, and operators 
  • Installing and using Python 
Week 3 – 4: Python Statements with Data Structures 

  • Boolean expressions and logical and bitwise operations 
  • Conditions and conditional execution 
  • Loops and iterations 
  • Error handling 
  • Lists, list comprehensions, and list processing 
  • Files and file iterators 
  • Dictionaries and dictionary view iterables 
Week 5 – 6: Python Functions and Generators with Data Structures 

  • Functions, definitions, and calls 
  • Tuples, dictionaries, and data processing 
  • Scopes, arguments, and nested functions 
  • List comprehensions and functions 
  • Generator functions and expressions 
  • Packages, modules, and module coding using functions 
  • Exception handling  
Week 7: Object-Oriented Design and Programming 

  • Fundamentals of Object-Oriented Programming 
  • Objects and relationships: classes, modules and packages, basic and multiple inheritance, abstract classes, polymorphism, and encapsulation 
  • Object-oriented modelling with UML 
Week 8 – 10: Object-Oriented Design and Programming with Python 

  • Python and OOP 
  • Objects in Python 
  • Class coding with Python 
  • Python built-in functions 
  • Python Object-Oriented Design Patterns 
  • File I/O, strings, and serialisation 
  • Exception handling 
Week 11: Testing OO Programs 

  • Object-Oriented (OO) testing techniques 
  • OO testing in Python 
  • Python’s built-in test library and unit testing 
  • Automated OO testing 

Please note that these topics are often refined and subject to change so for up to date weekly topics and suggested reading resources, please refer to the Moodle subject page.