[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]

FIT9017 Foundations of programming - Semester 1, 2014

This unit aims to provide students with the basic concepts involved in the development of well structured software using a programming language. It concentrates on the development of problem solving skills applicable to all stages of the development process. Students gain experience with the translation of a problem specification into a program design, and the implementation of that design into a programming language. The subject introduces software engineering topics such as maintainability, readability, testing, documentation, modularisation, and reasoning about correctness of programs. Students are expected to read and understand existing code as well as develop new code.

Mode of Delivery

Gippsland (Off-campus)

Workload Requirements

Minimum total expected workload equals 12 hours per week comprising:

(a.) Contact hours for on-campus students:

  • 2 hours of lectures
  • One 2-hour laboratory

(b.) Study schedule for off-campus students:

  • Off-campus students generally do not attend lecture and tutorial sessions, however should plan to spend equivalent time working through the relevant resources and participating in discussion groups each week.

(c.) Additional requirements (all students):

  • A minimum of 8 hours independent study per week for completing lab and project work, private study and revision.

Unit Relationships

Prohibitions

CSE9000

Chief Examiner

Campus Lecturer

Gippsland

Shane Moore

Consultation hours: Contact through the discussion forums, or email: Shane.Moore@monash.edu

Your feedback to Us

Monash is committed to excellence in education and regularly seeks feedback from students, employers and staff. One of the key formal ways students have to provide feedback is through the Student Evaluation of Teaching and Units (SETU) survey. The University’s student evaluation policy requires that every unit is evaluated each year. Students are strongly encouraged to complete the surveys. The feedback is anonymous and provides the Faculty with evidence of aspects that students are satisfied and areas for improvement.

For more information on Monash’s educational strategy, see:

www.monash.edu.au/about/monash-directions/ and on student evaluations, see: www.policy.monash.edu/policy-bank/academic/education/quality/student-evaluation-policy.html

Previous Student Evaluations of this Unit

Over the past years in which the unit has been running, students have reported an overall satisfaction with the content and presentation of the unit's material.

If you wish to view how previous students rated this unit, please go to
https://emuapps.monash.edu.au/unitevaluations/index.jsp

Academic Overview

Learning Outcomes

At the completion of this unit students will:
  • be competent in designing, constructing, testing and documenting small computer programs using Java;
  • be able to demonstrate the software engineering principles of maintainability, readability, and modularisation; and,
  • understand the concepts of the object-oriented style of programming.

Unit Schedule

Week Activities Assessment
0   No formal assessment or activities are undertaken in week 0
1 Introduction to FIT9017 and expectations; introduction to programming, basic OO concepts, objects, classes, attributes, behaviour, state and identity.  
2 Class definition, fields, constructors, methods, parameter passing, variables, expressions, statements, assignment, primitive data types, arithmetic operators, strings, basic output.  
3 Selection (if and switch statements), conditions, relational & logical operators, shorthand operators, ++ operator, precedence, scope and lifetime, basic input.  
4 Object creation and interaction, abstraction, modularisation, class & object diagrams, object creation, primitive vs. object types, method calling, message passing, method signatures, method overloading. Assignment 1 due Wednesday 26 March 2014, 11:59pm. Assignment 1 inteview during Week 4
5 Class libraries, importing classes, collections, ArrayLists, arrays, iteration, pre and post test loops.  
6 identity vs. equality, more on strings, Class documentation, Javadoc syntax, random numbers, sets and maps, conditional operator.  
7 Information hiding, encapsulation, access modifiers, scoping, class variables, class methods, constants.  
8 Testing, unit testing, testing heuristics, regression testing, debugging, testing a program, specifying a test strategy. Assignment 2 due Monday 28 April 2014. Assignment 2 interview during Week 8
9 Program design considerations, responsibility-driven design, design documentation.  
10 Code quality, coupling, cohesion, refactoring, using the Java SDK. Assignment 3 - Stage 1 due Friday 16 May 2014
11 Inheritance, superclasses, subclasses, subtypes, substitution, polymorphic variables, protected access, casting, wrapper classes, collection hierarchy.  
12 Programming errors, exception handling, file I/O. Assignment 3 - Final stage due Friday 30 May 2014. Assignment 3 interview to be scheduled at a mutually agreed time
  SWOT VAC No formal assessment is undertaken in SWOT VAC
  Examination period LINK to Assessment Policy: http://policy.monash.edu.au/policy-bank/
academic/education/assessment/
assessment-in-coursework-policy.html

*Unit Schedule details will be maintained and communicated to you via your learning system.

Teaching Approach

