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 2017 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

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.

The teaching and learning strategy of this subject is based on the Keller Plan:

  • Keller, F. S. (1966) A personal course in psychology. In R. Ulrich, T. Stachnik, and J. Mabry (Eds.), Control of human behavior. Glenview, Ill.: Scott, Foresman, Inc. 91-93.
  • Keller, F. S. (1968). “Good-bye teacher”. Journal of Applied Behavior Analysis, 1, 79-89.

Keller described five features of his plan:

(1) The go-at-your-own-pace feature, which permits a student to 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. (For this reason, students should NOT submit medical certificates for a period ≤1 week.) Students should note, however, that the go-at-your-own-pace feature is aimed at alleviating the effect of brief acute periods of other demands; it is not designed to cater for long chronic periods of other demands. Students are warned against adopting a speed that is so persistently slow that they do not complete the required pass/fail assessment items before the end of the teaching session; students who do not complete the pass/fail assessment items by the end of the teaching session will be given a failing grade of Z. An over commitment to paid work, for example, is a matter for the student to discuss and address with their employer, not their teacher.

(2) 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. It is not in the best interests of students to attempt assessment items out of sequence, as the student is unlikely to be adequately prepared for the subsequent assessment item. If a student does manage to complete a later assessment item, it is likely that either (1) the student did so by consuming an inordinate amount of their own time, or (2) the student received outside assistance that compromised the student’s learning. The enforcement of a sequence of assessments also better utilises the scarce 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.

(3) 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.

(4) The use of written materials and web-enabled communication to allow each student to proceed at their own rate.

(5) 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 exam conditions. (The exam conditions are specified elsewhere in the section of outline about assessment.) In that time period, students may receive immediate, repeated automatic testing and scoring, by uploading their test answers to the PLATE 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. However, students will only make good use of this aspect of the Keller Plan if they use the tutors in the second hour of lab sessions. Students will be mistaken if they believe they can leave at the end of their first hour, and instead email questions to the lecturer/coordinator – in such cases, students may be told to seek help from a tutor in a lab session (if their email is answered at all). The subject is not sufficiently well resourced to provide, for hundreds of students, a question and answering service on course content via email. 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.

A note about asking questions during the formal lecture presentation period of live lectures: Lectures may be thought of as comprising two parts, where (1) the first part is a formal lecture, where the teacher will speak with little interruption from students, and (2) a subsequent informal and unstructured lecture session. Questions in the formal lecture presentation are allowed and even encouraged, but the size of the lecture audience will mean that sometimes a full and detailed answer may not be possible. Questions driven by natural curiosity are most welcome, but such questions should be asked at the end of the formal lecture, or at laboratory/tutorial sessions (but not by email). Sometimes a student may be told to ask the question again after the formal lecture, especially if the question being asked is not going to benefit the entire class. Usually, students should only ask questions during formal lecture presentations if the student is confused and will have trouble understanding the rest of the lecture without the answer to their question.

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

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

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

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

To score a passing mark/grade, a student must successfully complete all of the pass/fail lab tests, under exam conditions. If a student does not successfully complete all of the pass/fail lab tests, then all other assessment items will be ignored, even if those assessment items have been submitted and marked.

If you miss any piece of assessment through documented illness or misadventure (except a single weekly lab), you should consult with the Subject Coordinator as soon as possible.

Required texts

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

Parsons, D (2012), Foundational Java.

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

Recommended texts

The following books are conveniently available from the UTS library as an electronic resource, but (unlike the "essential" 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 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.