澳门六合彩开奖记录
CS2OP: Object-Oriented Programming
Module code: CS2OP
Module provider: Computer Science; School of Mathematical, Physical and Computational Sciences
Credits: 20
Level: Level 2 (Intermediate)
When you'll be taught: Semester 1
Module convenor: Professor Richard Mitchell, email: r.j.mitchell@reading.ac.uk
Pre-requisite module(s): BEFORE TAKING THIS MODULE YOU MUST TAKE CS1PC20 (Compulsory)
Co-requisite module(s):
Pre-requisite or Co-requisite module(s):
Module(s) excluded:
Placement information: NA
Academic year: 2024/5
Available to visiting students: Yes
Talis reading list: Yes
Last updated: 21 May 2024
Overview
Module aims and purpose
Programming is a core skill in Computer Science. Building on the previous semester鈥檚 module on Imperative Programming, this module introduces Object-Oriented Programming (OOP), which is the dominant paradigm in modern software development. This module will introduce Java鈥檚 object-oriented features, such as classes, methods, interfaces, inheritance and generics.聽
Objects make it easier to write programs in a modular way, which is advantageous when working on larger projects or as part of a team. Therefore the focus of this module will be on more complex problems, where the solution will usually involve writing several classes and using APIs from Java鈥檚 standard library. Students will use an edit-compile-run cycle when developing programs.聽
On the conceptual side, the module will introduce principles for decomposing a large problem into smaller classes, including some common design patterns in OOP.聽Students will also be able to demonstrate their abilities in using Git for storing software, demonstration / presentation skills.
Module learning outcomes
By the end of the module, it is expected that students will be able to:聽
- Decompose a problem into multiple classes, recognising and applying common design patterns, showing the resulting design as a class diagram
- Write, compile, run, test and document a Java program that implements the design shown in a class diagram
- Justify or critique an OOP design using concepts such as encapsulation, polymorphism, abstraction and inheritance
- Use external libraries to reduce development effort, reading API documentation as necessary
Module content
Features of Java beyond imperative programming:聽
- Classes, objects, methods, properties, 鈥渘ew鈥, packages聽
- Interfaces, inheritance, dynamic dispatch/subtype polymorphism聽
- Generics/parametric polymorphism聽
- 贰虫肠别辫迟颈辞苍蝉听
- 罢丑谤别补诲蝉听
Common Java APIs:聽
- Collections: List, Set, Queue, Map聽
- GUI/graphics programming: Swing or JavaFX聽
OOP design:聽
- Encapsulation, abstraction and polymorphism聽
- Class diagrams聽
- Common design patterns聽
Software development:聽
- The edit-compile-run cycle聽
- Working on a project with multiple source files in a programmer鈥檚 text editor or IDE聽
- Reading API documentation and compiling with external libraries聽
- Merging code with git聽
- Writing unit tests with JUnit聽
Topics covered lie mainly within the ACM Computer Science Curricula 2013 knowledge area 鈥淧rogramming Languages鈥, especially 鈥淥bject-Oriented Programming鈥 and 鈥淓vent-Driven and Reactive Programming鈥. There is some coverage of other knowledge areas, such as 鈥淪oftware Engineering鈥.聽
Structure
Teaching and learning methods
The module will introduce programming language concepts through lectures. Students will then be able to apply these concepts in practicals.聽
Compared with the Imperative Programming module, new programming language concepts will be introduced through a smaller number of more complex examples and small projects. The APIs covered will be used to provide examples of some of the OOP concepts. For example, the Collections API illustrates both subtype and parametric polymorphism, while GUI libraries typically illustrate many design patterns, such as Factory and Observer. One of the projects will provide an opportunity for students to work in groups, so they get some experience of teamwork, both from the social perspective and the technical perspective.聽
The start of the module will include an orientation session, where students will set up a suitable development environment, for example in IntelliJ or VS Code.聽
Study hours
At least 28 hours of scheduled teaching and learning activities will be delivered in person, with the remaining hours for scheduled and self-scheduled teaching and learning activities delivered either in person or online. You will receive further details about how these hours will be delivered before the start of the module.
聽Scheduled teaching and learning activities | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Lectures | 4 | ||
Seminars | |||
Tutorials | 2 | ||
Project Supervision | |||
Demonstrations | |||
Practical classes and workshops | 22 | ||
Supervised time in studio / workshop | |||
Scheduled revision sessions | |||
Feedback meetings with staff | |||
Fieldwork | |||
External visits | |||
Work-based learning | |||
聽Self-scheduled teaching and learning activities | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Directed viewing of video materials/screencasts | 36 | ||
Participation in discussion boards/other discussions | |||
Feedback meetings with staff | |||
Other | |||
Other (details) | |||
聽Placement and study abroad | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Placement | |||
Study abroad | |||
聽Independent study hours | 聽Semester 1 | 聽Semester 2 | 听厂耻尘尘别谤 |
---|---|---|---|
Independent study hours | 136 |
Please note the independent study hours above are notional numbers of hours; each student will approach studying in different ways. We would advise you to reflect on your learning and the number of hours you are allocating to these tasks.
Semester 1 The hours in this column may include hours during the Christmas holiday period.
Semester 2 The hours in this column may include hours during the Easter holiday period.
Summer The hours in this column will take place during the summer holidays and may be at the start and/or end of the module.
Assessment
Requirements for a pass
Students need to achieve an overall module mark of 40% to pass this module.
Summative assessment
Type of assessment | Detail of assessment | % contribution towards module mark | Size of assessment | Submission date | Additional information |
---|---|---|---|---|---|
Set exercise | Simple program | 20 | Semester 1, Teaching Week 7 | Of object-oriented simulation as displayed in console environment. Students self assess work and demonstrate | |
Set exercise | Project report | 70 | Video demonstration, report 4 pages and code in separate folder | Semester 1, Assessment Week 1 | Of more advanced simulation displayed using graphics. |
In-class test administered by School/Dept | Object orientation online test | 10 | 20 questions | Semester 1, Teaching Week 10 | Assesses understanding of OO theory. |
Penalties for late submission of summative assessment
The Support Centres will apply the following penalties for work submitted late:
Assessments with numerical marks
- where the piece of work is submitted after the original deadline (or any formally agreed extension to the deadline): 10% of the total marks available for that piece of work will be deducted from the mark for each working day (or part thereof) following the deadline up to a total of three working days;
- the mark awarded due to the imposition of the penalty shall not fall below the threshold pass mark, namely 40% in the case of modules at Levels 4-6 (i.e. undergraduate modules for Parts 1-3) and 50% in the case of Level 7 modules offered as part of an Integrated Masters or taught postgraduate degree programme;
- where the piece of work is awarded a mark below the threshold pass mark prior to any penalty being imposed, and is submitted up to three working days after the original deadline (or any formally agreed extension to the deadline), no penalty shall be imposed;
- where the piece of work is submitted more than three working days after the original deadline (or any formally agreed extension to the deadline): a mark of zero will be recorded.
Assessments marked Pass/Fail
- where the piece of work is submitted within three working days of the deadline (or any formally agreed extension of the deadline): no penalty will be applied;
- where the piece of work is submitted more than three working days after the original deadline (or any formally agreed extension of the deadline): a grade of Fail will be awarded.
The University policy statement on penalties for late submission can be found at: /cqsd/-/media/project/functions/cqsd/documents/qap/penaltiesforlatesubmission.pdf
You are strongly advised to ensure that coursework is submitted by the relevant deadline. You should note that it is advisable to submit work in an unfinished state rather than to fail to submit any work.
Formative assessment
Formative assessment is any task or activity which creates feedback (or feedforward) for you about your learning, but which does not contribute towards your overall module mark.
Students will be able to get immediate feedback on some of the practical exercises through use of an automated marking system. There will also be formative online multiple-choice tests for students to check their understanding of factual knowledge covered.
Reassessment
Type of reassessment | Detail of reassessment | % contribution towards module mark | Size of reassessment | Submission date | Additional information |
---|---|---|---|---|---|
Set exercise | Technical assignment | 100 | 2,000 words (excluding programming codes), 24 hours (over 3 days). | During the University resit period | A resit paper consists of assigned practical tasks which require 40% of theoretical knowledge of the subject and 60% of development work. |
Additional costs
Item | Additional information | Cost |
---|---|---|
Computers and devices with a particular specification | ||
Required textbooks | Core Java Volume I--Fundamentals: 1 by Cay Horstmann | 拢35 each |
Specialist equipment or materials | ||
Specialist clothing, footwear, or headgear | ||
Printing and binding | ||
Travel, accommodation, and subsistence |
THE INFORMATION CONTAINED IN THIS MODULE DESCRIPTION DOES NOT FORM ANY PART OF A STUDENT'S CONTRACT.