联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2024-10-31 09:08

Assessment Brief: Individual Coursework

2024–25*~/

Assessment Details

Course Title: Fundamentals of Computer Science I

Course Code: LCSCI4207

Level: 4

First, Second, or Third Sitting: First

Assessment Title: Question Time (Project)

Assessment Number: AE2

Assessment Type: Project

Restrictions on Time/Length: 24 – 32 hours

Assessment Weighting: 40%

Issue Date: 1 October 2024

Hand-in Deadline: 30 October 2024, 13:00

Planned Feedback Deadline: 28 calendar days after hand-in deadline

File Format Accepted: .kts

Mode of Submission: Online (Canvas/Gradescope)

Anonymous Submission: YES

Assessment Task

The setting

You are going to design an application that enables users (in our case, students) to

self-study using a question bank. How does it work?

1. Users will be prompted to choose from a menu of available question banks (e.g.,

Geography, Mathematics, Computing, or History). The selection menu will repeat

until a valid choice is made.

1

Assessment Brief: Individual Coursework 2024–25

2. Users proceed through each question in the selected bank, one-by-one. For each

question, the user is allowed time to reflect; and when they press “Enter”, the

answer is displayed.

3. Users are then asked if they got the correct answer. They self-report by replying

yes or no.

4. After all questions, the program outputs the number of self-reported correct

answers and terminates.

Design overview

You will design this program step-by-step.

Step 1. Questions (6 marks)

Design the data type Question that represents a single question-answer pair. You

should be able to represent the text for the question and the text for the answer.

Include at least three examples – they will come in handy later for tests anyway!

Step 2. Question banks (6 marks)

Design the data type QuestionBank that represents a set of Questions. The bank

should have a name, as well as a sequence of questions. You are encouraged to

represent this sequence using standard lists. Include at least two example question

banks based on the question examples in Step 1.

Step 3. Auto-generated question banks (8 marks)

One benefit of digital question banks is that sometimes we can use code to generate

questions, and their answers, based on a pattern.

Design the function cubes that takes a count (assuming it is positive) and produces a

question bank of that many questions testing the users’ knowledge on perfect cubes

(e.g., 1

3=1, 2

3=8, 3

3=27, and so on). For example, if count equals 4, the four

questions in the bank are:

Q1: What is 1 cubed?

A: 1

Q2: What is 2 cubed?

A: 8

Q3: What is 3 cubed?

A: 27

Q4: What is 4 cubed?

A: 64

Hint 1. You'll find that the List constructor is quite handy!

2

Assessment Brief: Individual Coursework 2024–25

Step 4. Files (16 marks)

Consider a simple format for storing questions in a file. Each Question is a line in

the file, where the question text comes first, separated by a “pipe” character (“|”),

followed by the answer.

4.1. Design the function questionToString that takes a Question as input and

produces a string according to the format above (e.g., “What is the

capital of England?|London”). Make sure to test all your card examples!

4.2. Design the function stringToQuestion that takes a string, assuming that it is

in the format described above, and produces the corresponding Question.

Note 1. No need to remind you about testing anymore, right?

Hint 2. You'll find the Kotlin function String.split(separator) quite handy:

it breaks a string separated by the separator string into a list.

4.3. Design the function readQuestionBank that given a path to a file it produces

the corresponding sequence of cards found in the file. Use whatever

sequence type makes sense for your deck type above. If the file does not

exist, return an empty sequence. Otherwise, you can assume that every line

is formatted as in 4.1 above.

Step 5. Self-reporting on a single question (16 marks)

Let’s work with a single question first, including a user interaction where users

self-report if they got the answer correctly.

5.1. Design the function isCorrect that determines if the supplied string starts

with the letter “y” or “Y”.

Hint 4. The String.startsWith(prefix) function will help you evaluate the

prefix even if the supplied string is too short. The String.lowercase() or

String.uppercase() functions help you not worry about upper- or

lower-case strings, respectively.

5.2. Design the function studyQuestion that uses the Khoury library’s

reactConsole function to: (i) display the question text of the supplied

