• Best of luck to the class of 2024 for their HSC exams. You got this!
    Let us know your thoughts on the HSC exams here
  • YOU can help the next generation of students in the community!
    Share your trial papers and notes on our Notes & Resources page
MedVision ad

General Programming Thread (1 Viewer)

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
Hi everyone, I'm not sure if anyone has posted a thread like this before but I thought it would be cool to have a thread where people who are interested in programming can post new stuff that they are creating, problems that they are struggling with, document their progress and ask for assistance or something like that. I'd love to see a bunch of people both brand new and experienced in programming asking and answering all sorts of questions, kinda like a BoS version of Stack Overflow. I'm going into Computer Science next year and I've not been able to do much programming due to the HSC and all, so I'm very excited to get back into developing and collaborating with other people again!

Currently I'm creating a desktop app that will function similar to a high school diary but for a university student instead. I'm using xcode + swift to develop it because I'm stuck with my macOS laptop until my new Thinkpad screen arrives. I plan on expanding the program to linux + windows once im back on my manjaro setup because I feel way more comfortable developing on a linux distro than on macOS.

Anyway, my most recent implementation was a word counter for a notes section of the app:
Swift:
@IBAction func word_counter_hit(_ sender: NSButton) {
    notebook_word_counter.isEnabled = true
    let word_count = String(notebook_content_field.stringValue.components(separatedBy: " ").count)
    notebook_word_counter.title = "\(word_count) Words"
}
My next goal is to add some more customisation stuff but idk what specifically, perhaps I could add a profile picture feature? Not sure yet.
 

vivillon

Member
Joined
Sep 30, 2019
Messages
75
Gender
Female
HSC
2021
Hi!!!!!111 This is the thread for me yes. I've been working on my website for the past 2 months cause I got bored in quarantine https://vivian-truong.me/ and also cause I was procrastinating ALOT. But I've been learning Javascript and have become comfortable with HTML and CSS although ik they aren't technically considered as languages. I'm really into front end dev and UX design but sadly I suck at designing lol. Please give me feedback on my website also pls dont judge my cringey phrasing, I haven't updated it in a while cause of study and it's very cringey alsoalso my color scheme isn't the greatest so I'm working on a revamp for after HSC :) Would like to learn react.js later down the line as well, just anything website related and also same b of comp sci yeahyeah
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
Hi!!!!!111 This is the thread for me yes. I've been working on my website for the past 2 months cause I got bored in quarantine https://vivian-truong.me/ and also cause I was procrastinating ALOT. But I've been learning Javascript and have become comfortable with HTML and CSS although ik they aren't technically considered as languages. I'm really into front end dev and UX design but sadly I suck at designing lol. Please give me feedback on my website also pls dont judge my cringey phrasing, I haven't updated it in a while cause of study and it's very cringey alsoalso my color scheme isn't the greatest so I'm working on a revamp for after HSC :) Would like to learn react.js later down the line as well, just anything website related and also same b of comp sci yeahyeah
Your website is really well made and I love the colour palette! We are going into completely opposite fields sadly as I'm planning on doing more machine learning/neural network type research in the future but I do have some experience with frontend web dev from my earlier years of programming. I saw that you are really into design so I would recommend utilising https://threejs.org which is a 3D Javascript library which I personally loved using. Also it might be worth checking out https://www.typescriptlang.org. Learning typescript is a very marketable skill and it helps a lot when developing larger scale projects, which is what you will be doing a lot of if you plan on doing full stack web dev.
 

vivillon

Member
Joined
Sep 30, 2019
Messages
75
Gender
Female
HSC
2021
Your website is really well made and I love the colour palette! We are going into completely opposite fields sadly as I'm planning on doing more machine learning/neural network type research in the future but I do have some experience with frontend web dev from my earlier years of programming. I saw that you are really into design so I would recommend utilising https://threejs.org which is a 3D Javascript library which I personally loved using. Also it might be worth checking out https://www.typescriptlang.org. Learning typescript is a very marketable skill and it helps a lot when developing larger scale projects, which is what you will be doing a lot of if you plan on doing full stack web dev.
ooo that's really cool! Machine learning is so interesting as well, I'd love to learn more about it. Ty for the Javascript libraries!!! Tbh, I'm really excited to be able to program again, I have 3 more exams then I'm free ahhhh. When did you start programming and what languages are u comfortable in now ? :0
 

