Assessment Brief: Individual Coursework2024–25*~/Assessment Details
Course Title: undamentals of Computer Science I
Course Code: LCSCI4207Course Leader: Alexandros Koliousis
The setting You are going to design an application that enables users (in our case, students) toself-study using a question bank. How does it work?
- Users will be prompted to choose from a menu of available question banks (e.g.,eography, Mathematics, Computing, or History). The selection menu will repeatuntil a valid choice is made.1Assessment Brief: Individual Coursework 2024–25
- Users proceed through each question in the selected bank, one-by-one. For eachquestion, the user is allowed time to reflect; and when they press “Enter”, thenswer is displayed.Users are then asked if they got the correct answer. They self-report by replyingyes or no.After all questions, the program outputs the number of self-reported correctanswers and terminates.
Design overview
You will design this program step-by-step.tep 1. Questions (6 marks)Design the data type Question that represents a single question-answer pair. Youshould be able to represent the text for the question and the ext 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 bankshould have a name, as well as a sequence of questions. You are encouraged torepresent 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 generatequestions, and their answers,based on a pattern.
Design the function cubes that takes a count (assuming it is positive) and produces aquestion 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 fourquestions 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!
2Assessment Brief: Individual Coursework 2024–25Step 4. Files (16 marks)Consider a simple format for storing questions in a file. Each Question is a line inthe file, where the question text comes first, separated by a “pipe” character (“|”),ollowed by the answer.4.1Design the function questionToString that takes a Question as input andproduces a string according to the format above (e.g., 代寫 LCSCI4207 undamentals of Computer Science “What is thecapital 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 whateversequence type makes sense for your deck type above. If the file does not, return an emptysequence. Otherwise, you can assume that every lineis formatted as in 4.1 above.Step 5. Self-reporting on a single question (16 marks)Let’s workwith a single question first, including a user interaction where usersself-report if they got the answer correctly.5.1.Design the function isCorrect that determines if the supplied string startswith the letter “y” or “Y”.
Hint 4. The String.startsWith(prefix) function will help you evaluate theprefix even if the supplied string is too short. The String.lowercase() or
String.uppercase() functions help you not worry about upper- orlower-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 thoughtof 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 thefollowing: (i) which question is currently on display; (ii) whether the user is3Assessment Brief: Individual Coursework 2024–25ooking at the question text or the answer; (iii) how many answers have been
lf-reported as correct by the user thus far.Note 2. Create sufficient examples to convince yourself that you canepresent 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 returnsthe number that were (self-reported) correct.Step 7. Choosing a bank (20 marks)Designthe function chooseBank that takes a list of QuestionBanks and produces acorresponding numbered menu (1 for the first question bank, 2 for the second, andso on), prompts the user for input, and returns the bank corresponding to the numberentered. Make sure you also display the question bank name. For xample:Welcome to Question Time! You can choose from 3 questionnks:
Capitals of the World
- Movie3: Perfect cubeEnter 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 selectne amongst a list of question banks – the options must include at least onquestion bank that you coded by hand, one read from a file (usingradQuestionBank), and one generated by code (e.g., cubes); and (ii) usetudyBank to go over all the questions in the bank, returning the number of correctwers.4Assessment Brief: Individual Coursework 2024–25Assessment CriteriaYu will be evaluated on several criteria, including: (i) adherence to instructions andthe Fundies 1 coding style guide; (ii) correctly producing the functionality of theprogram; (iii) design decisions that include choice of tests; (iv) appropriateapplication of list abstractions, and (v) task- and type-driven decomposition offunctions.70 or higher There was evidence of the ability to perform all programming tasks correctly. Thedemonstration of the methods was excellent, coherent, well documented and clearlyexplained.60-69 There was evidence of ability to perform some programming tasks correctly. Thedemonstration of the methods is good, coherent and reasonably detailed andexplained.50-59 There was evidence of ability to perform some programming tasks correctly, but thedemonstration of the methods was limited, incoherent, not adequately documente40-4here 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
- Your submission should be anonymous. Remove anything from your code that
can identify you before submission.
- You are to upload a file question-time.main.kts file on Canvas/Gradescope foryour submission.
- You are expected to provide necessary documentation for your code. Part of yourmarks will be allocated on the quality of your comments!
- Since mutation has not been covered extensively in class, your program is notallowed to make use of mutable variables, including mutable lists.5Assessment Brief: Individual Coursework 2024–25
All interactive parts of your program must make effective use of thereactConsole function.
- Staying consistent with our style guide. All functions must have a precedingcomment specifying their purpose and an associated @EnabledTest function withsufficient tests using testSame.
- All data must have a preceding comment specifying what it represents andassociated representative examples.You have three submission attempts, but only the last submission will be graded. Ifyour last submission attempt is late, you willreceive the late penalty even if you have
previous submission that was on time. Please make sure to avoid multipleubmissions for assessments with multiple components, as only the last attempt willbe graded. Upload several files in one submission attempt instead.If your assessment requires anonymous submission (see the assessment detailstable at the top of yourassessment brief), please be sure you have left your name offof your submission and out of the submission file name, as failing to do so may resultin a 0% mark on the assessment.Refer to the assessment details table in your assignment brief for acceptable fileformats. Avoid submitting zip files (unless explicitly required by the assessmentbrief); use the ‘add files’ function to submit multiple files instead. If you are submittinga physical artefact, you must also provide clear and thorough documentation (suchas 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 Canvassubmission 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 inorder.If you encounter any issues with submission, e-mail a copy of your assignment
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 mibrary by selecting ‘upload,’ choosing ‘my folder’ in the drop down menu, anding ‘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
sport article: ‘How to Submit a Video Assignment in Canvas.’
6Assessment Brief: Individual Coursework 2024–25
Marking
Te University uses two categorical assessment marking schemes – one for
undergraduate and one for postgraduate – to mark all taught programmes leading toan 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
K1aDemonstrate knowledge and understanding of the underlying principles and
concepts of programming.
K2aDemonstrate knowledge and understanding of program design principles andconcepts such as parametric polymorphism (e.g., generic functions and dataypes), generative recursion, and accumulators.
K3a
Demonstrate an understanding of the technical, social and managementimensions of programs, their extensibility and correctness, in real-world
applications.
Subject-Specific Skills
S1aComplete a data analysis of a problem statement and describe the data
required to solve a problem; create input and output examples of the data todescribe the desired functionality of a program that solves the problem athand; and useaforementioned examples for testing.S2a
Plan an iterative approach to solve large problems; and design scalable,
abstract data collections to solve growing problems.
3aCompose programs from several functions and data collections, eithersequentially (e.g., for batch applications) or using event-based features (e.g.,for web applications).Transferable Skills7Assessment Brief: Individual Coursework 2024–25T1Make reasoned discussions and contributions in group settings, fostered
through collaborative work during lab sessions.
T3aDisplay 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 assessmentdate, whichever later. The 28 calendar day deadline does not apply to worksubmitted late. Feedback can be accessed through the assessment link on thenvas course page.Late SubmissionsPlease ensure that you submit your assignment well before the deadline to avoidany late penalties, as a submission made exactly on the deadline will be consideredlate. Please keep in mind that there may be differences between your computer'sclock and the server time, which can cause iscrepancies, and that Canvas maytake some time to process your submission.
Your Canvas submission portal displays two due dates: one is the deadline for yourassignment, and the second is the latest possible date by which your assignmencan be submitted late. Please make sure you submit by the assessment deadline inorder 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 markwill receive 10 marks deducted or a threshold pass (40% for undergraduatetudents, 50% for postgraduate students), whichever is higher. Any markbelow 40% for undergraduate students and below 50% for postgraduatestudents 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 haveubmitted and to have failed that assessment element. The mark recordedwill 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.8Assessment Brief: Individual Coursework 2024–25Extenuating CircumstancesThe University’s Extenuating Circumstances (ECs) procedure is in place if there aregenuine 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 assessmentdeadline. Students may apply for consideration of ECs retrospectively if they canprovide evidence that they could not have done so in advance of the deadline. Allapplications for ECs must be supported by independent evidence.Successful EC applications for live oral assessments, including vivas, will result in adeferral 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 forsupplementary materials, if assigned, will be carried forward by the length of the oralassessment 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-termmatters that impact on learning then they must contact Student Support and
Development for advice.Under the Extenuating Circumstances Policy, students may defer an assessedelement on only one occasion and may request an extension on a maximum of twooccasions.For further information, please refer to the Extenuating Circumstances Policy in
the Academic Handbook.Academic MisconductAny submission must be a student’s own work and, where facts or ideas have beenused from other sources, these sources must be appropriately referenced. TheUniversity reserves the right to hold a viva if there are concerns about theauthenticity of a student's or learner’s work. The Academic Misconduct Policyincludes the definitions of all practices that will be deemed to constitute academic
. This includes the use of artificial intelligence (AI) where not expresslypermitted within the assessment brief, or in a manner other than specified. Studentsshould check this policy before submitting their work. Students suspected ofcommitting Academic Misconduct will face action under the Policy. Where studentsare found to havecommitted an offence they will be subject to sanction, which mayinclude failing an assessment, failing a course or being dismissed from theUniversity depending upon the severity of the offence committed. For further