Assignment 2019

  • Alasdair Sharp

    So what do we think?

    My opinions in a nutshell:

    The 3 stage database task is going to be a pain to manage.

    The program seems fairly straight forward but I imagine a lot of candidates will struggle to follow the pseudocode design (because it’s intentionally inefficient) and will end up losing marks. And I get why it’s been done like that, so that they have to do a proper evaluation on a program that is inefficient, not robust, and not fit for purpose. I just hope they marking scheme doesn’t penalize too heavily if they write a better program.

    The web part was also straight forward but the form input testing question (3c) seems like a lot for 3 marks.


    The database task is as last year’s was so I think that’s okay. Pupils will have had a go at the previous year’s task also so will have a handle on what is expected.
    I think the programming task is fine. Admittedly, when doing it myself I did it ‘efficiently’ as I wasn’t paying attention to the pseudo code closely enough (tut, tut). I agree that some pupils might do likewise. It just didn’t feel right coding the program inefficiently.
    Web practical part is fine. Pupils should be well prepared for such a task.
    I’d like to see the project more hands on practical overall, but I don’t think that’s where we’re going. Keep the ‘theory’ for the exam as much as possible, e.g. 2 tests on the web page, readability of code etc.
    However, I’m happy with coursework. A standard was set last year and this task is in line with that standard.

    Alasdair Sharp

    My problem with the database part was that there’s three separate tasks that need issued one at a time. Last year only had two. That, coupled with the two separate tasks in the programming part, will be logistically awkward in my opinion.

    Lee Murray

    Not only is the database problem a three stage task where previously it was only two, but the program is now a two stage task where previously it was only one.

    Last year wasn’t too bad because I handed out part A of the database task and gave people the rest of the entire assignment once they handed part A in. Simple.

    This year, I have to hand out part 1A. When it’s handed back, hand out part 1B. When that’s handed back, hand out part 1C. When that comes in, hand out 2A. When that comes back, only then can I hand out the rest of the coursework.

    I suppose I could hand out all of the A parts, then handing out subsequent tasks as and when pupils hand in their work, but that’s a logistical problem.

    Last year, it was just about manageable. Pupils had to wait a bit of time while I was dishing out the second part, but they could handle it because it was just the one time. Now pupils will be waiting significant amounts of time just to receive the instructions.

    This time will become especially significant because for one task it involves the printing of the database documenter or taking relevant screenshots. This is time which is not meant to be considered part of the assignment. How are teachers meant to record that? A stopwatch for each pupil?

    Further to this, there are issues with the tasks. I’ll get to those later when I have time, but I’m not happy after a very cursory glance at it.

    Susan Thomson

    What about Python users? Python doesn’t have a repeat…until loop, to match the given input validation algorithm. We need to use while…break which won’t match the algorithm exactly.

    Will the pupils be penalised for this?

    Susan Thomson

    I’m not sure I fully understand what is required for testing the program. My understanding…

    The pupils enter 2 examples of input into the test table, one with 3 characters and one which should generate an error message.

    Then they test their two inputs, taking a screenshot of the results.

    What is the list of names (all beginning with Chr)about? Are they just expected to enter ‘Chr’ 6 times to demonstrate the potential for a duplicate username? Are they expected to trigger the input validation again during this series of tests?

    Is anyone able to advise on this?

    Darren Brown

    I picked up these 2 points as well Susan – it says don’t change at all but surely validation pseudocode needs to be in a while for Python, I presume we can’t change it.

    I’m guessing as invalid tested above the pupils are to put Chr in 6 times

    Lee Murray

    I’ve finally had a chance to work through the assignment and I’m not impressed, to say the least.

    In addition to the ridiculous logistics required, I have the following issues:

    1. Why was a database for 1B not provided? This leaves room for error when teachers create the database file.
    2. Task 2A, process 2 is unanswerable, at least definitively. It could be input validation until the entry is 3 characters in length, or it could skip it, or it could display a message without validating… The description also mentions that the program should generate unique usernames, but it’s obvious that the program won’t always generate unique usernames. Why add this extra confusion at this point?
    3. Task 2B, the first instruction is to store the endings, but the endings aren’t mentioned in this part of the task. Pupils will have already handed in part A, so may not have the sheet. More confusion and logistics required (albeit minor).
    4. Repeat-Until doesn’t exist in python (as already mentioned). A pointless hack is needed just to match the design. This shows a lack of consideration for the most common programming language (just like with Higher and ‘records’).
    5. Pseudocode step 6 is ridiculous. It’s incredibly confusing and adds a huge amount of unnecessary inefficiency to the program. 5 if statements to check the number generated, then use the same number as the index of the ending. Bizarre to say the least. Why is it this way? Just so candidates can gain 1 mark when discussing efficiency? I think this is just crazy. The task is already contrived enough as it is without this extra garbage thrown in for the sake of it.
    6. Task 2B testing: it’s just as bizarre as the design. Why?!! It’s very confusing and totally pointless. Do they enter the full names to get 6 error messages or do they enter “Chr” 6 times to ensure duplication of usernames? All this just to make sure pupils *should* see that the program isn’t fit for purpose? I don’t think we should be giving pupils faulty and inefficient designs. This will confuse pupils and make them second-guess themselves. Shameful.
    7. Task 3A requires widths and heights of images and videos to be changed in CSS. This isn’t in the N5 specifications and shouldn’t be assessed. If pupils DO need to do this, include it in the specification. I mentioned this last year, but here it is again. No real website would do it this way anyway. Why have a massive image (1597*654) and then scale it down with CSS to less than 1/9th the size? This causes unnecessary load on the server and the browser. Images and videos should be provided in the desired dimensions.

    I honestly still can’t believe that these issues exist. Where is the quality assurance? Did anyone check any of this? Was it deemed fit for purpose?

    I’d genuinely like to know the thinking behind these tasks.

    Enrico Vanni

    The programming task is obviously contrived to elicit particular responses regarding efficiency and fitness for purpose and I agree that unless pupils are taught in advance to anticipate that designs created by others which they are asked to code without question may be absolute garbage then yes they could second-guess the task and think they are doing something wrong because their solution does not match the brief. I do not think this is the way our course should be going (it may have educational value as a one-off teaching point, but not as a final award clincher), but clearly someone disagrees with me. The programming part is essentially one big trick question.

    Ironically though, on face value I thought that logistically the task overall was ‘easier’ than last year’s, but that shouldn’t be our major consideration (unless prioritising ease of marking over educational value).

    Overall though I am disappointed that the assignment has very little problem solving to speak of (the SQL parts being about the extent of what is). Most of what is in it (including the SQL) could just as easily be written exam questions (indeed much of it is just written), and the ‘practical’ tasks are so prescriptive that they amount to ‘drone coding’.

    Lee Murray

    ‘One big trick question’ is exactly how this feels.

    Regarding the logistics, maybe I’m approaching it in the wrong way. I felt it was quite easy to hand out the first task (DB analysis), then when pupils turn it in to give them the rest of the required files – tasks, databases, images etc. – all in one go.

    This year I feel like I’ll be running back and forth between all the pupils who are finishing different things at different times, given that there are 5 separate tasks that must be done in sequence.

    I’ll have to think of a better way…

    Mark Hay

    Hi Lee, just incase you missed the e-files on the secure site there is a supplied DB for N5 Part 1B

    Lee Murray

    Hi Mark,

    I don’t think a database was provided for part 1B. The specific instructions for teachers and lecturers mention that we should use the data dictionaries provided to create a two table, relational database with no records. We are to add the text sizes, presence checks and range validation for the rating field.

    The database that was provided is a complete database with records, which is to be used for Part 1C.

    Unless a new version has already been added with updated instructions and files…

    Mark Hay

    Hi Lee, Sorry meant to say 1C but the relationships and range check is there so just involves copying then truncating the data – not too bad. Is on my to-do list by the end of the week.


    Working through it now, I’m confused at why the SQA would hand out a task that cannot be transferred to Python exactly. Repeat until really? I see they have deliberately contrived it to be inefficient but I know my pupils are going to try and write efficient code as I have done straight from the off. Store the endings?? separately ?? I’m sure there are much better ways to make inefficient code, to get 1 mark, without making it look like a confusing mess.

    Agreeing with the comments about the rest but this particular bit is just too frustrating.

    Miss McNally

    The first test seems to be any three characters to show that the program works.
    I think the test data of all “chr” shows the random selection of the endings. But if the random no is picked more than once ( as random would indicate!) then the username will appear twice.

Viewing 15 posts - 1 through 15 (of 29 total)

You must be logged in to reply to this topic.