University of Technology Sydney

48023 Programming Fundamentals

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: Engineering: Computer Science
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Anti-requisite(s): 31267 Programming Fundamentals AND 31465 Object-oriented Programming AND 31488 Programming Foundations AND 31508 Programming Fundamentals AND 37171 Introduction to Programming for Mathematics AND 41039 Programming 1

Description

This subject teaches introductory-level Java programming and software design, with no assumed prior knowledge of programming. It covers the topics of object-oriented programming concepts, data flow, control flow, and basic data structures.

Subject learning objectives (SLOs)

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

1. Demonstrate a working knowledge of basic programming constructs by being able to develop, adapt and debug small programs in Java. (D.1)
2. Design and develop a software system that correctly implements a solution to a small problem defined by a specification, and follows specific design rules. (C.1)

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):

  • Design Oriented: FEIT graduates apply problem solving, design and decision-making methodologies to develop components, systems and processes to meet specified requirements. (C.1)
  • Technically Proficient: FEIT graduates apply abstraction, mathematics and discipline fundamentals, software, tools and techniques to evaluate, implement and operate systems. (D.1)

Contribution to the development of graduate attributes

Engineers Australia Stage 1 Competencies

This subject contributes to the development of the following Engineers Australia Stage 1 Competencies:

  • 1.1. Comprehensive, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline.
  • 1.2. Conceptual understanding of the mathematics, numerical analysis, statistics, and computer and information sciences which underpin the engineering discipline.
  • 2.2. Fluent application of engineering techniques, tools and resources.
  • 2.3. Application of systematic engineering synthesis and design processes.

Teaching and learning strategies

This subject is taught using a combination of lectures, readings, online exercises and labs.

The lectures are the primary venue where key concepts are taught and where announcements are made. They are streamed online and it is strongly encouraged that students attend the live stream if possible. Chat, polls, and other feedback tools are used extensively so that the lecturer can respond to questions and adapt to student needs.

The readings supplement the lectures by covering the same material in greater detail and at a more relaxed pace.

The online exercises allow students to put the knowledge gained from lectures and readings to the test, by writing code and creating running programs that solve specific tasks. Students can run their code in an online environment that provides immediate feedback about whether their code works, and whether it successfully solves the specified tasks. In this way they receive direct feedback and can make improvements during the semester.

The labs focus on providing opportunities for hands-on practice with guidance from tutors and peers, and follow a flipped learning approach. This affords students ample time to engage with the lectures and readings prior to attending the labs, where they will hone their skills through collaboration, feedback, and advice.

Content (topics)

  1. Data Flow: assignment; input, output; numeric expressions, and calculations.
  2. OO Programming: class; object; constructor; visibility modifiers; local variables.
  3. Control Flow: selection and repetition.
  4. Design notations, processes, and rules.

Assessment

Assessment task 1: Weekly exercises

Intent:

To demonstrate programming knowledge and ability by designing and implementing small programs or adapting existing programs.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1 and 2

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Exercises
Groupwork: Individual
Weight: 40%
Length:

One or more hours per week

Assessment task 2: Assignment

Intent:

To demonstrate ability to design and implement a large object-oriented structure that follows a specification.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1 and 2

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Project
Groupwork: Individual
Weight: 30%

Assessment task 3: Lab engagement and knowledge demonstration

Intent:

To use knowledge of programming to make high-quality contributions and achieve suitable outcomes.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1 and 2

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Exercises
Groupwork: Individual
Weight: 30%

Minimum requirements

ln order to pass the subject, a student must achieve an overall grade of 50% or more.

Required texts

All required readings will be provided via the Ed platform.

Recommended texts

Introductory Texts

  1. H. Schildt, “Java: A Beginner’s Guide”, 8th Ed., McGraw-Hill Education, 2018.
  2. K. Sierra & B. Bates, "Head First Java", 2nd Ed., O'Reilly, 2005. (Only covers up to Java 5, but the differences won't matter for this subject)

More Advanced Texts

  1. C. S. Horstmann, “Core Java, Volume I – Fundamentals”, 11th Ed., Prentice Hall, 2018.
  2. J. Bloch, “Effective Java”, 3rd Ed., Addison-Wesley Professional, 2018. (Advanced text.)
  3. H. Schildt, "Java: The Complete Reference", 11th Ed., McGraw-Hill Education, 2019.

Other resources

Your online learning environment

This subject uses two online learning environments, Canvas and Ed.

  • Canvas is used to information about how subject is structured and how it is assessed, and to release marks for each assesment activity. It is recommended that you check Canvas early on in the session to orient yourself to the subject, and as required to check your grade.
  • Ed is used for the actual subject delivery. It is recommended that you check it frequently (at least weekly) to stay up to date with announcements, work through the learning material, and submit your work.

Students are also required to check their UTS email account at least once a week.

Other online resources

It is recommended that students search for additional resources online for help on specific topics. Combining java, tutorial and a specific topic (e.g. java tutorial while loops) will invariably yield a multitude of useful resources.

Students may also benefit from joining and using online programming communities, such as stackoverflow.com

U:PASS

UTS Peer Assisted Study Success is a voluntary “study session” where you will be studying the subject with other students in a group. It is led by a student who has previously achieved a distinction or high distinction in the subject area, and who has a good WAM. Leaders will prepare activities for you to work on in groups based on the content you are learning in lectures and tutorials. It’s really relaxed, friendly, and informal. Because the leader is a student just like you, they understand what it’s like to study the subject and how to do well, and they can pass those tips along to you. Students also say it’s a great way to meet new people and a “guaranteed study hour”.

More information about U:PASS and how to sign up for it will be shared during the teaching session. If you have any questions or concerns about U:PASS, please contact upass@uts.edu.au, or check out the website.