University of Technology Sydney

36122 Python Programming

Warning: The information on this page is indicative. The subject outline for a particular session, location and mode of offering is the authoritative source of all information about the subject for that offering. Required texts, recommended texts and references in particular are likely to change. Students will be provided with a subject outline once they enrol in the subject.

Subject handbook information prior to 2024 is available in the Archives.

UTS: Transdisciplinary Innovation
Credit points: 8 cp

Subject level:

Postgraduate

Result type: Grade, no marks

There are course requisites for this subject. See access conditions.

Description

Programming is the process of designing, writing, testing, and maintaining computer programs, which are sets of instructions that a computer can execute to perform specific tasks.

This subject provides students with a basic understanding of the fundamental programming concepts that are inherent in all computer programs. In addition, an introduction is given to the principals involved in designing, developing, testing and debugging software applications. Students obtain knowledge and skills with procedural and object-oriented programming.

Specific concepts include defining data types, control flow, iteration, functions and recursion. Advanced object-oriented programming topics including encapsulation, inheritance, polymorphism and abstraction will also be introduced. Students are able to reinterpret a general problem into a computer problem and apply the object-oriented analysis and design fundamentals to develop source code.

Subject learning objectives (SLOs)

Upon successful completion of this subject students should be able to:

1. Apply programming style conventions to consistently write readable code.
2. Create entire procedural programs based on descriptive problem specifications.
3. Demonstrate a profound understanding of programming principles, encompassing data types, variables, operators, and control-flow structures such as simple statements, sequences, if-then-else constructs, while loops, and functions
4. Construct and evaluate code for recursively-defined numerical functions and array manipulations
5. Apply fundamental concepts of Object-Oriented Programming (OOP) including encapsulation, inheritance, and polymorphism to design and implement modular, reusable, and extensible software solutions.
6. Apply effective testing methods and assess programs through debugging, showcasing the ability to create a set of tests for a small program or function.
7. Proficiently use standard library functions to enhance program functionality.
8. Design and implement Graphical User Interfaces (GUIs) for applications, integrating user-friendly interactive elements to enhance the user experience and functionality.

Contribution to the development of graduate attributes

The subject provides opportunities for you as a student to understand relationships and processes within systems as well as to apply theoretical frameworks to examine contemporary real-world cases. This subject provides students with the fundamentals of the software development process, emphasizing essential skills in testing and debugging. It serves as a foundational prerequisite for more advanced studies in programming languages, data science and machine learning. The subject also focuses on developing your communication skills to engage audiences and inform decision-making. Finally, the subject invites you to explore your ethical responsibilities in data-rich professional contexts and begin developing your skills as a reflective data practitioner.

So your experiences as a student in this subject support you to develop the following graduate attributes (GA):

GA 1 Sociotechnical systems thinking

GA 2 Creative, analytical and rigorous sense making

GA 3 Create value in problem solving and inquiry

GA 4 Persuasive and robust communication

GA 5 Ethical citizenship

Teaching and learning strategies

Blend of online and face to face activities: The subject is offered through a series of teaching sessions which blend online and face-to-face learning. Students learn through interactive lectures and classroom activities making use of the subject materials on canvas. They also engage in individual and collaborative learning activities to understand and apply text analysis techniques in diverse settings.

Authentic problem based learning: This subject offers a range of authentic data science problems to solve that will help develop students’ text analysis skills. They work on real world data analysis problems for broad areas of interest using unstructured data and contemporary techniques.

Collaborative work: Group activities will enable students to leverage peer-learning and demonstrate effective team participation, as well as learning to work in professional teams with an appreciation of diverse perspectives on data science and innovation.

Content (topics)

  1. Problem solving, software development methodologies and algorithms.
  2. Introduction to the Python programming language, operators and data types.
  3. Conditional logic and loops
  4. Strings, substring and files
  5. Functions and data structures
  6. Objects, Class diagrams and UML
  7. Abstract Classes, Inheritance, Polymorphism
  8. Testing, error handling and debugging
  9. Object Oriented Design principles

Assessment

Assessment task 1: Weekly Submission

Objective(s):

This task addresses the following subject learning objectives:

1, 2, 3, 4, 5, 6, 7 and 8

Groupwork: Individual
Weight: 20%
Criteria:

Understanding of programming principles, covering data types, variables, operators, and control-flow structures, including if-then-else constructs, while loops, and functions.

Exploring topics such as recursive functions and array manipulations, and they will apply Object-Oriented Programming (OOP) principles like encapsulation, inheritance, and polymorphism for creating modular and reusable software solutions.

Testing and debugging skills, including the ability to design Graphical User Interfaces (GUIs) that enhance user experience and functionality.

Assessment task 2: Quiz

Intent:

Students complete two online quizzes to evaluate their understanding of all teaching materials.

Objective(s):

This task addresses the following subject learning objectives:

3, 4, 5, 6 and 8

Type: Quiz/test
Groupwork: Individual
Weight: 40%
Criteria:

Understanding of programming principles, covering data types, variables, operators, and control-flow structures, including if-then-else constructs, while loops, and functions.

Exploring topics such as recursive functions and array manipulations, and they will apply Object-Oriented Programming (OOP) principles like encapsulation, inheritance, and polymorphism for creating modular and reusable software solutions.

Testing and debugging skills, including the ability to design Graphical User Interfaces (GUIs) that enhance user experience and functionality.

Assessment task 3: Assignment 1 - Software Design and Development

Intent:

This assignment encourages you to think holistically about software development, combining functionality, code design, testing practices, and user interaction.

Objective(s):

This task addresses the following subject learning objectives:

5, 6, 7 and 8

Type: Report
Groupwork: Group, individually assessed
Weight: 40%
Criteria:

This assignment encourages the integration of object-oriented programming (OOP) principles and the implementation of unit testing for a robust, maintainable codebase. Another important point of this assignment lies in the inclusion of a graphical user interface (GUI), transforming your creation into a user-friendly and interactive tool

Minimum requirements

Students must achieve at least 50% of the subject’s total marks.