OOP ICA - Part1 Semester2 2023 24

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

IN-COURSE ASSESSMENT (ICA) SPECIFICATION

Module
Jackie Barker
Module Title Leader
Object Oriented Programming
Module Code CIS4037-N
(Semester 2)
Submission Wednesday, 8th
Final Date May 2024
Assessment Title Submission Method
Part 1: Console Application Online

(Blackboard)
Middlesbrough

Tower

Online Submission Notes


 Please carefully follow the instructions given in this Assignment Specification.
 Extensions or MITS should be requested using the Extenuating Circumstances (EC)
form available at
https://www.tees.ac.uk/sections/stud/handbook/extenuating_circumstances.cfm
 Instructions for submitting completed EC forms:
o Short extensions requests are emailed to either Module Leader or Course
Leader
o Long Extension requests are submitted to Course Leader or scedt-
[email protected]
o MITS requests are submitted to [email protected]
 If Extenuating Circumstances (extension or MITS) is granted, a fully completed and
signed Extenuating Circumstances form must be emailed to scedt-
[email protected] or submitted to the School Reception.

FULL DETAILS OF THE ASSIGNMENT ARE ATTACHED


INCLUDING MARKING & GRADING CRITERIA

Page 1
OOP ICA Part1 – Semester2, 2023-24

Contents

1. Introduction.................................................................................................3
1.1 ICA Part 1 Overview........................................................................................... 3
1.2 ICA Part 2 Overview........................................................................................... 3

2. Part 1 [30%] – Console Application...........................................................4


2.1 Overview.............................................................................................................4
2.2 Task 1: Skelton Application.................................................................................5
2.2 Task 2: Mock Application....................................................................................7
Data Class............................................................................................................ 7
Main Class............................................................................................................8
Main Menu Operations.......................................................................................10
2.3 Task 3: Prototype Application...........................................................................11
2.4 Task 4: Reflection.............................................................................................13

3. Academic Learning.....................................................................................14
3.1 Independent Learning.......................................................................................14
3.2 TU Library......................................................................................................... 14

Appendix A. Test Requirements................................................................15

Appendix B. Module Learning Outcomes.................................................16

Appendix C. Marking Criteria.....................................................................17

Page 2
OOP ICA Part1 – Semester2, 2023-24

1. Introduction

The assessment for the module is comprised of two parts. To pass the module
students need to a minimum module mark of 50%.

1.1 ICA Part 1 Overview

The first part is worth 30% of the module’s mark. Working as part of a team,
students are given three programming tasks that will require each student to do some
research, experimentation, and development.

Students will be provided applications that have some functional similarities to the
application prototypes your teams will produce; this will help focus the research into
features of Java and associated APIs. This research and practice from this part will
be of help with part 2.

Students will individually write and submit reflective documents discussing the
research and development process and outcomes.

1.2 ICA Part 2 Overview

The second part is worth 70% of the module’s mark. Each student will individually
develop a small Java application to simulate buying and selling of sports items.

The emphasis is on demonstrating:


 The use of the Java programming language.
 The use of Java APIs.
 Good use of object-oriented programming techniques.
 Basic GUI creation using the Swing API.
 Selecting and implementing an appropriate design pattern to improve the
overall architecture of the solution.

Students will also write a short development report.

Page 3
OOP ICA Part1 – Semester2, 2023-24

2. Part 1 [30%] – Console Application

2.1 Overview

Students will work in a team of two or three to design a develop a console application
for a shop named Art Prints to sell and restock items. The application will be
developed in three stages, corresponding to (programming) tasks 1, 2 and 3.
Students using Apache NetBeans, or raw coded using a text editor,

Table 1: ICA Part 1 tasks


ICA ICA
Description Submission
Task Weighting
1 Skeleton Application Week 04 5%
2 Mock Application Week 07 5%
3 Prototype Application Week 09 5%
4 Reflection Week 10 15%

The programming tasks (1, 2 and 3) will be assessed in each team’s practical
session in the weeks stated in Table 1 above. Students will also need to submit their
java project as a zip file to Blackboard by the end of the same week. Task 4 is an
individual reflection to be submitted to Blackboard in Week 10.

Each team member will take on the role of Team Leader for one of the programming
tasks, with following responsibilities.
 Make design decisions for the task and assign coding tasks based on design
to all member (including themselves)
 Keep a record of regular progress reports from the other team members.
 Provide support to the other team members.
 Record actions taken if insufficient progress was being made to achieve the
required outcome.
 Develop test plan for task (which will be used in demonstration)

Although the Team leader has final decision on what is to be done, it is required that
all team members will contribute ideas for design and implementation for the task.

Page 4
OOP ICA Part1 – Semester2, 2023-24

