Login

Welcome, Guest. Please login or register.

March 29, 2024, 10:30:03 pm

Author Topic: HSC Software Design and Development - State Ranker QnA  (Read 8708 times)  Share 

0 Members and 1 Guest are viewing this topic.

Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 718
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +480
HSC Software Design and Development - State Ranker QnA
« on: October 04, 2018, 07:47:52 pm »
+8
State ranker question 'n answer session

When:Oct 26, 2018
Where: Right here!

A good hello to fellow developers!
You're here because you want a question answered by a state ranking student? No problem! Come back on October 26, 2018 with plenty of questions and we'll answer your questions as soon as possible.

A little bit about your answerers!

Opengangs graduated in 2017 with an ATAR of 91.50 and more importantly, with a score of 88 in the HSC for Software Design and Development. He is currently studying a Bachelor of Computer Science at the University of New South Wales.

JTrudeau also graduated in 2017 with an ATAR of 99.75. She came first in the state for Software Design and Development with a HSC mark of 99 and is currently studying a Bachelor of Data Science at the University of Sydney.

Both will be available all day - so if you have any questions, ask them away below!

Want to ask a question?

To ask a question, register an account or log into an account and click on theQuick reply button at the bottom of the page with your question!

We wish you all the best of luck with the HSC exams!
« Last Edit: October 26, 2018, 07:31:29 am by Opengangs »

JTrudeau

  • Trendsetter
  • **
  • Posts: 109
  • Master of the Meeses
  • Respect: +90
Re: HSC Software Design and Development - State Ranker QnA
« Reply #1 on: October 26, 2018, 08:12:02 am »
+8
The Q&A is now up and running! I’m your other marker today, and I’m super keen to see what you’ve got! Anything goes: practice papers, theory questions, test strategies, you name it! :)
Data Science, Finance || University of Sydney
== First in State for Software Design and Development 2017 ==
Advanced English | Maths Extension 1 | Maths Extension 2 | Economics | Software Design & Development | Chemistry

jasn9776

  • Forum Regular
  • **
  • Posts: 57
  • Respect: +4
Re: HSC Software Design and Development - State Ranker QnA
« Reply #2 on: October 26, 2018, 03:21:11 pm »
0
Alright, i'll start it off. What are your tips for answering algorithm questions. I guess like how do you plan it out if it seems really complex? Also some questions i feel are worded in a way that doesn't really help you understand. Like in 2016 the last Question looked really confusing but was just a sequential file question. Overall I did way better at the regurgitation questions than like the actual pseudocode questions in the trial.

Also how should i study now that its only a week from exam? Should I just do past papers like i have been doing but i'm pretty rusty at the moment since i haven't studied the subject in like a week and definitely not the coding. Or should i focus on the theory which i'm pretty confident on already and it seems like the questions are pretty vague. What detail should I actually study in like i guess you could get away with not really understanding the code for the sorts since none of the questions actually ask it.
HSC 2018: English Adv(88) | Bio (90) | Phys(85) | Software Design (87) | 3U Math (41)

JTrudeau

  • Trendsetter
  • **
  • Posts: 109
  • Master of the Meeses
  • Respect: +90
Re: HSC Software Design and Development - State Ranker QnA
« Reply #3 on: October 26, 2018, 03:47:50 pm »
+5
@ jasn9776 Amazing! :)

On Algorithms:
I start off making a list of all the functions/tasks I’ll need to do. Take 2017’s purchase module question, for example. Before I started, I jotted down some bullet points in the margins— a loop for the customer to keep choosing items and quantities, a subprogram to compare quantity and stock, etc. Try and step through what you want your program to do, and write down those tasks as you go.
Then, I start writing my algorithm in pencil. This gives me the flexibility to adjust my code or add new lines, and ensure my structure is correct instead of angry crossed-out lines of code that can be hard to read. Of course, time is of the essence, so if you’re struggling for time, you’ll have to make allowances for something. Do this at your own discretion.

And definitely, some of the HSC questions are notoriously poorly worded (looking at you, 35e!). The 2016 question did actually specify it was a sequential file, so you’d apply the relevant knowledge in that case. But if they don’t specify, this is when knowing the syllabus and what your “options” are is pretty important. E.g. if they just said “a file”, you’d know it has to be either sequential or relative, and infer based on the context of the question.
Another thing about the questions, they usually try and relate it to a real-world example, so you can sometimes use background knowledge and common sense to help guide your decision making.
If worse comes to worst, write your assumption at the top. E.g. “Note: assuming the file is less than 100 lines long and is sequential.”


