Search our site
Search our site

Programming II

  • Module code: CI5100
  • Year: 2018/9
  • Level: 5
  • Credits: 30
  • Pre-requisites: Programming I
  • Co-requisites: None

Summary

The module extends students' learning of the formal aspects of programming, including a comprehensive treatment of the object-oriented paradigm, selection and use of data structures, use of programming libraries and APIs, including graphical user interfaces. It also enables students to become acquainted with the important tools available for programmers, such as development environments, revision control systems and code profiling and optimization techniques.

Aims

  • To establish the advanced programming concepts necessary for fluency in modern computer programming environments.
  • To demonstrate the similarities and differences between programming paradigms and methodologies.
  • To extend and expand the students' use of tools and libraries to facilitate effective software development.

Learning outcomes

On successful completion of the module, students will be able to:

  • Explain multi-paradigm programming and compare, using software quality factors, the different paradigms pre object orientation (procedural) paradigm, object oriented paradigm and beyond object oriented programming (component/service) paradigm.
  • Apply an object-oriented methodology to make appropriate design decisions when creating and modifying computer programs, using class inheritance, association, aggregations, polymorphism, interfaces, encapsulation, access modifiers and class membership as necessary; select and use data structures such as arrays, lists, maps and trees to implement algorithms for searching and sorting based on container classes.
  • Include graphical user interface components in a computer program and ensure that they function as specified.
  • Explain the purpose and principles of tools available to programmers, such as revision control systems, integrated development environments, and code debugging, profiling and optimization tools.
  • Understand the similarities and differences between the different execution environments in which computer programs are executed, such as the command line, the common gateway interface, applets, services and web server environments.
  • Understand the professional, legal and ethical issues associated with the creation and use of computer programs.

Curriculum content

  • Multi-paradigm programming
  • Software quality factors
  • Procedural programming
  • Abstract data types, classes and objects
  • Inheritance and multiple inheritance
  • Association and aggregation
  • Polymorphism; Method overloading, method overriding, operator overloading
  • Object oriented programming using languages such as Java and C++
  • Component and service oriented programming and environments
  • Container classes
  • Fundamental computing algorithms: recursion, sorting, searching
  • GUI Components: Swing vs AWT and GUI Class Hierarchy.
  • Event driven programming and event handling.
  • Standard development tools and visual programming environments, debugging and profiling.
  • Execution environments, applets, servlets, webservices.
  • Professional, legal and ethical issues such as copyright and licensing of source and executable code, accessibility compliance, professional accreditation of programmers.

Teaching and learning strategy

Weekly lectures and workshops form the knowledge-base for this module. Materials are provided on the university's LMS each week to coincide with lectures and workshops. The concepts delivered in the lecture are based on and reinforced by the recommended reading, and put into practice by performing the workshop tasks. The use of professional tools, emulating industry, will aid with student employability.

Breakdown of Teaching and Learning Hours

Definitive UNISTATS Category Indicative Description Hours
Scheduled learning and teaching Lectures, tutorials, workshops, case studies, exercises, discussion groups, and practice work. 100
Guided independent study Independent and directed reading. Online learning materials and study notes. 200
Total (number of credits x 10) 300

Assessment strategy

The assessment strategy will be a mix of exam (30%) and coursework (70%). There are two main elements of the coursework: The Fundamentals of Software Development element covering the fundamentals of software development (30%) with a focus on the implementation stage and its role within the software development life cycle, and Software Applications Development (40%) with a focus on libraries and aspects of Graphical User Interface (GUI).

In order to help students on this module achieve their full potential, formative assessment opportunities will be provided as appropriate throughout the module. Examples of formative assessments include worked exercises which emulate aspects of the major assessment and lab work. Feedback on coursework represents an additional opportunity for formative learning and will be given in writing and/or verbally. Formative feedback will be will be provided in various forms such as during short (10 - 15 minutes) feedback sessions. The formative feedback is designed to inform student preparation for the summative assessment which may be within the same module or feed forward across the degree programme.

The final examination is of 2 hours.  Examination revision will be supported by an end of module revision lecture.

Mapping of Learning Outcomes to Assessment Strategy (Indicative)

Learning Outcome Assessment Strategy
1) Explain multi-paradigm programming and compare, using software quality factors, the different paradigms pre object orientation (procedural) paradigm, object oriented paradigm and beyond object oriented programming (component/service) paradigm. Fundamentals of Software Development Coursework and Written Examination
2) Apply an object-oriented methodology to make appropriate design decisions when creating and modifying computer programs, using class inheritance, association, aggregations, polymorphism, interfaces, encapsulation, access modifiers and class membership as necessary; Select and use data structures such as arrays, lists, maps and trees to implement algorithms for searching and sorting Fundamentals of Software Development Coursework and Written Examination
3) Include graphical user interface components in a computer program and ensure that they function as specified. Software Applications Development Coursework
4) Explain the purpose and principles of tools available to programmers, such as revision control systems, integrated development environments, and code debugging, profiling and optimization tools. Software Applications Development Coursework
5) Understand the similarities and differences between the different execution environments in which computer programs are executed, such as the command line, the common gateway interface, applets, services and web server environments. Software Applications Development Coursework and Written Examination
6) Understand the professional, legal and ethical issues associated with the creation and use of computer programs. Software Applications Development Coursework and Written Examination

Elements of Assessment

Description of Assessment Definitive UNISTATS Categories Percentage
Fundamentals of Software Development Coursework 30%
Software Applications Development Coursework 40%
Objective test Written Examination 30%
Total (to equal 100%) 100%

Achieving a pass

It IS NOT a requirement that any major element of assessment is passed separately in order to achieve an overall pass for the module.

Bibliography core texts

Poo, D., Kiong, D. and Ashok, S., Object-oriented Programming and Java ( 2nd Edition), (2007), Springer,  ISBN-10: 1846289629. Kindle Edition, 2010, ASIN: B00192QXTK

Johnson, R A (2007), Java Programming and Object-Oriented Application Development, Thomson Course Technology

Deitel, H. and Deitel, P. (2011), Java How to Program: International Version (9th Edition), Pearson

Bibliography recommended reading

Sierra, K.  and Bates, B.  (2005), Head First Java (2nd Edition), O'Reilly

Sommerville, Software Engineering (9th Edition) , (2010). ISBN-13: 978-0137053469 

Find a course

Course finder

Find a course
>