University of Technology, Sydney

Staff directory | Webmail | Maps | Newsroom | What's on

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 2019 is available in the Archives.

UTS: Engineering: Software
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 Programming for Informatics

Description

This subject provides basic skills in Java programming and software design, with no assumed knowledge of programming. It covers the topics of object-oriented (OO) programming concepts, data flow, control flow, arrays, and the basics of sorting and searching algorithms. The subject teaches and illustrates a design process using a set of design notations and design rules, and shows how to develop a correct, readable and reusable solution from a problem specification.

Subject learning objectives (SLOs)

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

1. Demonstrate a working knowledge of the basic constructs in the object-oriented language Java by being able to complete small programs.
2. Use the BlueJ programming environment to build simple software systems.
3. Design and code a software system that correctly implements a solution to a small problem defined by a specification, and follows specific design rules.
4. Comprehend and use basic program control constructs of sequence, selection and iteration.
5. Comprehend and use code that implements arrays and the basic sorting and searching algorithms.

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following faculty Course Intended Learning Outcomes (CILOs) and Engineers Australia (EA) Stage 1 competencies:

  • Identify and apply relevant problem-solving methodologies, which is linked to EA Stage 1 Competencies: 1.1, 2.1, 2.2, 2.3 (B.1)
  • Design components, systems and/or processes to meet required specifications, which is linked to EA Stage 1 Competencies: 1.3, 1.6, 2.1, 2.2, 2.3 (B.2)
  • Synthesise alternative/innovative solutions, concepts and procedures, which is linked to EA Stage 1 Competencies: 1.1, 3.3 (B.3)
  • Implement and test solutions, which is linked to EA Stage 1 Competencies: 2.2, 2.3 (B.5)
  • Apply abstraction, mathematics and/or discipline fundamentals to analysis, design and operation, which is linked to EA Stage 1 Competencies: 1.1, 1.2, 2.1, 2.2 (C.1)

Teaching and learning strategies

This subject is taught using a combination of lectures, tutorials, labs and assessments. The subject is taught progressively. The assessments are available progressively so that students can learn at their own pace.

The subject content is presented in four face-to-face hours each week: two hours of “live” lecture, and two hours of combined tutorial and laboratory class (i.e. the class listed as “cmp” in the student’s timetable).

Note: Students are expected to commit additional study time outside of class time. The university regards a 6 credit point subject as requiring 5-8 hours of study per week, in addition to the four hours of class time.

This subject is designed so that students can move through the course at a speed commensurate with the student’s ability and/or other demands upon the student's time, such as assessment deadlines in other subjects, paid-work, family commitments, and illness.

All assessment items form part of a sequence. A student may only attempt a new assessment item after passing the preceding assessment item in the sequence. This is the reason why a student does not receive marks for a later assessment item when the student has not completed an earlier assessment item. The enforcement of a sequence of assessments also better utilises the face-to-face tutoring resources; when a tutor helps a student with a particular assessment item, the tutor can safely assume that a student has completed the prerequisite material. Also, feedback on earlier assessments helps the students improve and deepen their knowledge in order to attempt and prepare for later assessment items.

The use of live lectures and demonstrations as vehicles of motivation, rather than sources of subject content knowledge. Students will prepare for most live lectures by watching YouTube videos. (Any such lecture pre-viewing will be specified in UTSOnline, and/or communicated by broadcast email, in the week leading up to the live lecture.) Lecture sessions will consist of a live lecture supplemented by opportunities for students to complete provided exercises to develop their understanding and skills. Students may work together on those exercises, and the lecturer will be available to assist and answer questions.

Repeated testing, immediate scoring, and one-on-one tutoring, which also enhances the personal-social aspect of the educational process. This is facilitated in two ways. In the first hour (approximately) of each two-hour lab session, students do lab tests under closed book exam conditions. In that time period, students may receive immediate, repeated automatic testing and scoring, by uploading their test answers to the online test system (see details in the assessment section). In the second hour, a student may seek help from a tutor on the assessment item(s) that they could not complete during the previous hour, or on the assessment item that the student will attempt in their next lab. In that second hour, students may also ask any questions related to the subject content, not just questions related to specific assessment items. Students are welcome to seek out a tutor’s help in the second hour of any lab session, not just the lab session in which they are enrolled.