Other
This unit is offered only as an off-campus unit. Students will be provided with weekly study guide modules that guide them in how to approach the unit's materials and which specify what parts of the textbook to read. There will be weekly exercises to be completed to gain experience in applying the topics. Lecture slides which were used in prior years will be made available. Other resources may be provided in some weeks.

Students will be supported by online discussion forums and the lecturer who will be available for guidance via email and forums.

Assessment Summary

Examination (3 hours): 60%; In-semester assessment: 40%

Assessment Task Value Due Date
Assignment 1 - Programming Basics 5% Wednesday 26 March 2014, 11:59pm
Assignment 2 - Programming Task 15% Monday 28 April 2014
Assignment 3 - Problem Solving and Programming Task 20% (Stage 1 = 4%, Stage 2 = 16%) Stage 1 due Friday 16 May 2014, Final stage due Friday 30 May 2014
Examination 1 60% To be advised

Assessment Requirements

Assessment Policy

Assessment Tasks

Participation

  • Assessment task 1
    Title:
    Assignment 1 - Programming Basics
    Description:
    Students will create a small Java program to demonstrate that they have understood basic concepts involved in creating a Java class. This covers topics taught in the first three weeks.
    Weighting:
    5%
    Criteria for assessment:

    Broadly, the criteria used to assess your work will be:

    1. Your ability to choose appropriate data types for variables and fields
    2. Your ability to display output
    3. Your ability to perform calculations and assignments in code using variables and literals
    4. Your ability to write methods that perform a sequence of actions when invoked
    5. Your ability to construct simple boolean expressions to selectively perform a sequence of actions
    6. Your ability to choose appropriate names for variables and methods,
    7. Your ability to include in-code documentation of your code
    8. Your ability to write a complete Java class which successfully compiles and executes.
    9. Whether the program meets the behavioural requirements as specified.
    10. Satisfactory explanation of selected aspects of code given during an interview
    Due date:
    Wednesday 26 March 2014, 11:59pm
    Remarks:
    All students are required to participate in a short 5-10 minute interview about their submitted work. This can be conducted over telephone, or Lync, or Skype, or Google Hangouts, at a mutually agreed time during Week 4.
  • Assessment task 2
    Title:
    Assignment 2 - Programming Task
    Description:
    In this assignment students will develop a small program consisting of a few classes that interact with each other in very basic ways. Guidance will be given on the functions which must be available within each class and how to structure the program.
    Weighting:
    15%
    Criteria for assessment:

    Broadly, the criteria used to assess your work will be:

    1. Your ability to write classes with appropriate fields and methods
    2. Your ability to instantiate and manipulate objects through method calls
    3. Your ability to construct boolean expressions to control program flow
    4. Your ability to make appropriate use of selection and repetition constructs
    5. Your ability to process user-supplied inputs
    6. Your ability to make use of arrays and/or ArrayLists to collect groups of objects
    7. Your ability to choose appropriate names for identifiers
    8. Your ability to include in-code documentation of your code
    9. Whether the program meets the behavioural requirements as specified and compiles without errors
    10. Satisfactory explanation of selected aspects of code given during an interview
    Due date:
    Monday 28 April 2014
    Remarks:
    All students are required to participate in an interview about their submitted work. This can be conducted over telephone, or Lync, or Skype, or Google Hangouts, at a mutually agreed time during Week 8 (after submission).
  • Assessment task 3
    Title:
    Assignment 3 - Problem Solving and Programming Task
    Description:
    In this assignment students will develop a reasonable sized multiple-class program. Students will be responsible for deciding on where to place functionality by applying concepts that have been taught regarding design principles. Students will also be required to demonstrate command of a wider range of programming constructs than in the previous assignment. The assignment will be submitted in 2 stages. In the first stage, a design document and test plan will be developed and submitted. Feedback will be given before the second stage. For the second stage the completed program will be submitted along with comments about any changes that were needed to the stage 1 documents.
    Weighting:
    20% (Stage 1 = 4%, Stage 2 = 16%)
    Criteria for assessment:

    Broadly, the criteria used to assess your work will be:

    1. Your ability to design appropriate classes with appropriate fields and methods to solve a programming problem and to communicate this through a class diagram
    2. Your ability to develop an adequate test plan and a sufficient range of appropriate test cases to test each class adequately
    3. Your ability to make use of arrays, ArrayLists, HashMaps and HashSets where appropriate
    4. Your ability to make appropriate use of the range of programming constructs taught
    5. Your ability to design an appropriate mechanism of user interaction
    6. Your ability to include in-code documentation of your code
    7. Whether the program meets the behavioural requirements as specified and compiles without errors
    8. Satisfactory explanation of selected aspects of code given during an interview

    Note that the first 2 items are assessed twice - once in each stage.

    Due date:
    Stage 1 due Friday 16 May 2014, Final stage due Friday 30 May 2014
    Remarks:
    All students are required to participate in a short interview about their submitted work. This can be conducted over telephone, or Lync, or Skype, or Google Hangouts, at a mutually agreed time.