2.2 Task 1: Skelton Application


The skeleton application will display relevant details of the shop (i.e., name and some
advertising phrase), followed by a command line menu with the following options:

 View
 Buy
 Add
 Quit

A suitable number should be allocated to each option and displayed alongside the
option in the menu. Students are advised to use zero as choice number for the Quit
option. When the user enters an option number the application should:

 Display the name of the option.


 Redisplay the Menu

If the user selects the Quit Option, in which case a suitable message is displayed
before the application terminates.

If the user enters a non-integer value or an option that is not specified in the menu,
then a suitable validation message should be provided to the user before
redisplaying the menu.

Note:
 Project Name: Task01
 Group ID: oop
 Package name: oop.ica.part1
 Main Class Name: ArtPrintsSystem.java
 Authors: Name and User Id of all team members should be specified as
comments at top of any java file coded
 Students should use a modular approach within their design, i.e., user defined
methods.

Page 5
OOP ICA Part1 – Semester2, 2023-24

 Students should ensure suitable validation and error handling is in included in


the code.
 Students should ensure their code is dynamic but kept elegant, for example
void the use of additional user defined classes.
 Make sure that output is neatly displayed, making use of line gaps where
appropriate.
 Within code do ensure you document code groups, leave line gaps between
code groups and indent within block statements.
 Task to be assessed in Week 4
 Submit to Blackboard by 4.00pm on Friday of Week 4
 Worth: Contributes 5% towards Module mark

Page 6
OOP ICA Part1 – Semester2, 2023-24

2.2 Task 2: Mock Application


The Mock Application will work with a Data Class and a Generic ArrayList to enable
actions for the menu options from task 1. Students should create a copy of their
Task01 Project and rename the copied project to Task02.

Data Class
Student will add and code a data class based on the following design and notes:

Table 1: Partial Generalised Class Diagram


+ Art Print

- Id
- Title
- Artist
- Material
- Price
- Stock

+ Art Print (int, String, String, String, double, int)

Note:

 Above identifiers are in sentence form


o Students should use appropriate Java naming convention for class
name, field, and methods names.
o Class and constructor name should be Java version of that specified
above
o Parameter names can be appropriate shorten Java versions of that
specified above

 In addition to constructor, students will need to provide appropriate accessor


methods for all fields, i.e., get methods.

 A mutator method should be provided for Stock field, i.e., set method.

 Students should also code a service method which returns the prices to two
decimal places, but as a string, e.g., a price value of 55.5 would be returned
as “£ 55.50”.
Page 7
OOP ICA Part1 – Semester2, 2023-24

Table 2 below provides additional information about the fields, which will be of value
when displaying content and validating buying or adding of prints.

Table 2: Field Notes

Field Restriction

A seven-digit number which uniquely identifies the different


ID
art print on sale, e.g., 1234567
String value which has maximum length of 50 characters,
Title
used to store the name of the art print, e.g., Poppy field
String value which has maximum length of 15 characters,
Artist
which stores the surname of the artist, e.g., Monet
String value which has maximum length of 20 characters,
Material
which indicate what material the art print, e.g., Canvas
Non-zero and non-negative floating-point value which
Price specifies the pounds and pence price. No more than two
decimal places, e.g., 29.99
Non-negative integer value which specifies the quantity of
Stock
the art print in stock, e.g., 10, 1, 0, etc.

Main Class
In the main class students will need to declare a Generic ArrayList based on the Data
class. The ArrayList will need to be visible to all methods in the main class.

Two additional methods are required:


 loadData()
 displayData()

The loadData() method will need code which manually populates the ArrayList with
three to five data class objects, using the field values displayed in Table 3.

Page 8
OOP ICA Part1 – Semester2, 2023-24

Table 3: Item Field Values

Id Title Artist Material Price Stock


Riverbank in
1000001 Van Gogh Acrylic 50 3
springtime

2000002 Poppy field Monet Canvas 25.50 1

Bridge over a pond


2000003 Monet Gloss Card 39.99 2
of water lilies

Matt 250gsm
5000444 Church in Cassone Klimt 109.99 0
Paper

The Fighting
9876543 Turner Canvas 50.50 2
Temeraire

The above values are also contained in the ArtsPrints.csv file, which will be used
in Task 03. The loadData() method should be called before the menu is displayed.

The displayData() method will display in a tabular layout the following detail for
each Stock Item in the ArrayList
 Item Number – an integer starting at 1 (not related to Id)
 Title
 Artist
 Price (with £ symbol and to two decimal places)
 Stock

Example output from displayData() method is shown below by figure 1.

Figure 1: Example output from displayData() method

Page 9
OOP ICA Part1 – Semester2, 2023-24

