COMP SCI 1102 - Object Oriented Programming

North Terrace Campus - Semester 2 - 2016

This course is designed as an entry level programming course for students who have prior programming experience. This course introduces the concepts of object-oriented programming to students with a background in the procedural paradigm. Note: Students who do not have prior programming experience or who are not confident in their programming ability should complete COMP SCI 1101 Introduction to Programming prior to undertaking this course. The course begins with a brief review of control structures and data types with emphasis on structured data types and array processing. It then moves on to introduce the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Other topics include an overview of programming language principles, simple analysis of algorithms, basic searching and sorting techniques, and an introduction to software engineering issues. - Brief review of control structures, functions, and primitive data types - Object-oriented programming: Object-oriented design; encapsulation and information-hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies - Fundamental computing algorithms: simple searching and sorting algorithms (linear and binary search, selection and insertion sort) - Fundamentals of event-driven programming - Machine level representation of data: Bits, bytes, and words; numeric data representation and number bases; representation of character data - Introduction to computer graphics: Using a simple graphics API - Memory management - Overview of programming languages: History of programming languages; brief survey of programming paradigms - Introduction to language translation: Comparison of interpreters and compilers; language translation phases; machine-dependent and machine-independent aspects of translation

  • General Course Information
    Course Details
    Course Code COMP SCI 1102
    Course Object Oriented Programming
    Coordinating Unit Computer Science
    Term Semester 2
    Level Undergraduate
    Location/s North Terrace Campus
    Units 3
    Contact Up to 6 hours per week
    Available for Study Abroad and Exchange Y
    Prerequisites SACE Stage 2 Mathematical Studies or equivalent
    Incompatible COMP SCI 1009, COMP SCI 1202
    Assumed Knowledge COMP SCI 1101
    Course Description This course is designed as an entry level programming course for students who have prior programming experience. This course introduces the concepts of object-oriented programming to students with a background in the procedural paradigm.

    Note: Students who do not have prior programming experience or who are not confident in their programming ability should complete COMP SCI 1101 Introduction to Programming prior to undertaking this course.

    The course begins with a brief review of control structures and data types with emphasis on structured data types and array processing. It then moves on to introduce the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Other topics include an overview of programming language principles, simple analysis of algorithms, basic searching and sorting techniques, and an introduction to software engineering issues.

    - Brief review of control structures, functions, and primitive data types
    - Object-oriented programming: Object-oriented design; encapsulation and information-hiding; separation of behavior and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies
    - Fundamental computing algorithms: simple searching and sorting algorithms (linear and binary search, selection and insertion sort)
    - Fundamentals of event-driven programming
    - Machine level representation of data: Bits, bytes, and words; numeric data representation and number bases; representation of character data
    - Introduction to computer graphics: Using a simple graphics API
    - Memory management
    - Overview of programming languages: History of programming languages; brief survey of programming paradigms
    - Introduction to language translation: Comparison of interpreters and compilers; language translation phases; machine-dependent and machine-independent aspects of translation
    Course Staff

    Course Coordinator: Dr Cheryl Pope

    Course Timetable

    The full timetable of all activities for this course can be accessed from Course Planner.

  • Learning Outcomes
    Course Learning Outcomes

    Upon completion of this course students should be able to:

    1. Explain the steps in creating an executable program for a computer, including the intermediate representations and their purpose.
    2. Manipulate binary patterns and understand the use of binary to represent numbers.
    3. Apply good programming style and understand the impact of style on developing and maintaining programs.
    4. Effectively use a version control system for incremental development.
    5. Effectively use the Linux command line tools.
    6. Explain the benefits of object oriented design and understand when it is an appropriate methodology to use.
    7. Design object oriented solutions for small systems involving multiple objects.
    8. Implement solutions in C++.
    9. Test and debug C++ implementations.
    10. Identify the relative merits of different algorithmic designs.
    11. Independently find and interpret discipline related documentation.
    12. Explain the relevance of ethics in the context of Software Engineering.
    University Graduate Attributes

    This course will provide students with an opportunity to develop the Graduate Attribute(s) specified below:

    University Graduate Attribute Course Learning Outcome(s)
    Deep discipline knowledge
    • informed and infused by cutting edge research, scaffolded throughout their program of studies
    • acquired from personal interaction with research active educators, from year 1
    • accredited or validated against national or international standards (for relevant programs)
    1-12
    Critical thinking and problem solving
    • steeped in research methods and rigor
    • based on empirical evidence and the scientific approach to knowledge development
    • demonstrated through appropriate and relevant assessment
    7-12
    Teamwork and communication skills
    • developed from, with, and via the SGDE
    • honed through assessment and practice throughout the program of studies
    • encouraged and valued in all aspects of learning
    11-12
    Career and leadership readiness
    • technology savvy
    • professional and, where relevant, fully accredited
    • forward thinking and well informed
    • tested and validated by work based experiences
    4-5, 7-9, 11
    Intercultural and ethical competency
    • adept at operating in other cultures
    • comfortable with different nationalities and social contexts
    • able to determine and contribute to desirable social outcomes
    • demonstrated by study abroad or with an understanding of indigenous knowledges
    12
    Self-awareness and emotional intelligence
    • a capacity for self-reflection and a willingness to engage in self-appraisal
    • open to objective and constructive feedback from supervisors and peers
    • able to negotiate difficult social situations, defuse conflict and engage positively in purposeful debate
    12
  • Learning Resources
    Recommended Resources

    The course website provides links to a number of online resources to assist students in learning programming in C and C++. For those students who would also like to have a text book, we would recommend the following:

    "Problem Solving with C++", 9e Global Edition, Walter Savitch, ISBN-13:9781292018249, Addison-Wesley, 2015.

    Online Learning

    Links to all course materials, assignment descriptions, announcements, etc. are available on the course website by logging onto

             http://forums.cs.adelaide.edu.au.

    It is your responsibility to regularly check for notices and to participate in online activities. This course does not use myuni.

  • Learning & Teaching Activities
    Learning & Teaching Modes

    This course has five contact activities: lectures, tutorials, practicals, workshops and small group discovery. Each of these activities is used to support and build on each other, they do not repeat material.

    Lectures will be used primarily to introduce the core theoretical material of the course supported by the tutorials.

    The practicals are focussed on developing core programming skills in C++ both individually and collaboratively. They will include a small number of individual practical exams. You should also spend a significant amount of time on programming outside of these sessions.

    The workshops are hands on collaborative sessions with groups of students sharing computers working on activities that may reinforce lecture material or introduce key skills required by the practicals.

    The small group discovery sessions focus on a guided research experience in an area of ethics relevant to Software Engineering. The small groups will do most of their work outside these sessions.



    Workload

    The information below is provided as a guide to assist students in engaging appropriately with the course requirements.

    Students are expected to spend 10-12 hours per three unit course. Expectations of time devoted to different activities each week is identified on the course website
    Learning Activities Summary

    The topics covered will include:

    • Basics of Computer Architecture
    • Arrays and Pointers
    • Programming Languages, Grammars, Compiling
    • Object Oriented Design
    • Classes, Objects, Inheritance
    • Abstract Classes, Polymorphism
    • Planning, Design
    • Debugging
    • Event Driven Computing, Graphics
    • Sorting, Searching
    • Theory of Computation
    • Algorithmic and Problem Solving Strategies
    • Ethics in Software Engineering
    Small Group Discovery Experience
    The Small Group Discovery Groups will investigate the ethical issues relevant to Software Engineering in a particular context, for example "The Ethics of Social Media in an Indiginous Community”. The work will be in groups and be guided by the University’s Research Skill Development Framework over 5 sessions.
  • Assessment

    The University's policy on Assessment for Coursework Programs is based on the following four principles:

    1. Assessment must encourage and reinforce learning.
    2. Assessment must enable robust and fair judgements about student performance.
    3. Assessment practices must be fair and equitable to students and give them the opportunity to demonstrate what they have learned.
    4. Assessment must maintain academic standards.

    Assessment Summary
    ComponentWeightingWeek DueKindLearning OutcomesCBOK Areas
     Practicals 1,2,4,6 5% 1, 2, 4, 6 Summative  3,4,5,7,8,9  1,2,4,7,8,9,10,11 
     Practical week 8 to 11 5% 11 Formative  3,4,5,7,8,9  1,2,4,7,8,9,10,11 
     Practical Exam 1 0% 3 Formative 3,4,5,7,8,9  1,2,4,7,8,9,10,11 
     Practical Exam 2 8% 5 Formative  3,4,5,7,8,9  1,2,4,7,8,9,10,11 
     Practical Exam 3 8% 7 Formative  3,4,5,7,8,9  1,2,4,7,8,9,10,11 
     Practical Exam 4 4% 12 Summative  3,4,5,7,8,9  1,2,4,7,8,9,10,11 
     Tutorials 0% n/a Formative  1,2,6,10  7,8,9
     Small Group Discovery 5% 11 Summative  11,12  3,4,5,6
     Workshops 5% 1-12 Summative  2,3,4,5,7,8,9  1,2,8,9,11
     Final Written Exam 60% n/a Summative  1,2,3,6,7,10  1,2,8

    CBOK Legend

    1. Abstraction
    2. Design
    3. Ethics
    4. Interpersonal Communication
    5. Societal Issues
    6. History & Status of the Discipline
    7. Hardware & Software
    8. Data & Information
    9. Programming
    10. Human Computer Interfaces
    11. Systems Development

    Details of the Australian Computer Society's Core Bode of Knowledge (CBOK) can be found in this document.

    Assessment Related Requirements
    Hurdle Requirement: If your overall mark for the course is greater than 44 F but, your mark for the final written exam is less than 40%, your overall mark for the course will be reduced to 44 F.
    Assessment Detail

    Individual practical exams will take place in the practical sessions of weeks 3, 5, 7 and 12. The first practical exam is for practice only and does not contribute to your final mark for the course. Marks for each practical exam will be awarded by the web submission system based on functionality. In the workshop of weeks 4, 6 and 8, the previous week's practical will also be marked by practical demonstrators who will be able to give some individual feedback. No marks will be awarded if no one in a group attends the workshop in which the additional assessment takes place.

    All other practicals can be undertaken individually or in a group of up to three students. A mechanism for registering groups will be provided so that only one student from each group needs to submit the work. Marks for these practicals will be awarded by the web submission system based on functionality. In the workshop in week 12 the practical covering weeks 8 to 11 will also be marked by practical demonstrators who will be able to give some individual feedback. No marks will be awarded if no one in a group attends the week 12 workshop in which the additional assessment takes place.

    Workshops will be undertaken in groups of up to three students. A mechanism for registering groups will be provided for each workshop. Marks for workshops will be awarded by the web submission system based on functionality provided that the submission is made whilst attending a workshop session.

    If tutorial submissions are made by the Sunday before each tutorial session, some individual feedback will be provided. Tutorials do not contribute to the final mark for the course.

    Small Group Discovery projects will be assessed as a group based on participation, presentations and/or a final report.

    The final examination will assess all of the skills developed during the course and your ability to apply them as an individual.

    Submission
    Practicals, Practical Exams and Workshops

    You are expected to create the specified directory in your svn repository at the start of every practical, practical exam or workshop and do all your work in a checked out working copy of this directory. Every time you stop working on you are expected to commit the changes made so far to your svn repository. Separately, you must submit your work to the Computer Science Web Submission System by the due date specified in the practical, practical exam or workshop description. Only work submitted to the Web Submission System will be assessed and, where appropriate, late penalties will be calculated using the date/time of the submission.

    Practical or Practical Exam Assessment Sessions

    For those practicals and practical exams with additional assessment by workshop supervisors, you must attend your first enrolled workshop session following the due date or they will not be assessed. If the workshop supervisors are unable to complete marking all students attending their enrolled workshop session, alternative arrangements will be made for those students affected.

    Missing a Practical or Practical Exam Assessment Session

    If you are unable to attend a practical assessment session due to medical or compassionate circumstances, you must submit a request to the course coordinator as soon as practicable but no later than 5 days after the missed session. In your request you must attach supporting documentation – a medical certificate and/or a letter from the student counselling service. Work requirements are not considered grounds for missing assessments. If you are working, please make sure you are available for all activities. The course coordinator will make alternative arrangements for assessing the practical work on a case by case basis.

    Penalties for Late Submission of Work

    Late submissions will not be accepted for practical exams or workshops. The work must be submitted before leaving the practical exam or workshop.

    Unless advised otherwise and where appropriate, all other work is subject to the following late penalty policy:

    • The maximum mark that can be awarded will reduce by 25% for each day/part day late,
    • Marks in excess of the maximum that can be awarded are discarded.
    • Assignment work submitted 4 or more days late will receive 0 marks.
    On-time Mark 1 Day Late 2 Days Late 3 Days Late 4+ Days Late
    25% 25% 25% 25% 0
    50% 50% 50% 25% 0
    75% 75% 50% 25% 0
    100% 75% 50% 25% 0
    Late Penalties for Other Assessments

    Due to the nature of some assessments, it may not be possible to accept late submissions even if an extension was appropriate. In these cases alternative arrangements will be made on a case-by-case basis.

    Extensions for Programming Practicals and Other Assessments

    If you are unable to complete an assessment by the due date because of medical or compassionate circumstances, you must submit a request to the course coordinator prior to the due date. In your request you must attach supporting documentation – a medical certificate and/or a letter from the student counseling service. Work requirements are not considered grounds for extensions. If you are working, please make sure you are available for all activities. If appropriate, the course coordinator will provide an extension that will be visible in the Web Submission System or on the course website where the submission is to be made.

    Provision of Feedback to Students

    Marks for practicals, practical exams and workshops will be automatically awarded by the School of Computer Science Web Submission System for all submissions. For those practicals and practical exams subject to additional assessment, the additional assignment marks and feedback will be also posted to the Web Submission System. Feedback and marks on all assignment work will be available on the course website but there may be some delays because feedback and marks originally published in the Web Submission System must be manually copied to the course website.

    Final Examination

    The final examination will be scheduled by the examinations office. You will be able to access your exam schedule through Access Adelaide. You must be available during the replacement examination period (check University dates). If you are offered a replacement examination or additional assessment and are unable to attend for any reason, there may be no further opportunity for a replacement examination or additional assessment.

    Course Grading

    Grades for your performance in this course will be awarded in accordance with the following scheme:

    M10 (Coursework Mark Scheme)
    Grade Mark Description
    FNS   Fail No Submission
    F 1-49 Fail
    P 50-64 Pass
    C 65-74 Credit
    D 75-84 Distinction
    HD 85-100 High Distinction
    CN   Continuing
    NFE   No Formal Examination
    RP   Result Pending

    Further details of the grades/results can be obtained from Examinations.

    Grade Descriptors are available which provide a general guide to the standard of work that is expected at each grade level. More information at Assessment for Coursework Programs.

    Final results for this course will be made available through Access Adelaide.

  • Student Feedback

    The University places a high priority on approaches to learning and teaching that enhance the student experience. Feedback is sought from students in a variety of ways including on-going engagement with staff, the use of online discussion boards and the use of Student Experience of Learning and Teaching (SELT) surveys as well as GOS surveys and Program reviews.

    SELTs are an important source of information to inform individual teaching practice, decisions about teaching duties, and course and program curriculum design. They enable the University to assess how effectively its learning environments and teaching practices facilitate student engagement and learning outcomes. Under the current SELT Policy (http://www.adelaide.edu.au/policies/101/) course SELTs are mandated and must be conducted at the conclusion of each term/semester/trimester for every course offering. Feedback on issues raised through course SELT surveys is made available to enrolled students through various resources (e.g. MyUni). In addition aggregated course SELT data is available.

  • Student Support
  • Policies & Guidelines
  • Fraud Awareness

    Students are reminded that in order to maintain the academic integrity of all programs and courses, the university has a zero-tolerance approach to students offering money or significant value goods or services to any staff member who is involved in their teaching or assessment. Students offering lecturers or tutors or professional staff anything more than a small token of appreciation is totally unacceptable, in any circumstances. Staff members are obliged to report all such incidents to their supervisor/manager, who will refer them for action under the university's student’s disciplinary procedures.

The University of Adelaide is committed to regular reviews of the courses and programs it offers to students. The University of Adelaide therefore reserves the right to discontinue or vary programs and courses without notice. Please read the important information contained in the disclaimer.