On Studying:
From the sounds of it, you should practice the more applied sections of the paper (system modelling tools, algorithms, metalanguages). At this point, cramming a lot of theory won’t be very helpful, but you definitely want to make sure you know the three sections I just mentioned, as they’re a huge part of the paper.

A lot of the theory is pretty intuitive— e.g. “we should make sure to credit contributors to avoid copyright”, so if you’re pressed for time you should be fine. If in the exam, you can’t think of any more theory, throw in some examples. Tie it to the case study, if they’ve given you one.

Other sections that are less intuitive and are worth double checking: software development approaches and trends, fetch execute cycle, system/program/module level testing, and the design specs (know your interface elements!).

An exercise I’ve found helpful: go through the syllabus dot points, and highlight each dot point in either green, yellow, or red. Green for “I know this! I can answer this!”, yellow for “I know some of this, still a bit iffy”, and red for “I have no clue what this is!”. Based on that, prioritise what you cram, and make sure at least for the red points that you can attempt an answer.

Hope this helps! Best of luck :)
Data Science, Finance || University of Sydney
== First in State for Software Design and Development 2017 ==
Advanced English | Maths Extension 1 | Maths Extension 2 | Economics | Software Design & Development | Chemistry

DrDusk

  • NSW MVP - 2019
  • Forum Leader
  • ****
  • Posts: 504
  • Respect: +130
Re: HSC Software Design and Development - State Ranker QnA
« Reply #4 on: October 26, 2018, 06:24:21 pm »
0
Hello again.
i just have one question at the moment.
How long should we spend on say a 5-6 marker pseudocode question?

Thanks a lot for this thread!


cthulu

  • Trailblazer
  • *
  • Posts: 35
  • Respect: +1
Re: HSC Software Design and Development - State Ranker QnA
« Reply #5 on: October 26, 2018, 06:50:34 pm »
0
Hello,

thanks for this thread.

How do we give an example of a record in a data dictionary?


JTrudeau

  • Trendsetter
  • **
  • Posts: 109
  • Master of the Meeses
  • Respect: +90
Re: HSC Software Design and Development - State Ranker QnA
« Reply #6 on: October 26, 2018, 07:02:04 pm »
+5
@DrDusk
Good question! It really depends on how difficult the question, and how much time you have to spare. I wanna say for me, I take 5-10 minutes planning and drafting the code, then another 2 minutes to ink it. Accuracy over speed, but if you find yourself spending 5+ minutes just thinking, not writing, skip it and come back at the end. Don’t sacrifice the easy marks for one pseudocode.

————-

@Cthulu
Huh, I’ve never thought about it. I have my doubts on that happening, but this is what I would do:

Name: ExampleRecord
Type: Record with the following fields: Field1, field2, field3
Length: field1: 10 digits, field2: 100 characters, field3: one bit
Description: field1: telephone number (e.g. 1234567890), field2: address (1A 23 Lu Street), field3: if they have health insurance (e.g. 1 for yes)

Variable scope (global or local) you can usually skip, as it’s not very relevant.

Good questions for both, and thank YOU for sticking around and interacting :) Keep em coming!
Data Science, Finance || University of Sydney
== First in State for Software Design and Development 2017 ==
Advanced English | Maths Extension 1 | Maths Extension 2 | Economics | Software Design & Development | Chemistry

DrDusk

  • NSW MVP - 2019
  • Forum Leader
  • ****
  • Posts: 504
  • Respect: +130
Re: HSC Software Design and Development - State Ranker QnA
« Reply #7 on: October 26, 2018, 07:44:59 pm »
0
Hi I have one more question.
If you know programming paradigms could you please explain to me the answer to this question from the 2015 HSC. For some reason its just not clicking.

Thanks, :)


Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 718
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +480
Re: HSC Software Design and Development - State Ranker QnA
« Reply #8 on: October 26, 2018, 08:44:16 pm »
+6
Hi I have one more question.
If you know programming paradigms could you please explain to me the answer to this question from the 2015 HSC. For some reason its just not clicking.

Thanks, :)
Hey DrDusk!

Good question! So with these types of questions, we need to know what public and private classes do to a piece of code. Placing a function inside the public class means that modules outside of the class can access information that appears inside the public class. Modules can read and overwrite information present in the public class!