question; (ii) give the user an opportunity to think (until they press “Enter”);

(iii) display the correct answer; (iv) ask the user to self-report is they thought

of the correct answer; and, finally, (v) provide appropriate feedback.

Step 6. Going over multiple questions (20 marks)

Great job dealing with a single question! Now let's go over an entire question bank

from start to finish:

6.1. Design the data type QuestionBankState to keep track of, at least the

following: (i) which question is currently on display; (ii) whether the user is

3

Assessment Brief: Individual Coursework 2024–25

looking at the question text or the answer; (iii) how many answers have been

self-reported as correct by the user thus far.

Note 2. Create sufficient examples to convince yourself that you can

represent any situation that might arise when going over a question bank.

6.2. Design the function studyQuestionBank that uses reactConsole with your

designed state to go over all the questions in a supplied sequence and returns

the number that were (self-reported) correct.

Step 7. Choosing a bank (20 marks)

Design the function chooseBank that takes a list of QuestionBanks and produces a

corresponding numbered menu (1 for the first question bank, 2 for the second, and

so on), prompts the user for input, and returns the bank corresponding to the number

entered. Make sure you also display the question bank name. For example:

Welcome to Question Time! You can choose from 3 question

banks:

1. Capitals of the World

2. Movies

3: Perfect cubes

Enter your choice:

_

Keep displaying the menu until the user enters a valid number.

Hint 5. mapIndexed behaves like map on a list, but the called function gets both the

index of the current element, as well as the element itself, which can be handy for

producing a numbered menu. The isAnInteger function from the Khoury library

tells you whether a string is an integer, before trying to convert it via

String.toInt().

Step 8. Putting all together (8 marks)

Time for the final app! Design the function play that: (i) uses chooseBank to select

one amongst a list of question banks – the options must include at least one

question bank that you coded by hand, one read from a file (using

readQuestionBank), and one generated by code (e.g., cubes); and (ii) uses

studyBank to go over all the questions in the bank, returning the number of correct

answers.

4

Assessment Brief: Individual Coursework 2024–25

Assessment Criteria

You will be evaluated on several criteria, including: (i) adherence to instructions and

the Fundies 1 coding style guide; (ii) correctly producing the functionality of the

program; (iii) design decisions that include choice of tests; (iv) appropriate

application of list abstractions, and (v) task- and type-driven decomposition of

functions.

70 or higher

There was evidence of the ability to perform all programming tasks correctly. The

demonstration of the methods was excellent, coherent, well documented and clearly

explained.

60-69

There was evidence of ability to perform some programming tasks correctly. The

demonstration of the methods is good, coherent and reasonably detailed and

explained.

50-59

There was evidence of ability to perform some programming tasks correctly, but the

demonstration of the methods was limited, incoherent, not adequately documented

and vaguely explained.

40-49

There was limited evidence of ability to perform programming tasks. The

demonstration of the methods involved significant omissions and produced

substantial inaccuracies.

39 or less

Failure to solve the programming task in assignment. Methods were completely

incorrect or absent. General grading criteria for Level 4 are described in Appendix B

of the course syllabus.

Submitting Assessments

1. Your submission should be anonymous. Remove anything from your code that

can identify you before submission.

2. You are to upload a file question-time.main.kts file on Canvas/Gradescope for

your submission.

3. You are expected to provide necessary documentation for your code. Part of your

marks will be allocated on the quality of your comments!

4. Since mutation has not been covered extensively in class, your program is not

allowed to make use of mutable variables, including mutable lists.

5

Assessment Brief: Individual Coursework 2024–25

5. All interactive parts of your program must make effective use of the

reactConsole function.

6. Staying consistent with our style guide. All functions must have a preceding

comment specifying their purpose and an associated @EnabledTest function with

sufficient tests using testSame.

7. All data must have a preceding comment specifying what it represents and

associated representative examples.

You have three submission attempts, but only the last submission will be graded. If

your last submission attempt is late, you will receive the late penalty even if you have