Content (topics)

1. The BlueJ environment.
2. Data Flow: assignment; input, output; numeric expressions, and calculations.
3. OO Programming: class; object; constructor; visibility modifiers; local variables.
4. Control Flow: selection and repetition.
5. Data Structures and Basic Algorithms: arrays; sorting and searching.
6. Design notations, processes, and rules.

Assessment

Assessment task 1: Pass / fail mastery tests conducted in weekly tutorial / labs

Intent:

The purpose of these tests is to establish that a student has acquired the minimum knowledge and programming skills required to pass this subject.

Objective(s):

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

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.1, B.2 and B.5

Type: Quiz/test
Groupwork: Individual
Weight: 50%
Length:

In each weekly two hour lab session, a portion of the first hour will be devoted to mastery tests.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Correctness of the answer 20 1, 2, 3, 4, 5 B.1
Application of Methodology 20 1, 2, 3, 4, 5 B.1
Correctness of design/implementation 20 1, 2, 3, 4, 5 B.2
Functionality of design 20 1, 2, 3, 4, 5 B.2
Functionality and correctness of design 20 1, 2, 3, 4, 5 B.5
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 2: Assignment

Intent:

The purpose of this assessment task is to provide students with the opportunity to show they can apply the basic skills and knowledge of programming in a context where it is not made explicit exactly which basic skills and knowledge need to be used.

Objective(s):

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

1, 2, 3 and 4

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.1, B.2, B.5 and C.1

Type: Quiz/test
Groupwork: Individual
Weight: 30%
Criteria linkages:
Criteria Weight (%) SLOs CILOs
Correctness of the answer 17 1, 2, 3, 4 B.1
Application of Methodology 17 1, 2, 3, 4 B.1
Correctness of design/implementation 17 1, 2, 3, 4 B.2
Functionality of design 17 1, 2, 3, 4 B.2
Functionality and correctness of design 17 1, 2, 3, 4 B.5
Application of theory 15 1, 2, 3, 4 C.1
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Assessment task 3: Additional lab exercises conducted in weekly tutorial / labs

Intent:

The purpose of these tests is to (1) deepen the minimum knowledge and programming skills required to pass this subject and (2) broaden the students grasp of those skills and concepts by presenting further case studies.

Objective(s):

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

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following course intended learning outcomes (CILOs):

B.1, B.2, B.3, B.5 and C.1

Type: Project
Groupwork: Individual
Weight: 20%
Length:

In each weekly two hour lab session, a portion of the first hour will be devoted to both the mastery tests and these lab exercises.

Criteria linkages:
Criteria Weight (%) SLOs CILOs
Correctness of the answer 14 1, 2, 3, 4, 5 B.1
Application of Methodology 14 1, 2, 3, 4, 5 B.1
Correctness of design/implementation 14 1, 2, 3, 4, 5 B.2
Functionality of design 14 1, 2, 3, 4, 5 B.2
Creativity of the solution 14 1, 2, 3, 4, 5 B.3
Functionality and correctness of design 14 1, 2, 3, 4, 5 B.3, B.5
Application of theory 16 1, 2, 3, 4, 5 C.1
SLOs: subject learning objectives
CILOs: course intended learning outcomes

Minimum requirements

Students who complete all the pass/fail tests (Assessment Task 1) are guaranteed a minimum mark/grade for this subject of 50/PASS.

Students must have completed all pass/fail tests (Assessment Task 1) for marks from additional lab exercises (Assessment Task 3) to be included in the aggregate mark.

Students must have completed all pass/fail tests and also all additional lab exercises (Assessment Tasks 1 and 3) for marks from the Assignment (Assessment Task 2) to be included in the aggregate mark.

Required texts

Zybook’s 48023: Programming Fundamentals. To purchase access to this online textbook:

  1. Login at https://learn.zybooks.com/ using the login provided to you, or create a login according to the instructions given to you.
  2. Enter the zyBook code provided at the first lecture or listed in UTSonline
  3. Subscribe

Recommended texts

Nielsen, F. (2009) Concise and practical introduction to programming algorithms in java.

Parsons, D (2012), Foundational Java.

The above two electronic books are downloadable from the UTS library. These books may be downloaded for free by any enrolled UTS student. While these books will provide useful supplementary reading to issues discussed in lectures, and some parts of these books will be cited in lectures, laboratories and tutorials will NOT follow these books closely.

The following books are conveniently available from the UTS library as an electronic resource, but (unlike the books by Nielsen and Parsons) these books are not downloadable as a single PDF (but some are downloadable chapter-by-chapter)):

  • Cadenhead, "Sams teach yourself Java 2 in 24 hours". (But you won't learn Java in 24 hours.)
  • Deitel, "Java for programmers".
  • Fain, "Java programming 24-hour trainer". (But you won't learn Java in 24 hours, and this book may be too advanced for many 48023 students.)
  • Garrido, "Object-oriented programming from problem solving to Java". This book is probably too advanced for most 48023 students. It may, however, suit people who have already programmed in another language.

  • Greanier, "Java foundations"

  • Lemay, "Sams teach yourself Java 2 in 21 days". (But you won't learn Java in 21 days.)
  • Levenick, "Simply Java: an introduction to Java programming"
  • McCormack, "Java getting down to business".
  • Poo, "Object-oriented programming and Java". This complete book is available for download, but it is probably too advanced for most 48023 students. It may, however, suit people who have already programmed in another language.
  • Russell, "Java programming for the absolute beginner"
  • Sanchez, "Java programming for engineers"

Other recommended books that are only available from the library in hard copy are:

  • Wu, Thomas, An Introduction to Object-Oriented Programming with Java (5th edition), McGraw-Hill. This book has been the essential text in recent semesters and is highly recommended. All editions are useful and several copies are in the library.
  • Schildt, Herbert. (Latest edition). Java: The Complete Reference. McGraw-Hill. This book is a readable but thorough reference book for Java 2. Students should continue to find it useful in any Java-based programming subject that they do after this subject. Also, copies are available in the UTS library.
  • Gaddis, T. Starting out with Java: Early Objects, Addison Wesley. Copies are available in the UTS library
  • Gaddis, T. Starting out with Java: From Control Structures through Objects, Addison Wesley. Copies are available in the UTS library

References

The following web sites may be useful as references:

http://www.docs.oracle.com/javase/7/docs/api/
http://www.oracle.com/technetwork/java/codeconv-138413.html
http://download.oracle.com/javase/tutorial/index.html

http://www.leepoint.net/notes-java
http://www.bluej.org
http://www.bluej.org/doc/documentation.html

Also, googling the two words "java" and "tutorial" may locate useful web sites. Furthermore, for help on a specific topic about java, google "java" and "tutorial" plus the topic name (e.g. java tutorial while loop).

The following website lists Introductory Java textbooks that are free and downloadable:

Note: The subject coordinator cannot vouch for the usefulness of any of the books listed on the above website.

The following books are available as hardcopy only from the UTS library:

  • Anderson, "Java illuminated : an active learning approach" CITY CAMPUS 005.133 ANDJ

  • Barnes, "Object oriented programming with Java: an introduction" LRS 005.133 BARN

  • Barnes, "Objects first with Java: a practical introduction using Blue J" LRS and CITY CAMPUS 005.117 BARN

  • Bell, "Java for students" LRS 005.133 BELL

  • Bishop, "Java gently for engineers and scientists" LRS 005.133 BISH

  • Bishop, "Java gently" LRS 005.133 JAVY

  • Brinch Hansen, "Programming for everyone in Java" LRS 005.133 BRIN

  • Burd, "Beginning programming with Java for dummies" LRS 005.133 BURD

  • Burd, "Java for dummies" CITY CAMPUS 005.2762 BURD

  • Cadenhead, "Sams teach yourself Java 2 in 24 hours". CITY CAMPUS 005.133 CADE (Also available as an electronic resource, but the whole book is not downloadable as a single PDF.) (And you won't learn Java in 24 hours.)

  • Deitel, "Java : how to program". LRS 005.133 DEIE

  • Deitel, "Java, late objects version: how to program" CITY CAMPUS 005.133 DEIP

  • Deitel, "The complete Java training course". LRS 005.133 DEIT

  • Farrell, "Java programming" CITY CAMPUS and LRS 005.133 FARR

  • Grover,"Programming with Java: a multimedia approach" LRS 006.76 GROV

  • Horstmann, "Big Java". (All editions useful.) LRS 005.133 HORS

  • Horstmann, "Computing concepts with Java essentials". (All editions useful.) LRS 005.133 HORT

  • Horstmann, "Core Java". (Conveniently available as an electronic resource, but probably too advanced for 48023 students.)

  • Horstmann, "Java concepts" CITY CAMPUS 005.133 HORN

  • Horstmann, "Java for Everyone" CITY CAMPUS 005.133 HORJ

  • Horstmann, "Java for Everyone: late objects" CITY CAMPUS 005.133 HORS

  • Kolling, "Introduction to programming with Greenfoot" CITY CAMPUS 794.81526 KOLL

  • Lemay, "Sams teach yourself Java 2 in 21 days". LRS 005.133 LEMY (Also available as an electronic resource, but the whole book is not downloadable as a single PDF.) (And you won't learn Java in 21 days.)

  • Levenick, "Simply Java: an introduction to Java programming". LRS 005.133 LEVE (Also available as an electronic resource, but the whole book is not downloadable as a single PDF.)

  • Lewis, "Java foundations" CITY CAMPUS 005.133 LEWJ (Also available as an electronic resource, but the whole book is not downloadable as a single PDF.)

  • Lewis, "Java software solutions: foundations of program design" CITY CAMPUS 005.133 LEWS

  • Lewis, "Java: a complete course" LRS 005.2762 LEWI

  • Mcintosh, "Talk Java to me: the interactive click, listen, and learn guide to Java programming" LRS 005.133 JAMC

  • Mueller, "Java eLearning kit for dummies" CITY CAMPUS 005.133 MUEL

  • Parsons, "Introductory Java". LRS 005.71262 PARS (ED.2)

  • Reges, "Building Java programs: a back to basics approach". CITY CAMPUS 005.133 REGS (ED.2)

  • Savitch, "Absolute Java". (All editions useful.) Pearson/Addison-Wesley, c2006. LRS 005.133

  • Savitch,"Java: an introduction to computer science and programming". LRS 005.133 SAVI

  • Savitch,"Java: an introduction to problem solving & programming". CITY CAMPUS 005.133 SAVI

  • Schildt, "Java programming: a comprehensive introduction" CITY CAMPUS 005.133 SCHI

  • Schildt, "Java: a beginner's guide" CITY CAMPUS 005.13 SCHI

  • Wu, "A comprehensive introduction to object-oriented programming with Java" CITY CAMPUS 005.117 WUCT

Other resources

At least once a week, students are required to login and read notices on the University's standard web-based course management system,

UTSOnline: https://online.uts.edu.au/

All subject material including lecture, tutorial and laboratory notes, and the assignment specifications will be posted on UTSOnline.

Students unfamiliar with UTSOnline should ask for a demonstration in their scheduled lab session.

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

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”.

You can sign up for U:PASS sessions via U:PASS website http://tinyurl.com/upass2017 Note that sign up is not open until week 2, as it’s voluntary and only students who want to go should sign up.

If you have any questions or concerns about U:PASS, please contact Georgina at upass@uts.edu.au, or check out the website.