Porogamiii

Active Member
Joined
Aug 14, 2019
Messages
93
Gender
Male
HSC
2021
Beyond programming, here's some of my favourite free computer science resources that should help you get through uni and are great if you wanted to get ahead during the break!

Full intro to CS done by Harvard - completing this would give you a great head start before next year - I'm only about a quarter of the way, and it's amazing (remember to do the problem sets for the full experience!)

Khan Academy crash course through CS - some high quality stuff here that goes broadly over the key points for CS theory - not too much depth here but there are links to explore further

OSSU - complete CS course of entirely free resources from top uni's like MIT based on the US curriculum - super comprehensive resource

Math needed for CS - series from 3b1b going over calculus and linear algebra (the 2 main math concepts at usyd atleast). Even if you're comfortable with calculus I still recommend the series as it's a much better explanation intuitively than I ever got in school. Also Khan Academy linked here.

Calculus:

Linear algebra:
 

vivillon

Member
Joined
Sep 30, 2019
Messages
75
Gender
Female
HSC
2021
Beyond programming, here's some of my favourite free computer science resources that should help you get through uni and are great if you wanted to get ahead during the break!

Full intro to CS done by Harvard - completing this would give you a great head start before next year - I'm only about a quarter of the way, and it's amazing (remember to do the problem sets for the full experience!)

Khan Academy crash course through CS - some high quality stuff here that goes broadly over the key points for CS theory - not too much depth here but there are links to explore further

OSSU - complete CS course of entirely free resources from top uni's like MIT based on the US curriculum - super comprehensive resource

Math needed for CS - series from 3b1b going over calculus and linear algebra (the 2 main math concepts at usyd atleast). Even if you're comfortable with calculus I still recommend the series as it's a much better explanation intuitively than I ever got in school. Also Khan Academy linked here.

Calculus:

Linear algebra:
I’ve seen the Harvard course and wanted to do it after hsc. Are you planning on paying for the certificate?
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
ooo that's really cool! Machine learning is so interesting as well, I'd love to learn more about it. Ty for the Javascript libraries!!! Tbh, I'm really excited to be able to program again, I have 3 more exams then I'm free ahhhh. When did you start programming and what languages are u comfortable in now ? :0
I started in year 4/5 with Python just making text based games and small text based projects. Then in high school I did a bunch of projects like creating the frontend of my schools website in HTML/CSS/AngularJS, creating some neural network based projects in C# + Unity and other less important stuff. In years 11-12 I only really developed what I had to for my software class. I made an online shopping kiosk using the woolworths api, a very basic version of wii sports for the pc in Unreal engine + C# and then for my major I made a desktop app using https://jeltef.github.io/PyLaTeX/current/ and PyQT5, basically using a stack of Python + PyQT + LaTeX in order to make an app that generates exams for E1 & E2 maths students at my school. Right now I feel very comfortable developing in:
  • C#
  • Python
  • HTML/CSS/JS
I also have pretty extensive experience with Linux as I've been running arch based distros on my laptop for a few years now. I can program basic things in Java and C++, but have never tried anything major with those languages, something I hope to change going into 2022. HBU what languages are you most comfortable with and what are you most excited to learn about going into a CS degree?
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
Beyond programming, here's some of my favourite free computer science resources that should help you get through uni and are great if you wanted to get ahead during the break!

Full intro to CS done by Harvard - completing this would give you a great head start before next year - I'm only about a quarter of the way, and it's amazing (remember to do the problem sets for the full experience!)

Khan Academy crash course through CS - some high quality stuff here that goes broadly over the key points for CS theory - not too much depth here but there are links to explore further

OSSU - complete CS course of entirely free resources from top uni's like MIT based on the US curriculum - super comprehensive resource

Math needed for CS - series from 3b1b going over calculus and linear algebra (the 2 main math concepts at usyd atleast). Even if you're comfortable with calculus I still recommend the series as it's a much better explanation intuitively than I ever got in school. Also Khan Academy linked here.

Calculus:

Linear algebra:
Thank you! I did the CS50 course during this year and it was such a good experience, again thank you for all this!
 

brent012