a previous submission that was on time. Please make sure to avoid multiple

submissions for assessments with multiple components, as only the last attempt will

be graded. Upload several files in one submission attempt instead.

If your assessment requires anonymous submission (see the assessment details

table at the top of your assessment brief), please be sure you have left your name off

of your submission and out of the submission file name, as failing to do so may result

in a 0% mark on the assessment.

Refer to the assessment details table in your assignment brief for acceptable file

formats. Avoid submitting zip files (unless explicitly required by the assessment

brief); use the ‘add files’ function to submit multiple files instead. If you are submitting

a physical artefact, you must also provide clear and thorough documentation (such

as in the form of photographs or a video) of your submission by the deadline; see the

bottom of this section for guidance on submitting video files.

Please ensure that you tick the agreement box at the very bottom of your Canvas

submission page (scroll down if you don’t see it). This will enable you to select

‘Submit Assessment.’ Please review the submitted file to ensure that everything is in

order.

If you encounter any issues with submission, e-mail a copy of your assignment

before the deadline to student.assessments@nulondon.ac.uk along with screenshots

of the problem on Canvas, showing a timestamp.

To turn on notifications for submission confirmation emails in your Canvas settings:

Account > Notifications > Turn on the bell for ‘All submissions.’ In the app this is via

Settings > Email Notifications > All submissions.

To submit a video recording: Select the ‘Panopto video’ icon in the text entry box in

your submission portal. You can upload a video file of any format from your media

library by selecting ‘upload,’ choosing ‘my folder’ in the drop down menu, and

clicking ‘insert.’ You should be able to play the video back once it processes. See

further explanation, including guidance on recording videos using Panopto, in this

support article: ‘How to Submit a Video Assignment in Canvas.’

6

Assessment Brief: Individual Coursework 2024–25

Marking

The University uses two categorical assessment marking schemes – one for

undergraduate and one for postgraduate – to mark all taught programmes leading to

an award of the University.

More detailed information on the categorical assessment marking scheme and the

criteria can be found in the Course Syllabus, available on the University’s VLE.

Learning Outcomes

This assessment will enable students to demonstrate in full or in part the learning

outcomes identified in the Course Descriptor.

On successful completion of this assessment, students should be able to:

Knowledge and Understanding

K1a Demonstrate knowledge and understanding of the underlying principles and

concepts of programming.

K2a Demonstrate knowledge and understanding of program design principles and

concepts such as parametric polymorphism (e.g., generic functions and data

types), generative recursion, and accumulators.

K3a Demonstrate an understanding of the technical, social and management

dimensions of programs, their extensibility and correctness, in real-world

applications.

Subject-Specific Skills

S1a Complete a data analysis of a problem statement and describe the data

required to solve a problem; create input and output examples of the data to

describe the desired functionality of a program that solves the problem at

hand; and use aforementioned examples for testing.

S2a Plan an iterative approach to solve large problems; and design scalable,

abstract data collections to solve growing problems.

S3a Compose programs from several functions and data collections, either

sequentially (e.g., for batch applications) or using event-based features (e.g.,

for web applications).

Transferable Skills

7

Assessment Brief: Individual Coursework 2024–25

T1a Make reasoned discussions and contributions in group settings, fostered

through collaborative work during lab sessions.

T3a Display a developing technical proficiency in written English and an ability to

communicate clearly and accurately in structured and coherent pieces of

writing.

Accessing Feedback

Students can expect to receive feedback on all summative coursework within 28

calendar days of the submission deadline or, if applicable, the last oral assessment

date, whichever later. The 28 calendar day deadline does not apply to work

submitted late. Feedback can be accessed through the assessment link on the

Canvas course page.

Late Submissions

Please ensure that you submit your assignment well before the deadline to avoid

any late penalties, as a submission made exactly on the deadline will be considered

late. Please keep in mind that there may be differences between your computer's

clock and the server time, which can cause discrepancies, and that Canvas may

take some time to process your submission.

Your Canvas submission portal displays two due dates: one is the deadline for your

assignment, and the second is the latest possible date by which your assignment