Examinations

  • Examination 1
    Weighting:
    60%
    Length:
    3 hours
    Type (open/closed book):
    Closed book
    Electronic devices allowed in the exam:
    None

Learning resources

Reading list

The following may provide useful extra reading for this unit. Copies of these are available in the Caulfield Library (on reserve, one day loan or in the normal circulation).

Java Foundations, Lewis, De Pasquale & Chase, (Pearson Education), 2008 

Big Java (4th Edition), Cay Horstman (John Wiley & Sons), 2010 

Java Programming: From Problem Analysis to Program Design (3rd Edition), D. S Malik (Thomson), 2008

Thinking in Java (4th Edition), Eckell (Prentice Hall), 2006

Absolute Java (3rd Edition), Savitch (Addison Wesley), 2008

Monash Library Unit Reading List (if applicable to the unit)
http://readinglists.lib.monash.edu/index.html

Faculty of Information Technology Style Guide

Feedback to you

Examination/other end-of-semester assessment feedback may take the form of feedback classes, provision of sample answers or other group feedback after official results have been published. Please check with your lecturer on the feedback provided and take advantage of this prior to requesting individual consultations with staff. If your unit has an examination, you may request to view your examination script booklet, see http://intranet.monash.edu.au/infotech/resources/students/procedures/request-to-view-exam-scripts.html

Types of feedback you can expect to receive in this unit are:

  • Graded assignments with comments
  • Solutions to tutes, labs and assignments
  • Other: Replies to your queries asked on the discussion forum

Extensions and penalties

Returning assignments

Resubmission of assignments

There will be no provision for resubmission of assignments after the due date.

Referencing requirements

Students must reference material used from other sources.

Assignment submission

It is a University requirement (http://www.policy.monash.edu/policy-bank/academic/education/conduct/student-academic-integrity-managing-plagiarism-collusion-procedures.html) for students to submit an assignment coversheet for each assessment item. Faculty Assignment coversheets can be found at http://www.infotech.monash.edu.au/resources/student/forms/. Please check with your Lecturer on the submission method for your assignment coversheet (e.g. attach a file to the online assignment submission, hand-in a hard copy, or use an online quiz). Please note that it is your responsibility to retain copies of your assessments.

Online submission

You must submit all your work to the relevant "Assignment" activity within Moodle before anything will be marked.

Required Resources

Please check with your lecturer before purchasing any Required Resources. Limited copies of prescribed texts are available for you to borrow in the library, and prescribed software is available in student labs.

In this unit we will use Java and the BlueJ development environment.
This software is available on CD with the prescribed text book and is installed in the student computer labs at Caulfield campus.

Also:

  • Java software is freely available to download from the Oracle website at: http://www.oracle.com/technetwork/java/javase/downloads/index.html and clicking on the 'download' button in the JDK column
  • BlueJ is also freely available to download from the BlueJ site at: http://www.bluej.org/

You are expected to work in the BlueJ development environment.

Prescribed text(s)

Limited copies of prescribed texts are available for you to borrow in the library.

David Barnes and Michael Kolling. (2011). Objects First with Java. (5th Edition) Pearson (ISBN: 0-13-283554-1).

Technological Requirements

Students are required to have regular access to an internet-connected computer. You should be checking the Moodle discussion forums and your Monash Student Email account at least twice a week in case there are important messages from the lecturer.

Other Information

Policies

Monash has educational policies, procedures and guidelines, which are designed to ensure that staff and students are aware of the University’s academic standards, and to provide advice on how they might uphold them. You can find Monash’s Education Policies at: www.policy.monash.edu.au/policy-bank/academic/education/index.html

Key educational policies include:

Faculty resources and policies

Important student resources including Faculty policies are located at http://intranet.monash.edu.au/infotech/resources/students/

Graduate Attributes Policy

Student Charter

Student services

Monash University Library

Disability Liaison Unit

Students who have a disability or medical condition are welcome to contact the Disability Liaison Unit to discuss academic support services. Disability Liaison Officers (DLOs) visit all Victorian campuses on a regular basis.

[an error occurred while processing this directive]