UTS: 48023 Programming Fundamentals - Engineering, UTS Handbook Using a modern browser that supports web standards ensures that the site's full visual experience is available. Consider upgrading your browser if you are using an older technology. University of Technology Sydney SEARCH this site UTS Handbook 2021 Engineering UTS Handbook How to use this handbook General information Principal dates Academic year dates Course areas Analytics and Data Science Business Communication Creative Intelligence and Innovation Design, Architecture and Building Education Engineering Health Health (GEM) Information Technology International Studies Law Science Transdisciplinary Innovation Study package directory Archives Applying and enrolling Rules of the University 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 2021 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 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. Design and code a software system that correctly implements a solution to a small problem defined by a specification, and follows specific design rules. 3. Comprehend and use basic program control constructs of sequence, selection and iteration. 4. 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 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) 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. Note: Students are expected to commit additional study time outside of class time. The university regards this 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 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. Content (topics) Data Flow: assignment; input, output; numeric expressions, and calculations. OO Programming: class; object; constructor; visibility modifiers; local variables. Control Flow: selection and repetition. Data Structures and Basic Algorithms: arrays; sorting and searching. Design notations, processes, and rules. Assessment Assessment task 1: Pass / fail mastery tests 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, 2, 3 and 4 This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs): C.1 Type: Quiz/test Groupwork: Individual Weight: 50% Length: One or more hours each week 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, 2 and 3 This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs): C.1 and D.1 Type: Quiz/test Groupwork: Individual Weight: 30% Assessment task 3: Additional lab exercises 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, 2, 3 and 4 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: 20% Length: One or more hours each week Minimum requirements ln order to pass the subject, a student must achieve an overall mark of 50% or more. 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 the quizzes (Assessment Task 4) 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. 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: http://freecomputerbooks.com/Introduction-to-Programming-Using-JAVA.html 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 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. UTS: Handbook 2021 UTS: Handbook | Site map UTS is a member of the Australian Technology Network of Universities About UTS | Library | Newsroom | Staff | Contact us © Copyright UTS - CRICOS Provider No: 00099F - 17 January 2021 1:25 PM The page is authorised by Director, Institute for Interactive Media and Learning Send comments to APO Disclaimer | Privacy | Copyright | Accessibility | Web policy | UTS homepage