can be submitted late. Please make sure you submit by the assessment deadline in

order to avoid late penalties.

If assessments are submitted late without approved Extenuating Circumstances,

there are penalties:

● For assessment elements submitted up to one day late, any passing mark

will receive 10 marks deducted or a threshold pass (40% for undergraduate

students, 50% for postgraduate students), whichever is higher. Any mark

below 40% for undergraduate students and below 50% for postgraduate

students will stand.

● Students who do not submit their assessment within one day of the deadline,

and have no approved Extenuating Circumstances, are deemed not to have

submitted and to have failed that assessment element. The mark recorded

will be 0%.

● For assessment subelements, late submission will result in non-submission

penalties deducted according to the marking criteria above.

For further information, please refer to AQF7 Part C in the Academic

Handbook.

8

Assessment Brief: Individual Coursework 2024–25

Extenuating Circumstances

The University’s Extenuating Circumstances (ECs) procedure is in place if there are

genuine circumstances that may prevent a student from submitting an assessment.

If the EC application is successful, there will be no academic penalty for missing the

published submission deadline.

Students are normally expected to apply for ECs in advance of the assessment

deadline. Students may apply for consideration of ECs retrospectively if they can

provide evidence that they could not have done so in advance of the deadline. All

applications for ECs must be supported by independent evidence.

Successful EC applications for live oral assessments, including vivas, will result in a

deferral of the oral to be organised by faculty, students, and Timetabling for a date

as close as possible to the original presentation date. The deadline for

supplementary materials, if assigned, will be carried forward by the length of the oral

assessment extension.

Missing an oral assessment, including a compulsory viva, without an approved EC

will result in a non-submission for the entire assessment and, accordingly, a

recorded mark of 0%.

Students are reminded that the ECs procedure covers only short-term issues (within

21 days leading to the submission deadline) and that if they experience longer-term

matters that impact on learning then they must contact Student Support and

Development for advice.

Under the Extenuating Circumstances Policy, students may defer an assessed

element on only one occasion and may request an extension on a maximum of two

occasions.

For further information, please refer to the Extenuating Circumstances Policy in

the Academic Handbook.

Academic Misconduct

Any submission must be a student’s own work and, where facts or ideas have been

used from other sources, these sources must be appropriately referenced. The

University reserves the right to hold a viva if there are concerns about the

authenticity of a student's or learner’s work. The Academic Misconduct Policy

includes the definitions of all practices that will be deemed to constitute academic

misconduct. This includes the use of artificial intelligence (AI) where not expressly

permitted within the assessment brief, or in a manner other than specified. Students

should check this policy before submitting their work. Students suspected of

committing Academic Misconduct will face action under the Policy. Where students

are found to have committed an offence they will be subject to sanction, which may

include failing an assessment, failing a course or being dismissed from the

University depending upon the severity of the offence committed. For further

information, please refer to the Academic Misconduct Policy in the Academic

Handbook.

9

Assessment Brief: Individual Coursework 2024–25

Version History

Title: Assessment Brief Template

Approved by: The Quality Team

Version

number

Date

approved

Date

published

Owner Location Proposed next

review date

4.0 March

2023

March

2023

Registrar VLE/

Faculty

Resourc

es Page

March 2024

3.0 August

2022

August

2022

Registrar VLE,

Faculty

Resourc

es Page

July 2023

2.3 December

2021

December

2021

Registrar VLE August 2022

2.2 August

2021

August

2021

Registrar VLE August 2022

2.1 Septembe

r 2020

September

2020

Registrar VLE August 2021

2.0 Septembe

r 2020

September

2020

Registrar VLE August 2021

1.0 August

2019

August

2019

Registrar VLE August 2020

Referenced

documents

AQF7 Academic Regulations for Taught Awards; Extenuating

Circumstances Policy; Academic Misconduct Policy; Course

Syllabus

External

Reference

Point(s)

UK Quality Code Theme: Assessment

10


相关文章

【上一篇】:到头了
【下一篇】:没有了

版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp