My Courses Reviews - with blogs
#unsw courses
Note:
Below are based on 2021, pls references to the latest school website for accurate info.
It’s more of a blog-ish comment, there are more in-depth review on school reddit/CSE facebook gp/online/more.
CSEsoc make a course review website updated: 2022 Jan
I try to recall at least one memory from each lecturer who taught me.
In short
Most COMP courses have a healthy balanced between coding and theory. Network course focus more on theory. COMP3121 algo all theory. First year COMP course more on coding.
Background
I am in CS degree majoring in AI. Except for COMP4418 - the logic reasoning (prolog) course, COMP9313 (Big data mangement) & COMP9318 (Data Warehousing and Data Mining). I think I finish all the AI related courses in our uni (except those whose code begins with “MATH” since they are more for the math student)
Notes
Most lectures are either live or Pre-recorded + consultation (Q&A).
If no details on the exam are mentioned, then the standard exam format applies (exam after 19 Term3 all online).
ENGG2600 description below is more general due to IP.
For those courses average 100 slides per week
- Means you need to learn selectively, cover all points but with a focus on what’s important. Check the corresonding scholl website for the weekly course outline.
Sides
For AI stream
- COMP3411 AI is not necessary unless u have to take it.
- Order of AI courses recommendation: ML then DL then CV.
- ML gives a great intro with details, can be done along with DL in the same term, reason why CV after DL is simply u can use NN for the final project.
Surprisingly, our school does not have NLP courses.
Summary to the study notes will be in separate posts.
19 Term3
As the only term that is in-person during my Bacholr degree (luckily have an extra year with UNSW during Foundation year/Year12). Recall: Prof Richard Buckland, before I began my uni studies, I, at 2019, watched his youtube videos about intro of programming(COMP1917 back then) that is published 10 years ago. That time, his hair is still less gray until I met him in person twice in COMP1511 and MATH1081 where our Lecurer Marc Chee and Daniel received their best teacher award by students. What’s funny is that: Both Marc and Daniel told us that they were student of Richard back in those days when he is a lecturer. One example I still recall one is his talks about testing. He made an analogy that instead of firing a cannonball with high precision that takes a lot of time towards the warship (the bugs), u can fire multiple times. The 1081 tutor mentioned that we were so luck since he has been teaching for a while still havent see him in person since he is known to be busy. Remember Chee said to us, he wants us to make the reading experience of our code similar to a book. And so I end up manully write a TOC for the assignment and manually updates it on that notepad like editor(Quick mark).
COMP1511 Programming Fundamentals
Learn the pogramming basic in C, pls revisit double linked list for the final (thou it may not be a full example in the lab)
CSESoc has plenty of resources, highly recommended, I recall there is a flowchart on how all COMP courses are related (Big shout out to the person did it). The CSE learning has a youtube channel discussing vscode, Vlab, winscp, etc way to connect to the school server and modify the files. I personally use vscode, Vlab and winscp. I recall they stress in the early stage of programming, it is important to foster some good habits before being exposes to those convenitent vscode extensions. I personally think thou, efficiency is more important.
Marc Chee said that Richard said if there is one thing only that the student takes away from ur class after many years, what would that be to u? He said to us, my meme is best in class, jokes:).
COMP1131 Mathematics 1A
Standard Universal First Year MATH with pen and paper. Fav thing is the $2 folder (for paper with holes?) bought from the Quad, the shop opposite the school chemist shop. Taking good notes and put it in feels like collecting stamps back in the days
MathSoc (Huge shout out to Gerald Huang), similar to CSESoc, for the early year work, gives plenty of resources, past solution on quizes, etc.
Recall: Prof Chris Tisdell - Linear Algebra part The other lecturer love to use ppt extensively, dont recall what happen to his calculus section much.
Goooooooood Memory: Prof Chris Tisdell sing Number Song He told us that, once during the lecture, a student open his siri and he said something rhyme with “hi siri” and then the phone relied “sorry I dont understand”, and the whole class Lmao. Also recall, a student sits at the last row of the lecture threate and he purposely went to that last row where only he sit on, and a moment of slience for that student.
MATH1081 Discrete Mathematics
It turns out to be the MATH class that I went to in person consultation (4th floors in the math building if recalled) the most. The complex tute problems are quite interesting with great implication with real-life problems but the foundation is extremely important too.
20 Term1
Notes, after this term, almost all my classes go online… The grading system, for 20 Term1, as a result of COVID, becomes Satisfactory > 50 and unsatisfactory which does not count towards to WAM.
MATH1231 Mathematics 1B
1131 continue.
Dr Zhao - Nothing better than blackboard with chalk. Recall Chris told us that Zhao once walked in and since he is one of the few lecuturer who use the blackboard completely, he made a joke that he is someone coming with white powders stuffs…
COMP1531 Software Engineering Fundamentals
Hayden taught this course. First team project course. The project is about a chat platform with frontend ready and backend leaves for us to implemented. Flask, Python, in-file database + global variable are used.
Recall: Hayden is definitely one of the most down-to-earth lecturer, once and some more times, he arrived the Lec 10-ish mins before (building the one next to where some table tennis table is located), and just sit on the floor, chill and ask our questions :-) I recall he interacted with us using a website where we could post question and he answered during the Lec, I asked “what’s ur laptop specs” he said something like nothing fancy like u guys.
COMP2521 Data Structures and Algorithms
Standard general data structure course.
Ashesh, recall, is the only lecturer I met that chat begins with e.g. “My friend, u should come up with ur own solution first and try hard solving them before looking at the answer”.
20 Term2
COMP2511 Object-Oriented Design and Programming
Standard universal OOP course in Java. Use javafx to write a dungeon game. Main focus on design patterns. Patterns: Factory, builder, singleton, visitor, template, decorator, adaptor, iterator, observer, composite, strategy, state. OO principles, design by contract, code smell, generic type.
Ashesh again! but remotely…
Suggestions: Practise coding on each design with small example.
Images demo of the game
Below are UML class diagram for different sections of the dungeon game.
UML
COMP1521 Computer Systems Fundamentals
Taught in MIPS, low level. Register, threads, process, floating points, bit operator, binary, hex, dec conversion, file system, directory, virtual memory, concurrency. C to MIPS and vice versa.
A really foundamental course that just make sense.
Andrew, once we asked him what specs he had, he said: “there are a lot of funding before the pandemic and he has 256fg for ram, almost everything max out, then he said after covid, everything is shortened.”
DATA1001 Introduction to Data Science and Decisions
It is composed of three componenets - basic SQL, basic stats & basic modelling analysis.
SQL - Key attribute, foregin key, integrity constraints, insertion, violation of contraints. Basic query syntax(SELECT, AVG, etc) on insertion, deletion, update. Data type.
Probabilty - R basic. Precion, bias, OLS.
Modelling - price model, ML vs Econometrics, nowcast, hypothesis.
Intro data science course, more in width but not in depth.
Three lecturers.
20 Term3
COMP3311 Database Systems
Standard database course. SQLite, Postgresql, Psycopg2(Python library for postgresql). Data modelling: ER, relational, ER->Relational, RDBMS, SQL foundamental (table, domin, constraint, syntax stuffs). Relational design, normal form, relational algebra, transaction, serialisablity.
Notes: For assignment, look over forum more often, there are quite some edge cases needed to be considered.
Assignments: design schema, answer query. Really nice to have the opportunity to interact with the school course/enrolment database, think this is the first time and it makes a lot more sense on the relationship between e.g. courses, course convenor, enrolment, different RDMS theories are applied through and just make sense.
Jas broke an arm at the mid term, he said “this is what u get when u get old” , and I hear he broke it again in 2021 Term3, hope he got better now.
Recall Jashank is the moderator of MS teams Lec, and he is called Jas , so as John (database lecturer), he said in the old days, people use J + middle name + S (John Shepherd).
COMP3331 Computer Networks and Applications
Standard Network course.
Network overview, physical network, network core, package switching, internet structure, delay, loss throughput, layering, web and http. Email. DNS. P2P architecture. CDN(plan to use for this blog site), GBN, SR, TCP, UDP, timeout, flow control, IP packet, IP address, IPv6, control plane, data link layer, shared links, graph and more.
Assignments: Socket programming on forum e.g. upload/delete files, send message, etc, no UI, terminal based.
During the Covid, that day, I was studing on level 2 at the quad on the side near the big tree. Then, there was a black out in the eastern suburb including the uni, and funny enough, I never met Salil (Lecturer) in person since online course, and I accidentally met him as a result of this. we all laught after I recognise him (since that is a strange period of time), forgot when exactly this happend, may be late 2020 during that strange period of “onlining”.
COMP3431 Robotic Software Architecture
Taught ROS1 (Python2). The architecture is a pub/sub pattern that allows TCP/IP connection between different robot sensors and other device such as your laptop. VM (Ubuntu) is needed for the ROS environment thou WSL2 can be used. First assignment is on simple wall follower that follow one sides of the wall and we need to detect marker (QR code) and mark them on the Rviz (visualisation tool) as well as mapping (Gmapping).
Second is the project as below demo. Simulated Mini Autonomous driving. Two main sections - the detection on colored poles (traffic light), stop sign, intersection, T-intersection, human and other robots. Then the lane following part. We modified/twisted an existing lane following ROS package from the 2020 turtlebot competition. Then, I added extra: manully drive the robot accros whole arena, store every 5 second a point. Then we can do a bfs on these aggregated points to achive something like a GPS. There are a lot of potentials in terms of how to improve this mini driving stimulation.
No final, two project, two report, one small one large all involved real robot interaction. Due to COVID, thou our group has four memebers, we need to choose two to come every week and then rotate. Then, since two is for detection, and we realised later the team interacted with the robot needs more time, we sometimes just let them send the screenshot from the robot camera and me and another member do it at home.
The funny moment is that, in the last few practices, Prof Claud, kindly asked us how many of us will come, not many teams response and ended up having 20-ish students in a room, which back in 2020 Term3, is emm not ideal. Thanks Prof for being extremely supportive as this course along with another fews, is the handful number of courses that has in-person tute during that strange lockdown period. This in-person robot interaction during the lockdown period, definitely one of the best memory at uni. We also thought it would be fun to make a showcase at the end, e.g. draw some “shapes” and show it on the map, but marks first..
21T0
First summer spent in Aus due to Covid uncertainity (Border was closed).
So decided to finish two General Education courses.
5 weeks intensive courses, lec recorded with Q & A live session.
It’s definitely a lot of work and since it is about Econ, which I never learn, so I were quite engaged.
ECON1101 Microeconomics 1
Before I saw a lot of memes on the playecnomic game, after taking this course, finally understand it. Btw, based on my scapter on the classutil website, this course is the most taken for many years. So how is the game u probably wonder? A lot of room for improvement. Not recommend spending much time, just starts early, make a simple strategy and then get over it. The online format of the course thou, is the most well-structured among all the courses I took.
ECON1203 Business and Economic Statistics
Foundation of the foundation of stats. Detailed focus in: pdf, cdf, bivaraite, binomial, normal distribution. Continuous/discrete. Contunity correction. Confident intervals, hypothesis testing, type of errors (p-values), power test, Chi-squared test, linear regression, (adjusted)R square, OLS, F test,
21 Term1
COMP3411 Artificial Intelligence
Language used: Prolog. Thou it does make sense to have a taste on logic programming, 3 year CS degree + trimester, in my view, gives insufficient programming expereince relative to other uni globally. Relative to other courses, it is not as practical. Hear that summer term is taught in Python, bit jealous.
Prof Claud, patient as always.
COMP9417 Machine Learning & Data Mining
Standard ML course.
Probabilty vs stats, Cost function, regression, MSE, estimation, regularisation, bias, model evaluation, variable type e.g. categorical, Local Learning (KNN). Classification, valiadtion, bias-variance tradeoff, evaluation of error, missing values, nearest neighbour, decision boundary, normalisation, curse of dimensionality. Bayes net, posterior hypothesis, MLE, gradient descent, Naive bayes, prediction, logistic regression. Tree learing, entory, information gain, gain ratio, pre/post pruning, continuous variable. Model tree, loss function, preceptron, duality, polynoial kernel, SVM, Lagrangian multipliers, different types of SVM. Ensemble, bagging, random forest, Randomisation, boosting, AdaBoost. Gradient boosting, NN, opimisation, MLP, backprop, overfit in ANN, deep learning, Alexnet, hypterparameter, CNN, pooling layer, ReLu, Dropout, Output layer, pre-processing. Cluster analysis, K-means, EM, dimensionality reduction, semi-supervised. Autoencoder, PCA, PAC learning, vector space, sample complexity VC and more.
Second assignment - group project to make prediction given a numeric dataset with label being hidden. This is a good place to practise some standard ML pipeline: EDA, pre-processing, model selection/evaluation, voting ensemble, etc.
COMP9517 Computer Vision
Standard CV course. Physic, image formation, prespective projection, radial distortion, image processing, poin term2point operation. Piecewise, historgram, image enhancement, spatial filters.Pooling, frequencey domain filtering. Image smoothing. Gaussian filter. Feature representation, haralick,shape feature, local binary patterns, SIFT, feature encoding, shape descriptor. HOG. Pattern recognition. KNN, Bayes theory, decision tree, ensemble, regression. Image segmentation, mean shifting, region splitting, merging growing, CLIC/superpixel/level set, segmentation method evaluation, morphology, dilation, erosion, structuring elements, opening, closing, distance transform. Motion, chaneg detection, image subtraction, deletion, detect interersting points, dense motion estimation, motion tracking, kalman filtering, optical flow exampel, Bayes/multi-target, cell tracking. Guest lecture demonstrated CV application in Australia industry e.g. mining. Neural net. CNN, model, etc.
Lecture by three lecturers, touched on medical, standard aspect of CV application. Project is Tusimple - lane recognition, speed & distance estimation.
ENGG2600 Social AI
Decide on project plan, competition to participate, groups between the team memebers. Set up meeting minutes, decide on weekly meeting time, schdule meeting within the team I am in. Discuss on the objective of the course, get to know each other in the team, decide the role within the sub team and the whole team. Explore potential robot competition, research on existing SOTA solution and improvement. Familarise with ROS1 (not version 2 since the competition use version1:< ), start ROS programming, setup VM for ROS environment. Document , communicate everything using a series of tools inside Microsoft “Family Bucket”. Following the course outline, logbook for individual contribution, organise code with GitLab. Reflection and peer review at the end of every term.
21 Term2
MATH2801 Stats
TOC of my notes
Standard stats foundamental course. Chapter 1- Descriptive statistics - Sample vs population - Description vs inference - research question - categorical or quantitative. - Summary of descriptive methods - Numerical summaries of categorical data - Graphical summaries of categorical data - Quantitative data - Numerical summaries of quantitative data - pth sample quantile & sample median - IQR - interquartile range - five number summary - Graphical summaries of quantitative data - Boxplot - Histogram - Shape of a distribution - Associations between quantitative variables - correlation coefficient r - Linear transformation - Effects of linear transformation on statistics - Standardisation – z score - Nonlinear transformations Chapter 2- Random Variables - Discrete random variables and probability functions - Continuous random variables and density functions - Cumulative distribution function - CDF from discrete / continuous - Quantiles - Expectation and moments of random variables (discrete/continuous) - Special case - degenerate - Expectation of transformed random variables - Expectation of a variable under a linear transformation - Expectation of a nonlinear transformation - Expectation of a sum - rth moment - Standard deviation and variance - Independent random variables - Rules for the expected value and variance of a sum of two independent random variables - Chebyshev’s Inequality - Transformation of random variables - Transformations of continuous random variables Chapter 3 - Common Distributions - Probability / density function - Summary of common distribution table - Quantile-quantile plots of data / Q-Q plot - Special distributions when using R/RStudio - Obtaining a normal quantile-quantile plot in R Chapter 4 - Bivariate Distributions - Joint probability function and density function - Joint density functions - Joint probability/density functions - Joint cumulative distribution function (cdf) - Expectation of some joint function of X and Y - Marginal probability/density functions - Conditional probability and density functions - Ordinary probability function Properties - Conditional expected value and variance - Independent random variables - Covariance - Correlation - Visualisation of the bivariate normal density function* - More than two random variables - Joint probability function - Joint cdf - Joint density Chapter 5 - Survey Designs and Experiments - Representativeness - Random samples - Reason to ensure sampling is random - Statistics - Properties of the sample mean - Properties of the sample proportion - Methods of survey sampling - Observational study & experiment - Experiments - Key considerations in experimental design - Common experimental designs - Sample size determination Chapter 6 – Distribution of Sums and Averages of Random Variables - Discrete convolution formula - continuous convolution formula - moment generating function (mgf) - Moment generating functions of common distributions - Properties of moment generating functions - Moment generating functions of sums and averages - Central Limit Theorem - Rules of thumb for how large n should be - Central Limit Theorem for the binomial distribution - Rules of thumb for normal approximation to the binomial Chapter 7: Estimators and properties - General parametric model (397) - Estimator (400,405) - Ex – appropriate model & “natural” estimator - Bias (406) - Standard error (411) - MSE (415) Chapter 8: Parameter estimation and inference Chapter 9: Hypothesis testing Chapter 10: Small sample inference for normal sampleCOMP3121 Algorithms & Programming Tech
Standard algorithm course. Divide&conquer, dynamic programming, greedy, maxflow and more. No programming but presudo, though you can make your own.
Recall Alex said “Life is f short, so be commited and these algo u gonna use them anyway in the future of ur career”.
COMP9444 Neural Networks, Deep Learning
Pytorch is used. Assignment two is on image classification 64*64. Similar to CIFAR-10 but smaller.
MLP, gradient descent, ANN. Probablity, entropy, KL-divergence, generalisation, overfitting, cross entropy, softmax. Pytorch, encoder, hidden unit dynamic. CNN, Pooling, weight initialisation, batch normolisation, ResNet, DenseNet, neural style transfer. Recurrent network, language prediction, LSTM, GRU. Singular value decompostion, word relationships, reinforcement learning, exploration, delayed reinforcement, TD-Gammon NN, policing learning, deep Q-Learning (atari game). Hopefield net, boltzmann machines, autoencoder, aritist-critic coevolution, GAN. Transformer (optional)
“Gan GoodFellow” is my Zoom name, and it did bring a laughter when Alan see my post question. Big brain.
ENGG2600 Social AI
Begin more ROS programming via a series ROS tutorials online. Re-organise the team with the focus on multi-robot exploration and victim detection. Finalise a basic implementation at the end of term.
21 Term3
COMP3900 Computer Science Project
Lec is on scrum method to develop a project + admins stuffs (reminds u of the deadline). Basically no much teaching but applying the skilled learn from the whole degree. Tutor is considered as the mentor for the project.
We choose to do the chatbot project (only 3 teams choose it among 100+). Architecture diagram as below
Dialogflow intent-based handler passes message from frontend to backend and vice versa, which allows us to unplug the frontend and integrate other platform easier.
Facebook and Discord integration shares the same output format - plain text. Thou there are built-in API to display them nicer.
Messenger involves webhook but Discord doesn’t.
Side notes:
The error message for duplicate name in setting up Facebook page is really bad. It said “Invalid page name” rather than duplicate page name. After 5 consecutive tries to realise this, Facebook regards me as a spam user and block me for 1 hr-ish. After some interaction with Facebook API, realise they have done quite some to ensure privacy e.g. can setup some serious privacy protocoal for the Facebook page using some recognised app to define the term of use.
COMP4920 Professional Issues and Ethics
We were taught about:
- different ethic theory with a focus on Kant(duty/Deontologist) and Mill(Consequence/Teleologist)
- IP, copy right, etc
- Real-life application of ethics problem and theory Interestingly have been write for ages until this course. Nice to practise a bit writing skill again.
Tips: Choose a tutor who is not having too many tutorials, otherwise, they cannot communicate with so many students well. Be acitive in tute. Starts writing early. UNSW smartThinking - provides nice feedback for writing assginment
COMP9418 Probabilistic Graphical Model
Bayes net, different Markov model(HMM), dynamic Bayes Net. Sampling techniques. A good balance between theory and coding.
Tips: Familar with the concept and the lab weekly on time, take good notes as always.
ENGG2600 Social AI/AI 4 everyone
This term, we continue the coding for the automonous exploration package. Then, integrate it with the computer vision part. We meet the basic of the expected result which is three robots’ automonous exploration given an unknown map, then mapping, victim detection, API controling individual robot during the exploration. E.g. Let the robot move closer to the victim if detected but with a lower confidence. Finsih scripts & videos for the competition (Did not get into top three, but our animated style like Jaiden Animation which I believe is the best, others are more informative and “conventional - ppt style”). Arc creative provides feedback for the animation and the script. The youtube playlist is not yet public, below are some slides of our videos. Final assessment mainly based on the GitLab with others documentation tool taking into account. We did aggregate everything into the GitLab including all important documention and summary of the progress for the whole year.
Last note, without this course, I won’t be finish the degree early unless I takes 4 this term (thou I did spend a considerable amount of time still in this course). In this course, during this COVID, having these lovely teammate and “Instructor/Prof/Dr/Lecturer” who will be with you for a year, I personally think is the best way to conclude my bacholer degree. Huge thanks to everyone in the team.
Prof Maurice and Dr Yang are super supportive and friendly. Hear that Claud is gonna join 2022 with the arm robot, unfortunately I gonna move to USYD.
Leave a comment