2021 HSC SDD First In Course: My thoughts, comments and advice for future students [Guide] (1 Viewer)

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021
Hey guys,

It's Lincoln Yan here - or more formally known as Yijun Yan. I'm one of the two students who got FIC (First in Course) for SDD in HSC 2021.

BoS helped me quite a lot during my HSC revision, especially for SDD - and I don't think I would have achieved FIC without the help of the forum. That's why, as a give back to the community, I'm writing this thread to kinda summarise my SDD journey and I hope this thread will help someone in the future.

Before I start, I would like to say thanks to @🍑 this is a peach (https://boredofstudies.org/members/🍑-this-is-a-peach.1611367390/) and @Drdusk (https://boredofstudies.org/members/drdusk.1611277308). Thank you so much for answering my SDD questions & giving me SDD past papers the night before my SDD exam. I would also like to pay tribute to my SDD teachers, especially Mr. P who tragically passed away right before our trials. You are excellent teachers & you really helped me a lot and I will remember you guys.

Disclaimer:
- I can not guarantee the accuracy of this post nor can I ensure the validity of my method of studying. Some of the contents I'll talk about might not be in the HSC syllabus but I do think they will be helpful (if you have extra time of course, or if you are very comfortable with coding). Everybody is different so you might need to take my advice with a grain of salt.

Let's get started.

My thoughts about HSC 2021 SDD Exam:
"Well, the exam isn't that hard". That was what I thought when I first opened the paper. It turned out to be more difficult than I had expected and I nearly ran out of time, but hey it turned out to be fine.

I'll kinda comment a bit on the harder ones (at least the ones I thought was hard):
[Well I've already spent four hours writing this post so I'm gonna leave this part out for now.]

Improving your debug/problem-solving skills:
Write code and debug them.

If you have time & if you really like coding, try and make your own project using whatever language you like. Your coding skills get better from coding. Maybe a project that addresses an issue that bothers you. For me, as I digitized all my work since Year 10, I realized that there wasn't an easy way to manage all my paper documents & scans. So I made a document management system, DocumentX (Linked below) and through that project alone, I practiced my Python skills (and relevant frameworks such as Flask & learned a whole bunch of new stuff such as MongoDB, how to properly store passwords, etc). That really helped my major work.

If you don't - well you're gonna need to do a whole bunch of coding anyway and that helps you with your debug/problem-solving skills.

Understand the algorithms. Code them. Debug them. Mess around with them.
It's important that you understand the intuitions behind a certain question/algorithm. Don't just memorize the implementation of an algorithm without truly understanding them - memorization does not always work as you'll need to understand the intuitions to adapt them to the question.

For me, I think a good way to learn algorithms is to:

1. Look at the problem. Try and work out a solution/algorithm. It might be dumb, it might be inefficient, it might take 20 seconds to sort an array, but it doesn't matter so much. What matters is that - it's yours. You designed the algorithm.
2. Look at how the algorithm works (but don't look at its implementation). Compare the idea with your idea, and ask yourself:
---- How is it different from my algorithm?
---- If the idea is basically the same, how can I try and optimize my algorithm? For example, for bubble sort, adding a (bool) has_changed flag can reduce the number of useless comparisons.
---- If the data is large (for example, 100 items), is my algorithm still efficient enough? What about 100000 items? Can I avoid using a loop inside a loop?
3. Implement the algorithm based on its idea. Once you're done with the above steps, you might want to try and implement the algorithm using its ideas. For example, for bubble sort, you can try and implement the "loop and compare & swap if necessary" logic.
4. Finally, look at the implementation and compare it with yours.

If you follow those steps, you'll likely be able to truly understand each and every line of code as well as intuitions behind them - e.g. Why do I need to add a (bool) has_changed flag & how it can dramatically reduce the run time if the array is very long.

For most other concepts:
They are usually quite intuitive and can be related to our daily life. For example, if you look at this question (Question 25):
- Describe ONE compatibility issue and ONE performance issue relevant to {a mobile app}.

Well... You can't just install an android app on an iPhone. Considering that this is a translation app, we do want to ensure that the app works on both iOS & android so we can get lots of users (so iOS users can communicate with android ones). Here you go - the compatibility issue.
Also, imagine opening Instagram and it takes 1 minute to load - you're not getting many users with a slow app. Especially with translation apps - you don't want to awkwardly wait for like 2 minutes for your app to load before starting a conversation in real life. So that's the performance issue.

You see - it's kinda intuitive. Just bring yourself into the situation - look from the user's perspective. It should be intuitive.
Remember: You need to provide sufficient reasoning. Justify why that's important, just like what I did above.

Stuff that you do need to memorize & practice:
- EBNF - practice a lot.
- CPU Fetch-Decode-Execute Cycle and the role of each register.
- Development approaches, to a certain extent.
- The IDEAS behind those algorithms and their implementation, but only after you understand them.
- ASCII (Option 2)
- Other stuff

The major work:
Well, another huge part.

Some context first. I'm not sure about your school's assessment schedule, but here's ours (KHHS):
- AT1: Major work planning + Idea generation
- AT2: Option topic exam
- AT3: Major work is due
- AT4: Trial

Due to COVID, our AT3 deadline was extended to 2 weeks before our Trials (Term 4) as some students weren't able to access their project on school computers. It turns out that source management is quite important - more below.

What should I do?
It depends.

If you're already very good at coding (I had 7+ years of experience) - then yeah go wild. But do keep in mind that you will also need to focus on the theory component, docs, and other projects. Ask your teacher before using open source code/frameworks/other requirements. Our teacher was nice and I was able to use Flask and Vue as long as I wrote most of the code and I could explain every single line of my code.

If you're new to coding: Experiment with some smaller projects. Give it a try.

Can't give much advice here - read other threads on BoS or consult with your teacher.

My Major Work
https://nowask.me/ (*)
An anonymous Q&A platform. The project is too huge for major work and I didn't want to spend too long on it so I submitted the authentication system.

WARNING: DO NOT USE THE SEND EMAIL API TO SPAM OTHERS. I WILL REMOVE THE API KEY IF YOU SPAM & THEN YOU WILL HAVE TO DEPLOY IT YOURSELF TO TRY IT OUT.

Source Code:
Backend: https://github.com/yyjlincoln/NowAskMe-Server (**)
Frontend: https://github.com/yyjlincoln/NowAskMe-Frontend

Documentations:
https://docs.yyjlincoln.app/nowaskme (***)

I got:
- Project: Full mark
- Docs: -1 or something but tbh the teacher's explanation isn't convenicing. He doesn't like to give full marks so I reckon that's fair.
- Rank: First.

(*) If the above link doesn't work (as I will not be renewing the domain after 2022), try:
Or deploy the code yourself

(**) Switch to the master branch. I adapted the whole thing to RequestMap, my other project after the HSC so the current default branch may not be too relevant

(***) It's like 200+ pages. It's really comprehensive.

Highly recommended tools that you really should look into:
- Git (Source Management)
- Github (The must-have platform for a hacker. Back up your code online & collaborate with other people)

Some useful tools/stuff that you should look into if you have extra time to spare to become a better hacker:
- Linux basics
- Terminal/Shell
- Protocols such as HTTP, DNS, TCP (What happens when you open up a web page?)

Which Tech Stack should I use?
Depends on your skillset.

If you're already comfortable with at least one language:

Web:
- If you're comfortable with Web, probably try React/Vue/TailwindCSS. To enhance web experience, you can look into Framer Motion or GSAP
- To communicate with other clients, you might need an API server (or use stuff like Firebase). If you choose to go down this track, then Flask (Python), Django (Python), Express.JS (Node) might be some choices.
- For the database, I will recommend MongoDB + mongoengine (Python ORM) or Prisma (Node, Javascript) + lots of supported dbs. Use an ORM library!

Machine Learning:
- If you're comfortable with Python, then you can try TensorFlow & make something related to machine learning.

Game:
- I'm not an expert. Probably try Unreal / Unity?

Otherwise, you can:

- Try learning a new language and making a text-based game. Probably Python?
- Do stuff like Visual Basic
- Use some easier languages
- Maybe a static website?

Don't worry - You don't need much to make a successful major work. If you're not that comfortable with coding, try doing something else! What I've listed above are for those that are really comfortable with coding & who need direction. I really don't want to scare you :)

<Message too long. Continues...>
 

Attachments

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021
I'm new to coding. Which languages would you recommend?
- Visual Basic. I don't use it but I believe a lot of schools teach it & a lot of teachers have knowledge of this language.
PROS: Kinda simple in terms of creating GUI.
CONS: Not suitable for Web apps. Not that easy to create beautiful UIs (you better use Web for that)
- Python3.
PROS: Beginner-friendly. Super easy to learn.
CONS: Well it's interpreted, not compiled - it's slow. You'll learn this at some stage in your course :)
- JavaScript.
PROS: Kinda easy to learn. Great for web dev.
CONS: this can be a nightmare. I mean, literally, "this". Search it up. It's also single-threaded (although you can use the promise API)

Having an MVP early.
A Minimum Viable Product (MVP)... Search it up, I'm really tired after like 2k words. Have it early.

Manage your source code using Git:
With git, you can revert to previous versions of your code (commits), compare them, backup (push) code to platforms such as Github, etc. Imagine this scenario - your code was working 2 hours ago and you changed something and now it's broken. You have 10 minutes till the deadline. With git (and if you have committed), you can revert your code back to that working version and submit that.

Beyond the major work:
- Too tired. Try new stuff, make friends, learn to collaborate with others on Github, etc.

Getting ready for the exam:
- Read the notes above.
- I was gonna write other stuff but my hands are breaking rn.

After the HSC:
- Fellowship. I did the MLH Fellowship.
- Hackathons.
- Bruh have some rest.

Resources that really helped me:
- [Check the attached file in the first post]
- [Check the attached file in the first post]

I'm really sorry that I couldn't find their original links - it would be great if someone can help me with that. They're both from BoS.

Shoutout to the authors of those files!! They literally helped me to get FIC.

Contact me:
Any issues/comments?
- My website: https://yyjlincoln.com/
- Other ways to contact me: https://yyjlincoln.com/connect. (LinkedIn, Github, Email, etc)
- Email: lincoln@yyjlincoln.com. Please tell me that you're from BoS.
- Or DM me.

Fun facts: (if you're curious how the FIC process works)
- I got the call on Sunday 16/JAN/2022 at 11:48.
- The rehearsal was on 18/JAN/2022 and the actual ceremony starts from 11 am 19/JAN/2022.
- They sent us an information kit & some FIC social media assets - get yours if you want to see how it looks like :)
- We had to keep it strictly confidential and we were not allowed to disclose the news to anybody except our immediate family members. I really wanted to write this thread but yeah I just had to wait.
- English is not my first language and it was the only subject that I didn't get a Band 6 for :)
- Remember to post under this thread or tell me if you happen to be another SDD state ranker in 2022 HSC!

Licenses:
- This content (in two parts) is licensed under CC BY-NC 2.0. Contact me if you need a different license for this.
- Source code of my major work is licensed under the Apache License. Both the front end and the back end. Check out relevant Github repositories for more details.
- Please check the copyright section (in the Appendix) for relevant copyright/license information for NAM Docs. (https://docs.yyjlincoln.app/nowaskme). You are free to access them but you may not modify them and submit them as your own (that's called plagiarism). If a specific file does not have a license attached to it, assume that it's CC BY-NC.

Don't want to be mean - but do learn those licenses :) It's a part of Social & Ethical Issues in the syllabus. As a hacker, you need to know how different licenses work.

I'll update this post if I have time but it will be unlikely.
Version: 1.0.0 (Timestamp=1642505407)
 

Rose157

New Member
Joined
Jan 14, 2019
Messages
16
Gender
Female
HSC
N/A
Hey, saw you at the ceremony! Congrats and best of luck on your future!
 

vishello

New Member
Joined
Nov 25, 2018
Messages
15
Gender
Male
HSC
2022
I saw you also at the ceremony. Congrats. Is it still possible if I messed up my hsc task 1 worth 20%. I got 53%. is band 6 still possible? :( and also thanks for your advice. it would be really useful.
 

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021
I saw you also at the ceremony. Congrats. Is it still possible if I messed up my hsc task 1 worth 20%. I got 53%. is band 6 still possible? :( and also thanks for your advice. it would be really useful.
It depends - I think the final ranking is more important than the actual internal mark.
Internal Mark: 53% * 20% = 10.6% (out of 20%)
So it's about a 9.4% mark loss there. I believe how the system works is (I'm gonna write it out programmatically since you're an SDD student :))
Code:
const internalMark: Number = <InitialValue> // Your internal mark
const hscMark: Number = <InitialValue> // You hsc mark

const hscMarksArraySortedDescending: Number[] = [<Value>, ...] // Depends on your school's performance
const schoolInternalMarkArraySortedDescending: Number[] = [<Value>, ...]

const internalRank: Number = schoolInternalMarkArraySortedAscending.indexOf(internalMark)

const finalMark: Number = someNESAScalingMagic(hscMark * 0.5 + hscMarksArraySortedAscending[internalRank] * 0.5)

if (finalMark >= band6CutOff) {
    console.log("Band 6")
} else {
    console.log("Not Band 6")
}
So if you understood the logic, then you'll realise that:
- It's dependent on the overall performance of your entire class, "The better we all do the better we all do"
- It depends on your internal rank, which is dependent on your internal mark.

We can make a few observations:
- If your school is very strong, then you might be fine even if you are ranked the last (since hscMarksArraySortedAscending[internalRank] is high)
- It's equally as dependent on your HSC Mark (50%)
- 9.4% is quite an internal mark loss but you might still end up fine.

I can't yield a binary answer as it's dependent on a lot of factors, but I will say the answer is likely to be "possible".

Fun fact: There's a bug in that code. Fix it! :)
 

vishello

New Member
Joined
Nov 25, 2018
Messages
15
Gender
Male
HSC
2022
It depends - I think the final ranking is more important than the actual internal mark.
Internal Mark: 53% * 20% = 10.6% (out of 20%)
So it's about a 9.4% mark loss there. I believe how the system works is (I'm gonna write it out programmatically since you're an SDD student :))
Code:
const internalMark: Number = <InitialValue> // Your internal mark
const hscMark: Number = <InitialValue> // You hsc mark

const hscMarksArraySortedDescending: Number[] = [<Value>, ...] // Depends on your school's performance
const schoolInternalMarkArraySortedDescending: Number[] = [<Value>, ...]

const internalRank: Number = schoolInternalMarkArraySortedAscending.indexOf(internalMark)

const finalMark: Number = someNESAScalingMagic(hscMark * 0.5 + hscMarksArraySortedAscending[internalRank] * 0.5)

if (finalMark >= band6CutOff) {
    console.log("Band 6")
} else {
    console.log("Not Band 6")
}
So if you understood the logic, then you'll realise that:
- It's dependent on the overall performance of your entire class, "The better we all do the better we all do"
- It depends on your internal rank, which is dependent on your internal mark.

We can make a few observations:
- If your school is very strong, then you might be fine even if you are ranked the last (since hscMarksArraySortedAscending[internalRank] is high)
- It's equally as dependent on your HSC Mark (50%)
- 9.4% is quite an internal mark loss but you might still end up fine.

I can't yield a binary answer as it's dependent on a lot of factors, but I will say the answer is likely to be "possible".

Fun fact: There's a bug in that code. Fix it! :)
ok thanks for the logical answer
 

spill

New Member
Joined
May 11, 2020
Messages
7
Gender
Undisclosed
HSC
2021
Haha, if only I had such a comprehensive overview of how to properly study for SDD, esp. for debugging and interpreting algorithm logic. I did pretty well and I thought I was good for a high school level, but looking at how in-depth you went is really impressive and has me humbled.
Congrats on coming first!
Got a long road ahead in compsci 😅
can we be friends
 

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021
Haha, if only I had such a comprehensive overview of how to properly study for SDD, esp. for debugging and interpreting algorithm logic. I did pretty well and I thought I was good for a high school level, but looking at how in-depth you went is really impressive and has me humbled.
Congrats on coming first!
Got a long road ahead in compsci 😅
can we be friends
Of course - shoot me a DM and we can exchange socials or something
 

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021

lr2701

New Member
Joined
Nov 9, 2021
Messages
1
Gender
Female
HSC
2022
Hi, I am taking my HSC this year and I'm extremely unconfident in my ability to code as either my teacher has not taught me well enough or I was not advised that I'd need such an extensive background in coding to succeed in this course (I'm assuming it's a bit of both but it's a bit late now). I just picked up another unit so I was wondering if you think that a strong background and knowledge of coding is important for doing well in this course. I obviously understand it is but is there any way I could rely on acing theory and doing mediocre in the actual coding and still get a high atar?

Thanks
 

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021
Hi, I am taking my HSC this year and I'm extremely unconfident in my ability to code as either my teacher has not taught me well enough or I was not advised that I'd need such an extensive background in coding to succeed in this course (I'm assuming it's a bit of both but it's a bit late now). I just picked up another unit so I was wondering if you think that a strong background and knowledge of coding is important for doing well in this course. I obviously understand it is but is there any way I could rely on acing theory and doing mediocre in the actual coding and still get a high atar?

Thanks
Well, remember that the HSC is an exam, not a coding assignment - although there are quite a few algorithm questions. You don't need to write actual code in the exam - but you will need to know all the logic & how to solve stuff using pseudocode.

Imo, you don't need extensive knowledge of coding. Our teacher & lots of students in my class didn't know how to code either and they survived.

You might have a major work in your school - it's not externally marked - and remember that not everyone knew how to code. Many people are new to coding so they might not be able to produce a working product either. So imo it really depends on your school & ranking - if you can get a higher internal rank then you will benefit from it.

Probably do lots of pseudocode practices if you're not too comfortable with coding?
 

lincolny

Member
Joined
Jul 8, 2021
Messages
34
Gender
Male
HSC
2021
Is there any way I could rely on acing theory and doing mediocre in the actual coding and still get a high atar?
In my opinion, the answer is yes, definitely.

I chatted with a few state ranks earlier last week and it turned out that they don't necessarily have an extensive background in coding. Sure, an extensive background will definitely help as it will help you solve those algorithm questions (basically coding in the exam on paper) and help you understand a few concepts (such as single line stepping & stubs etc) but it's definitely not a requirement and you should be able to do well if you can ace theory & is comfortable solving those algorithm/pseudocode questions.

In terms of ATAR - SDD can help if you can achieve highly in the course. imo scaling doesn't really matter that much if you can push it to a high 90s (& potentially state rank or close to it). In my case, I believe SDD replaced my Chemistry (92) and boosted my ATAR by around ~0.5 - 1.

Something to keep in mind is that it also depends on your school & your internal ranking. If you can get a very good internal rank (with theory or otherwise) then you might be able to take advantage from people who's better at coding in your school (the Assessment Mark component of your overall HSC mark).
 

DaVinci468

New Member
Joined
Aug 4, 2018
Messages
2
Gender
Male
HSC
2022
I know this is a 5 month old thread but what application did you use to create your DFD1 and Structure Chart?

The structure chart for my major work will probably need editing so I would rather not solidify it with ink.
 

cadmia17

New Member
Joined
Sep 14, 2022
Messages
2
Gender
Undisclosed
HSC
2022
Thank you very much for these guides. Do you know what the cutoff for a state rank was last year?
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Top