Webmaster
Webmaster
Joined
Feb 26, 2008
Messages
5,290
Gender
Male
HSC
2011
ooo that's really cool! Machine learning is so interesting as well, I'd love to learn more about it. Ty for the Javascript libraries!!! Tbh, I'm really excited to be able to program again, I have 3 more exams then I'm free ahhhh. When did you start programming and what languages are u comfortable in now ? :0
If you're interested in machine learning, i'd highly recommend Python for that.

It's a great beginners language, but it's basically the standard for ML these days as there's a lot of good open source packages for stats, data science and machine learning E.g. NumPy, SciPy, pandas, PyTorch/TensorFlow/Keras/Sci-Kit Learn.

In fact, python would probably be my recommendation to anyone new-ish to programming unless they had a very specific project or career in mind. Web development or anything with front end and UX, you'd probably be better served learning javascript, typescript is great too but it's technically a superset of javascript so it's good to start with just javascript.
 

Porogamiii

Active Member
Joined
Aug 14, 2019
Messages
93
Gender
Male
HSC
2021
I’ve seen the Harvard course and wanted to do it after hsc. Are you planning on paying for the certificate?
I'm not planning to get the certificate because I think that's more so for people taking the self-taught route to add to their resume. A uni degree would basically make it redundant in terms of merit for employers imo. More important is the final project you make for the course which is valuable for your resume.
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
If you're interested in machine learning, i'd highly recommend Python for that.

It's a great beginners language, but it's basically the standard for ML these days as there's a lot of good open source packages for stats, data science and machine learning E.g. NumPy, SciPy, pandas, PyTorch/TensorFlow/Keras/Sci-Kit Learn.

In fact, python would probably be my recommendation to anyone new-ish to programming unless they had a very specific project or career in mind. Web development or anything with front end and UX, you'd probably be better served learning javascript, typescript is great too but it's technically a superset of javascript so it's good to start with just javascript.
Python for machine learning is really easy to get into and I agree that its great for beginners but is it really the standard? I haven't been in any industry setting yet so I have no clue if what I'm saying is true but wouldn't something such as C# + cnk be more efficient? Sorry if it's a dumb question lol I've never really looked into the industry practices regarding ML.
 
Joined
Nov 6, 2021
Messages
61
Location
Hell
Gender
Male
HSC
2021
I made a multiplayer chess game that works on the local network for my SDD major project. I didn't get to finish it - it doesn't implement taking turns or owning peices (you can move both colours at any time you want), pawn promotion was not implemented, and castling was not implemented - because I was running out of time and wanted to get multiplayer working to demonstrate that it worked.

I made it in a language called Haxe, which compiles down into other languages such as c++ and JS. I used the HaxeFlixel engine for the client side, because it is a simple 2D engine and seemed to work well for what I wanted to do. HaxeFlixel let me run the game with HTML5 on a browser (with html+js) and nativley on windows (c++). This wasn't too useful, because I just used html5 because it compiled way faster and used much less battery, especially on the laptop I was using at school.

Haxe's JS support meant that I could use Node.js for the server side and not have to actually use JS because I HATE JS WITH A PASSION. I won't elaborate on this because this already looks like an essay. This also meant that I didn't have to rewrite a bunch of stuff in a different language for the server side (i.e. the data structures, and some other stuff).


Sorry for the essay. JS sucks.
I could show a video of it working after my last hsc on monday if anyone wants to see it/cares.
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
I made a multiplayer chess game that works on the local network for my SDD major project. I didn't get to finish it - it doesn't implement taking turns or owning peices (you can move both colours at any time you want), pawn promotion was not implemented, and castling was not implemented - because I was running out of time and wanted to get multiplayer working to demonstrate that it worked.

I made it in a language called Haxe, which compiles down into other languages such as c++ and JS. I used the HaxeFlixel engine for the client side, because it is a simple 2D engine and seemed to work well for what I wanted to do. HaxeFlixel let me run the game with HTML5 on a browser (with html+js) and nativley on windows (c++). This wasn't too useful, because I just used html5 because it compiled way faster and used much less battery, especially on the laptop I was using at school.

Haxe's JS support meant that I could use Node.js for the server side and not have to actually use JS because I HATE JS WITH A PASSION. I won't elaborate on this because this already looks like an essay. This also meant that I didn't have to rewrite a bunch of stuff in a different language for the server side (i.e. the data structures, and some other stuff).