A private class means that no modules outside of the class can overwrite information that is retained inside the class. They can read data but that's pretty much it! This is crucial if you want to keep vital information about a particular item, such as ID.

Knowing what these two classes do to information inside and outside of the class means that we can properly formulate an answer!

Firstly, what is the error? Well, think about what's in the public class and what's in the private class? Do any methods in the public class have the potential to override/compromise data already present in the error? Yes! sort() reads and writes data to a new array, so having it in the public class means that potentially there could be other methods that could screw up the ordering of the new array as done by sort().

If this happens, then clearly the output would be an unexpected result, right? As you could potentially end up with a totally (bogo) sorted array! So based on this information, placing the method in the private class means that data written by the sort() method cannot be compromised!

The sample answers also suggest the swap method added in the private class. Using the same reasoning, could you think of why you should place it in the private class?

Thanks for the question - hopefully, it has helped! :-)

DrDusk

  • NSW MVP - 2019
  • Forum Leader
  • ****
  • Posts: 504
  • Respect: +130
Re: HSC Software Design and Development - State Ranker QnA
« Reply #9 on: October 26, 2018, 09:15:22 pm »
0
Thank you very much for the answer. Its making sense but the scenario mentions nothing about other methods that can access the array so how can we just assume?

Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 718
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +480
Re: HSC Software Design and Development - State Ranker QnA
« Reply #10 on: October 26, 2018, 09:24:59 pm »
+4
Thank you very much for the answer. Its making sense but the scenario mentions nothing about other methods that can access the array so how can we just assume?
The question states that it's a fragment of code - so we're not given the full code, only a portion of the implementation. So we can assume there are other methods that enact on the code provided! :)

DrDusk

  • NSW MVP - 2019
  • Forum Leader
  • ****
  • Posts: 504
  • Respect: +130
Re: HSC Software Design and Development - State Ranker QnA
« Reply #11 on: October 26, 2018, 09:45:47 pm »
0
Ah I see but then in this question from the 2014 hsc, why cant we just move the open_account method to the private class, so it cannot be accessed by FastCash?

Also the answer says add an empty version of the open_account method to the private section of FastCash, but if were adding an empty version why does it need to be in the private section? , because if it is empty then it wont perform any function for the FastCash class anyway.

Sorry for the barrage of questions, this topic was not taught to me very nicely :(
Thanks,

Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 718
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +480
Re: HSC Software Design and Development - State Ranker QnA
« Reply #12 on: October 26, 2018, 10:35:03 pm »
+4
Ah I see but then in this question from the 2014 hsc, why cant we just move the open_account method to the private class, so it cannot be accessed by FastCash?

Also the answer says add an empty version of the open_account method to the private section of FastCash, but if were adding an empty version why does it need to be in the private section? , because if it is empty then it wont perform any function for the FastCash class anyway.

Sorry for the barrage of questions, this topic was not taught to me very nicely :(
Thanks,
Hey, no need to apologise! That's why we're here to help :-)

This is a difficult concept to grasp so here goes my best explanation!
Remember that tellers can open accounts; FastCash cannot! So if we place the "open_account" method to the private class, then we're saying that both types of tellers (normal and FastCash) cannot open accounts. But clearly only the FastCash teller can't open accounts. So what do we do? Yes! We have to create the "open_account" method for FastCash to be placed in the private section so that FastCash cannot access it!

As for your second question, FastCash IS a subclass of teller. So in fact, if we call the method "open_account", FastCash will immediately respond to it only because it's been instantiated LIKE a teller. So what we need to do is to move the "open_account" method to the private class so that if we do call a FastCash teller to open the account, it cannot!

Hopefully, this clears any misconceptions up! :-)

cthulu

  • Trailblazer
  • *
  • Posts: 35
  • Respect: +1
Re: HSC Software Design and Development - State Ranker QnA
« Reply #13 on: October 26, 2018, 10:54:43 pm »
0
Hey @opengangs,

I saw you mention bogosort and it made me wonder if you marked the last Alcon. I'm curious if my attempt at the sort was somewhat correct.

Cheers!

Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 718
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +480
Re: HSC Software Design and Development - State Ranker QnA
« Reply #14 on: October 26, 2018, 11:00:41 pm »
+1
Hey @opengangs,

I saw you mention bogosort and it made me wonder if you marked the last Alcon. I'm curious if my attempt at the sort was somewhat correct.

Cheers!
Hey, cthulu!

Ah yes - thank you for reminding me! I shall get to that sometime tomorrow :-)