4CCS1PPA Programming Practice and Applications
Dr Asad Ali, Mr Josh Murphy and Professor Michael Koelling (office hours)
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)
Learning aims & outcomes
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.
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:
SyllabusThe module will cover topics from the following:
- 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.
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.
4. Advanced programming concepts
- Regular Expressions.
5. Application programming
Suggested Reading and Resources (Link to MyReadingLists)
- Code organisation: packages.
- Reasoning about programs: problem solving.
- Software development support tools: IDEs, Version Control.
30 October 2017