Sorry for the essay. JS sucks.
I could show a video of it working after my last hsc on monday if anyone wants to see it/cares.
Thats sick! I wish you could have finished it, but I would love to see the video of it! Haha i relate to your hate of JS, sometimes it really is frustrating to work with.
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
Wow y’all seem to know a lot lol

I’m going into Comp Sci next year but I don’t really know anything at all about programming 😭😭
Thats completely fine honestly and It's why I wanted to make a thread like this to expose people to programming. Your uni will teach the programming courses assuming that you don't know anything pretty much, and will start with the basics. I would advise doing some python stuff as a starting point because it's really easy to get into, and then probably expose yourself to the language you will be learning for your first year courses at uni (I know at UNSW they learn C and at UTS they learn Java). I hope you enjoy your journey into CS and programming, good luck!
 

brent012

Webmaster
Webmaster
Joined
Feb 26, 2008
Messages
5,290
Gender
Male
HSC
2011
Python for machine learning is really easy to get into and I agree that its great for beginners but is it really the standard? I haven't been in any industry setting yet so I have no clue if what I'm saying is true but wouldn't something such as C# + cnk be more efficient? Sorry if it's a dumb question lol I've never really looked into the industry practices regarding ML.
Yep, it's the standard, but the competitors in that space are languages more like R and Matlab. Microsoft do have some ML stuff but even they support Python with Azure for ML as it's so prominent.

Python is "slow" and C# is much faster, but C# still doesn't compile down to native machine code anyway so, while perfectly fine for most use cases, C# is slower than other languages like C/C++, Rust and even Fortran which is still big for scientific computing.

But the thing is, most data science and ML applications aren't executing slow interpreted Python code like loops - they use frameworks which call native code. NumPy provides a clean API for working with matrices in Python, but if you use NumPy well all of your computation is being executed by native code underneath - and mostly by crazily optimised numeric packages like BLAS/LAPACK written in Fortran which use special CPU instructions to process data in parallel on the CPU, even within a single core (SIMD instructions).

It's the same story for Machine Learning, and especially deep learning. A CPU is too slow for training large ML models, so even plain C++ wouldn't be great. Instead frameworks like PyTorch and TensorFlow will let you code stuff in Python, but the actual training process will be done on GPUs (or clusters of them) using CUDA or maybe even dedicated hardware like TPUs rather than on a CPU. The trained models then don't necessarily have to use python to run, Tesla use PyTorch to train their self driving models but then the trained neural networks get run on their own proprietary hardware.

So in summary Python is basically just the "glue" sitting on top of all of this stuff, and the performance of that language isn't so important. Many other languages (e.g. C#) can be used in that way, but Python has a lot of pros for this kind of work and an established ecosystem for it.
 

vivillon

Member
Joined
Sep 30, 2019
Messages
75
Gender
Female
HSC
2021
I started in year 4/5 with Python just making text based games and small text based projects. Then in high school I did a bunch of projects like creating the frontend of my schools website in HTML/CSS/AngularJS, creating some neural network based projects in C# + Unity and other less important stuff. In years 11-12 I only really developed what I had to for my software class. I made an online shopping kiosk using the woolworths api, a very basic version of wii sports for the pc in Unreal engine + C# and then for my major I made a desktop app using https://jeltef.github.io/PyLaTeX/current/ and PyQT5, basically using a stack of Python + PyQT + LaTeX in order to make an app that generates exams for E1 & E2 maths students at my school. Right now I feel very comfortable developing in:
  • C#
  • Python
  • HTML/CSS/JS
I also have pretty extensive experience with Linux as I've been running arch based distros on my laptop for a few years now. I can program basic things in Java and C++, but have never tried anything major with those languages, something I hope to change going into 2022. HBU what languages are you most comfortable with and what are you most excited to learn about going into a CS degree?
woahhhh everyone in the thread is rly knowledgable!! Compared to you, I've barely done anything but I hope to do more once HSC is over. I'm pretty comfortable in Python, HTML/CSS and am learning JS. I want to learn C# cause I've heard it's taught in UNSW (although probs wont make it in) and also wanted to make a 'study with your friends' type app/website like https://hours.zone/ but with more features and less lag/easier use so just building up my skills hopefully!! My friend told me about LaTeX once and my brain broke LOL, it seems really cool but I lowkey despise maths so I never tried programming it.
I'm really excited to meet like-minded people and be able to share code n just talk about this stuff with new friends since I haven't been able to at my school for the most part. ALSO, I'd really like to learn more about cyber security just cause it's such a facinating topic so I hope I can learn more about it through the degree!! Although, I may choose to do Design Computing at USYD instead since its more UX design based but not sure... What school do you want to go to for Comp Sci??
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
Yep, it's the standard, but the competitors in that space are languages more like R and Matlab. Microsoft do have some ML stuff but even they support Python with Azure for ML as it's so prominent.