The displayData() method will be used for the Buy and Add main menu
operations.

Main Menu Operations


When the user selects the View option, the option title should be displayed, followed
by a display of all the data stored in the ArrayList in a tabular layout After which the
menu is redisplayed.

When the user selects the Buy option, after the option title the displayData() method
is called. The operation should prompt the user for which item they wish to buy or
which key to enter to Exit. If a valid item number is provided, then only one of the
selected Art Print is sold and the stock suitably amended. A suitable message with
relevant details should be displayed, after which the menu is redisplayed.

When the user selects the Add option, after the option title the displayData() method
is called. The operation should prompt the user for which item they wish to add to or
which key to enter to Exit. If a valid item number is provided, then one item is added
to the stock. A suitable message with relevant details should be displayed, after
which the menu is redisplayed.

Note:
 Project Name: Task02
 Authors: Name and User Id of all team members should be specified as
comments at top of any java file coded
 Students should ensure suitable validation and error handling is in included in
the code.
 Students will need to decide on what code from previous task to keep, modify,
or remove.
 Task to be assessed in Week 7
 Submit to Blackboard by 4.00pm on Friday, in Week 7.
 Worth: Contributes 5% towards Module mark

Page 10
OOP ICA Part1 – Semester2, 2023-24

2.3 Task 3: Prototype Application

The Prototype Application will work with an input text file and an output text file to
make the mock application dynamic in terms of data handling. Students should
create a copy of their Task02 Project and rename the copied project to Task03

Students will need to modify the code two main class methods.
 loadData()
 main()

Students will need to code one new main class method.


 saveData()

The loadData() method will processing the input file line by line and use the read
data to add an Art Print object to the generic ArrayList reading. This method should
run before the application displays anything to the console. If the loadData() is
successful in populating the ArrayList then the application should proceed with
displaying and processing the menu. Otherwise, if there is a file error or no items are
loaded, then a suitable error message should be displayed, and the application
allowed to terminate.

The saveData() method will save the contents of the generic ArrayList to the output
file. This method should run when the user selects the quit option from the main
menu. Suitable messages should be displayed if method is successful or
unsuccessful.

No changes are required to the View Items, Buy Item and Add Stock operations.

Page 11
OOP ICA Part1 – Semester2, 2023-24

Note:
 Project Name: Task03
 Authors: Name and User Id of all team members should be specified as
comments at top of any java file coded
 Input file and Output file should be placed in the Project folder and are
delimited by a comma.
o Input file: ArtPrints.csv
o Output file: output.txt
 Students should ensure suitable validation and error handling is in included in
the code.
 Students will need to decide on what code from previous task to keep. modify
or remove.
 Task to be assessed in Week 9
 Submit to Blackboard by 4.00pm on Friday, in Week 9
 Worth: Contributes 5% towards module mark

Page 12
OOP ICA Part1 – Semester2, 2023-24

2.4 Task 4: Reflection

Students will need to submit a reflection (either in essay or report format) on their
experience as a Team Leader for one task. The reflection should address two
reflective questions about their experience. Example questions include.

1. Communicating with Team.


2. Decision making.
3. Supporting team as team leader.
4. Testing and any making corrections
5. The demonstration (actual and preparation).
6. Research undertaken.

The chosen questions can be used as section headings for the reflection. Within
each section clear examples should be provided for the reflective discussion and
supported with evidence, e.g., screenshots, test plans, copy of messages, etc. In
addition, students should conclude each section by indicating what they learnt, how
they could improve that experience in the future and how the experience could be put
to good use in the future modules (e.g., Advanced Practice, Masters project, etc.)

The body text of the reflection should be 1000 words. No need to deploy a reflection
model or include any appendices.

Note:
 File formats: DOCX, DOC or PDF
 File Name:
o Format: surname-userID-OOP-Task4
o Example: Rashid-u0018369-OOP-Task4.pdf
 Submit to Blackboard by 4.00pm on Wednesday 29th March 2023 (week10)
 Worth: Contributes 15% towards module mark

Page 13
OOP ICA Part1 – Semester2, 2023-24

3. Academic Learning

3.1 Independent Learning

The module is a postgraduate module and as such students are expected to


undertake substantial independent learning, for example:

 Reading lecture slides/notes before the lecture


 Watching any lecture recording in advance of the lecture
 Completing practical work before start of following practical
 Gaining academic skills through independent learning

3.2 TU Library

Students are expected to take up opportunities to gain academic skills in their own
time. For example, staff will not be teaching students on how to write a reflection,
instead students will need to make use of the library to gain reflective writing skills.

The library provides help through its Learning Hub:


 https://libguides.tees.ac.uk/learning_hub/home

At the Learning Hub there are three main sources of help:

1. Succeed Workshops: https://libguides.tees.ac.uk/workshops


2. Tutorials: https://libguides.tees.ac.uk/lrs/tutorials
3. PASS: https://libguides.tees.ac.uk/pass

Recommended Workshops include:


1. Academic Writing: https://tees.libcal.com/event/4163260
2. Avoiding Plagiarism: https://tees.libcal.com/event/4163994
3. Studying at a UK University: https://tees.libcal.com/event/4163720
4. Using References: https://tees.libcal.com/event/4165087
5. Reflective Writing: https://tees.libcal.com/event/4165657

Page 14
OOP ICA Part1 – Semester2, 2023-24

Appendix A. Test Requirements

For each programming task students should test that the task works as would be
expected. For tasks 1, 2 and 3 the team leader should construct test plans for each
new and or revised feature of the application.

The test plan should use the following format:

Test Description Values / Input Expected outcome Actual


Number outcome

Once the test plan has been completed, use it to check your design and application.
If any of the tests fail, update your application and re-test (keep the original entry that
failed in the plan along with the new entry for the re-test).

Students should have the test plan either printed or displayed when demonstrating a
programming task.

Page 15
OOP ICA Part1 – Semester2, 2023-24

Appendix B. Module Learning Outcomes

The following tables provide the learning outcomes for ‘Computer Technologies and
Operating Systems’ module.

Personal and Transferable Skills


1. Produce appropriate software documentation to communicate the
programming concepts and techniques underpinning their solutions.
2. Demonstrate a sound understanding of the Java API and the ability
to make good use of the information provided therein when building
solutions
3. Develop team leadership skills by taking the team lead role to
identify and develop solutions to practical problems.

Research, Knowledge and Cognitive Skills


4. Analyse complex and/or incomplete problem specifications, justify
the design and technical methodologies used, and recognise and
argue for alternative approaches.
5. Demonstrate a systematic and critical understanding of Object-
Oriented concepts, event handling and the development of
Graphical User Interfaces.
6. Select appropriate programming techniques and abstract Object-
Oriented concepts, and critically evaluate their effectiveness in a
given scenario.

Professional Skills
7. Design and implement efficient Java solutions to unfamiliar problem
specifications and critically evaluate the processes and facilities
used in an autonomous manner.

Page 16
Appendix C. Marking Criteria

Tasks 1, 2 and 3 (15%)


Programming Distinction Merit Pass Fail
Practice The code is written to a very The code is written to a good It performs reasonably, Code is poorly written, lacking
high and consistent standard, standard, although not always although not consistently. The in in structure. There is little or
elegantly specified. The code is consistent. code is written to a reasonable no consideration that other
easy to read and understand by standard, although the author programmers may need to be
someone other than the The code is easy to read and may not have always able to read and understand
original author. understand by someone other considered that others would
the code in the future.
than the original author. need to read and understand
Comments are provided, clear their code in the future.
Few, if any, useful or
descriptions of algorithmic Comments are provided,
implementations that are not appropriate comments are
although it may be inconsistent Some of the requirements have
immediately obvious by the provided.
in clarity or usefulness. been met.
code itself.
The current codebase is messy
The code appears to be Comments are present,
The code is clearly although they may be and would require
generally easy to extend or
demonstrating that it is very inconsistent in their usefulness considerable effort to extend
maintain with little effort.
easy to extend and maintain. or appropriateness. and/or maintain - probably a
complete rewrite would be
It is not immediately clear, or it required.
looks like quite a lot of effort
would be required to extend .
and/or maintain the current
codebase

Page 17
OOP ICA Part1 – Semester2, 2023-24

Task 4 (15%)
Reflection Distinction Merit Pass Fail
Full (but concise) explanation of Technical authorship presents a Technical authorship is Technical authorship is below
the problem domain and the clear explanation of the acceptable; discussion/critique the standard expected of a
objectives of each task; clear problem; discussion/critique demonstrates understanding of Masters degree.
insight into main challenges. shows a good appreciation of main issues & problems.
main issues & objectives.
There is little or no
A thorough reflection on the Demonstrated an
demonstration of
learning experience from A good reflection on the understanding of the problem
researching and experimenting, learning experience from tackled and their solution. understanding of the issues and
and how these were used to researching and experimenting problems. There is little or no
guide you and your team to with the various examples and Adequate reflection of how the evidence of teamwork.
required exercise solutions. how these were used to guide team interacted and worked
you and your team to required together. Appraisal of other
Excellent reflection of how the exercise solutions.
members of team
team interacted, worked
performance.
together, fair and professional Good reflection of how the
appraisal of other members of team interacted and worked
team performance. together, fair and professional
appraisal of other members of
team performance.

Page 18

You might also like