Show/hide main menu


4CCS1PPA Programming Practice and Applications

Credit value: 30
Lecturers:  Professor Michael Koelling, Dr Asad Ali and Mr Josh Murphy (office hours)

Semesters: 1&2
Teaching pattern: 3-hour lecture (weekly); 2-hour practical (every week from second week of teaching); 1-hour small-group tutorial (every third week in Semester 2)


Qualifying Mark
Students are required to attain a mark of at least 40% in the exam, and at least 40% in the large coursework element overall, in order to pass the module.

Learning aims & outcomes

The aims of this module are:

  • To introduce the essential skills of Programming, and the concepts of object-oriented Programming.
  • To introduce techniques for good design of user interfaces for applications. To provide practice in applying these techniques to user interface design in Java.
  • To develop practical skills in writing programs, including working with appropriate tools.

On successful completion of this module, students will:

  • Demonstrate understanding of the concepts of object-oriented programming;
  • Develop general problem-solving skills;
  • Be able to write programs using a number of core language features: assignments, methods, conditional and loop statements, classes, array, list and map data structures.
  • Be able to construct well-designed applications in Java, using Human-Computer Interaction design principles.
The module will cover topics from the following:
1. Fundamentals of programming
  • Numeric data; assignments; reading input; strings
  • Conditional statements
  • Loop statements
  • Data structures: arrays, lists.
2. Object oriented software development
  • Designing objects; modelling real-world entities
  • Classes and inheritance; interfaces
  • Class diagram notation
3. Graphical User Interfaces (GUIs)
  • Java concepts for GUI programming.
  • HCI and user interface design: HCI design principles.
  • User interface architectures.
  • Layout management concepts.
  • Interaction styles.
  • Dialog design.
  • Task analysis.
  • GOMS.
4. Advanced programming concepts
  • Exceptions
  • Regular Expressions.
5. Application programming
  • Code organisation: packages.
  • Reasoning about programs: problem solving.
  • Usability.
  • Software development support tools: IDEs, Version Control.
Suggested Reading and Resources (Link to MyReadingLists)

23 March 2018
Sitemap Site help Terms and conditions  Privacy policy  Accessibility  Modern slavery statement  Contact us

© 2018 King's College London | Strand | London WC2R 2LS | England | United Kingdom | Tel +44 (0)20 7836 5454