Python is "slow" and C# is much faster, but C# still doesn't compile down to native machine code anyway so, while perfectly fine for most use cases, C# is slower than other languages like C/C++, Rust and even Fortran which is still big for scientific computing.

But the thing is, most data science and ML applications aren't executing slow interpreted Python code like loops - they use frameworks which call native code. NumPy provides a clean API for working with matrices in Python, but if you use NumPy well all of your computation is being executed by native code underneath - and mostly by crazily optimised numeric packages like BLAS/LAPACK written in Fortran which use special CPU instructions to process data in parallel on the CPU, even within a single core (SIMD instructions).

It's the same story for Machine Learning, and especially deep learning. A CPU is too slow for training large ML models, so even plain C++ wouldn't be great. Instead frameworks like PyTorch and TensorFlow will let you code stuff in Python, but the actual training process will be done on GPUs (or clusters of them) using CUDA or maybe even dedicated hardware like TPUs rather than on a CPU. The trained models then don't necessarily have to use python to run, Tesla use PyTorch to train their self driving models but then the trained neural networks get run on their own proprietary hardware.

So in summary Python is basically just the "glue" sitting on top of all of this stuff, and the performance of that language isn't so important. Many other languages (e.g. C#) can be used in that way, but Python has a lot of pros for this kind of work and an established ecosystem for it.
I see, thank you for this explanation. All this time I've been thinking that pythonic ML was "too slow" to be using.
 

Yakult1

Active Member
Joined
Aug 17, 2020
Messages
106
Gender
Male
HSC
2021
woahhhh everyone in the thread is rly knowledgable!! Compared to you, I've barely done anything but I hope to do more once HSC is over. I'm pretty comfortable in Python, HTML/CSS and am learning JS. I want to learn C# cause I've heard it's taught in UNSW (although probs wont make it in) and also wanted to make a 'study with your friends' type app/website like https://hours.zone/ but with more features and less lag/easier use so just building up my skills hopefully!! My friend told me about LaTeX once and my brain broke LOL, it seems really cool but I lowkey despise maths so I never tried programming it.
I'm really excited to meet like-minded people and be able to share code n just talk about this stuff with new friends since I haven't been able to at my school for the most part. ALSO, I'd really like to learn more about cyber security just cause it's such a facinating topic so I hope I can learn more about it through the degree!! Although, I may choose to do Design Computing at USYD instead since its more UX design based but not sure... What school do you want to go to for Comp Sci??
I'm planning on going to UNSW but if I dont get in then I'll just take my UTS offer and transfer. Cybersec is really cool and if you do pursue it, UNSW has a major called "Security Engineering" which is all about cyber security. This is taken from the handbook:
This major offers a stream to undergraduate students intending to practice in Cyber Security in industry. This is a high demand area of employment and is forecast to have serious undersupply of graduates to at least 2025
USYD is a solid choice as well and that Design Computing degree seems to fit your interests perfectly. For me I plan on going down the research route and have a huge interest in computational theory and mathematical applications in computer science. My plan is to do:

Double Bachelors degree: BSc Advanced Mathematics (Hons) / BSc (Comp. Sci) @ UNSW → PhD @ UNSW

Im not sure if you have to do a masters before a PhD in Australia but I've seen people who have done an honours degree then moved straight into PhD's so hopefully I could do the same. So yeah thats my plans for the future, do you know what you want to do with your degree or are you still a bit uncertain?
 

Drdusk

Moderator
Moderator
Joined
Feb 24, 2017
Messages
2,022
Location
a VM
Gender
Male
HSC
2018
Uni Grad
2023
Created a messenger type application with Python for an assignment this term with a server and many clients. Also had to implement p2p messaging between clients. This was all done using socket programming. It wasn’t really difficult and tbh programming has kinda become mundane and boring to me. I much prefer Cybersecurity.
 

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

Top