UQ recommended me to take this course as my first semester studying there. You would have a good understanding on how computers work and how it corresponds to programming constructs. This course goes through many low level constructs of a computer and the topics were:
Machine code, assembly
C to assembly
Hard disk drive
However, being a complete newbie in the topics of computer paired with a horrific lecturer is not a good combo in understanding the concepts of this course, i.e the lecturer was not able to explain how all these concepts correlate with each other to make a working computer, all he did was talk about one part and then move on to the other like it was a completely new subject. I had to spend my own time to search for resources outside of the given blackboard environment, crash course computer science in YouTube helped me understand the topics better and how each subject matter links with the other and that saved me 6 weeks of confusion all within a timespan of 2 hours.
Once you get to the second half of this course the structure made it even more hell as topics started to get more confusing, the lecturer trying to explain concepts of C programming with his already poor teaching skills is disastrous, and barely even touched on how to legitimately code in assembly language (this would be a large topic of your exam). The assignment starts to roll out around this stage where you would need to code a simple game on an AVR board and LED Matrix. This assignment was alright as it has varying levels of task and the more you progress into it the harder the tasks get, but it is an easy pass but hard to get a 7, but it does take up a lot of time especially when it is due the same time as the last CSSE1001 assignment (which is also quite large). Within the last 2 weeks before the assignment is due, getting help from the practical sessions is nearly impossible, even if you are signed on to your prac session you still have to wait 1 h 30 mins average (a normal prac session goes for 2 hours), so my advice is to start as early as you get it.
Midsemester exams were multiple choice however the questions were extremely time consuming and difficult so the given one hour exam time was definitely not enough and did not give you the opportunity to do each of the questions properly, and the most annoying questions are the ones where there are none of the above or all of the above options which literally makes you go through each option (which is not a luxury you have given the time constraint). However, if you did bad in it (like I did) it only accounted for 10% of your final grade assuming you did better in the final exam (typically it was 20% for midsem and 50% for final exam).
Final exam was also extremely time consuming and difficult (just like the midsem but a bit worse), and based off previous reviews I would thoroughly revise for this. Lecturer did not want to hand out answers to past exam papers so either ask piazza or consult with the lecturer on how to do the question during SWOTVAC (but ask him to clarify each step as he rushes through them or he “forgets” to explain how he got to that point of his working out). In spite of this, the structure of the exam is fairly similar from year to year so I suggest doing many of them anyways (and it’s open book so you could bring them in if you want). Again, time is your worst enemy here assuming you know what you’re doing when faced with the questions. Personally, I did not finish it in time but I was able to complete majority of the questions and was very certain I got them right (didn’t see the transcripts but my results were what I expected).
Overall, interesting contents but delivered terribly mainly due to the lecturer however he does give a lot of resources in blackboard and help support available in the form of pracs and tutors. Assessments are painful but somewhat is still doable. Looking back at the course, it wasn’t as bad in my opinion but I was still able to recall all the dreadful experiences I encountered with this course which is why my review isn’t as favourable as everyone else (but it is an honest perspective from an average UQ intelligent level individual).
In a nutshell, DON’T DO IT if this isn’t your intended major, I would’ve certainly avoided it as an elective. DO IT if you are forced to do it as part of your degree (certainly the vagueness of the material presented while the intricacy of the exams to test your knowledge would give you a good indication of how CSSE2310 would turn out to be) or if you have a weird obsession with computers to the point you want to marry an exmachina (which is frankly what most of the students here would certainly do - they all look socially awkward).
Semester 1 - 2017
Nah lecturer barely teaches any content and you won’t understand the topic if you are a newbie
Interesting contents but thought awfully, by a very slow and unclear lecturer. The contents are too much and you see the
effects of the contents in the exams when you don't have enough time to finish the exams both mid sem and final.
The project is quite challenging for people who have no background in programming C and Assembly. If this course was
not a core subject I wouldn't take it.
I did the course in sem one 2018.
Semester 1 - 2017
This course was for the most part, much like the lecturer, a very mild and pleasant experience that I look back with fondness. This is one programming course that I can genuinely say was worth enduring the burning rage and all-consuming self-hatred that comes with C programming.
The course starts slowly, as Peter Sutton gently introduces you to fundamental topics such as combinational logic gates and counters. Like a gentle caress of the inner ear, the first few weeks of the course are light and calming to the nerves, as you are tenderly guided through by a lecturer who genuinely cares about his students. The weekly quizzes are, at best a ten minute job, and the labs are pleasantly satisfying, as all you really need to do is stick a few wires into a breadboard and light up some LEDs. Although the labs sound like a breeze, it's imperative that you attend these, as they are literally identical to the prac exam.
However, don't be fooled by the first few weeks. After the mid semester (multi-choice), Peter does the ol' switcheroo and ups the ante in terms of difficulty and density. The timeline of this course can be perfectly described by when you're heating up your leftover spag bol in the microwave and you can hear it steaming away in there so you go check your phone or clip you toenails or whatever and then you come back and the container's exploded into a messy incomprehensible 7 weeks of wtf is going on. Fear not. The next section of the course covers mainly assembly programming, I/O, flow of control and memory in the lectures and C programming in the practicals. This is where the course goes from a gentle frolic in a barley field to haphazardly dancing shoeless through a needle-strewn Coles carpark at night. It is super important to keep up with the lectures here, as it's a lot of content to be confidently learning the night before the final exam. It's not actually a difficult course conceptually, there's just a lot of topics and because each lecture builds on the previous one, if you skip two or three in a row, it's a massive bummer to attend the next lecture and have no idea whats going on as your more motivated friends humblebrag about how much easier this course is than they expected. It's even more important to attend the pracs. Even if you can't scrape yourself out of bed for the lectures, you NEED to drag your lazy butt into those practicals as virtually all of the content will be on the final exam and the project. Don't just go to the prac and leave after 5 minutes of sitting on your phone as you will regret it when you start the project.
Here's where the course lapses back into the pleasant sector: the project. Whilst C programming can be a devastating blow to your self-esteem, once you get into it, each subsequent task becomes easier than the last and the game we made (frogger) was really fun to play and test. Peter also provides the starter code with helpful comments throughout. These comments take care of the first few segments and the code for a lot of the later segments can be ripped off the prac code - another reason why you need to go to the later pracs. If you have a mac, make sure you can get a virtual machine onto your computer as Atmel Studio, the program used for the project, doesn't work on a mac based operating system. If not, get comfy, because you'll spend a few nights in the computer labs, wiping the caffeine tainted sweat from your brow and wondering where you went wrong in life.
The final exam is a bit of a hard slog; it's about 40 pages long and virtually impossible to finish well unless programming was your first language. Get ready to sit tight and get it right the first time because you will not have time to review your work. Don't stress, the final is extremely similar to past exams and Peter, being the kind angel that he is, does help sessions throughout swotvac that are actually very helpful.
Overall, this course is engaging, relaxing and, at times, really fun. The lecturer is kind and untouched by the sadism often employed by lecturers. If this course isn't part of your degree, it's worth taking if you're interested in learning the fundamentals of computer programming or you just want to enjoy an interesting and relatively mellow learning experience.
Semester 1 - 2017
yes after the mid sem
CONTENT: The course content is very interesting. They cover many new topics including digital logic, the building blocks of how microprocessors work, basic C programming, basic assembler programming for the AVR micro-controller, as well as a few other topics. The project was very interesting and fun to do, but might be challenging for some students who are new to C.
LECTURES: The lecturer, Peter, is horrifically slow and boring. However, he knows what he is talking about and seems like a competent course coordinator. The lectures are not compulsory to attend, but did have clicker questions (which were not assessed). I honestly ended up skipping a lot of the lectures and playing them back at high speed at home.
QUIZZES: Each week you get assessed on course content in the form of blackboard quizzes. This was worth 10% of the course. I would suggest doing all of these thoroughly, it's not worth wasting a few percentage points. I forgot to do quite a few of these quizzes!
PRACTICALS: The practicals were great. The first half of the course involves wiring up digital logic circuits on breadboards using integrated circuit components. You learn about circuit schematics and whatnot. This was generally a good experience. The C and assembler practicals were also good practice. Keep in mind that new content will be covered in the practicals independent of the lectures. Generally the lectures cover the nonspecific details and the practicals cover implementation etc., which you will need to know for the project. The practical exam is pass/fail, which is intense, but you *shouldn't* mess it up if you've been paying attention in the pracs.
MID-SEMESTER EXAM: This was multiple choice exam and shouldn't be too bad if you've practiced previous exams properly. Time is an issue however, and you might find yourself struggling a little bit to complete it properly in the time they give you.
PROJECT: The project involves programming a micro-controller with peripherals using C. This project is easy to pass, but it will be difficult to do well for anyone who isn't used to C programming. It is vital to attend the practicals for this purpose. They do offer sessions where the tutors will help you with the project (not too much though). Summary: easy to pass, hard to do very well for those inexperienced with C.
FINAL EXAM: The final exam is fairly difficult and had the same structure to previous years. The biggest issue is time management, even more so than the mid-semester exam. I did not finish the exam in time. I would revise for this thoroughly. Previous exams are a good guide for how they'll be set out.
NOTE: I did this course in 2018, not 2017. There is no option for 2018!
Semester 1 - 2017
Not really, you can cover them at home
There is no textbook
This course is awesome , first half is digital electronics gates,binary counters,flip flops,finite state machines,shift registers,multiplexors.
Second half of course becomes more difficult we learned Assembly language for atmel AVR ATmega324A microcontroller and then we had a project involving C.
The lecturer Peter Sutton is excellent .
Semester 1 - 2017
One of the biggest disappointments of my university experiance so far. This course has some pretty good content that should be engaging and fun but somehow they have paired it with the slowest lecturer known to man, if you can stay focused during one of his lectures you truly deserve an award. The man will ramble on with a slow monotone voice for 5 minute long intervals then when he gets to something important he will stop for a few seconds then spit out 100 words very quickly then resume at his lathargic pace as you try to figure out what just happened. The grading hurdles also make no sense as there being a flat pass/fail practical which serves no real purpose. Also the final for the course is WAY to long to be a fit in a 2 hour period.
Semester 1 - 2017
A well-organised course that is challenging but also rewarding. At least for electrical engineers, CSSE2010 is the second CSSE course to do and is quite a contrast to CSSE1001. Whilst 1001 focuses on high-level problem solving, 2010 jumps to low-level and working with bits (1001), positional number systems (hex, octal, etc) and logic gates (flip-flops, latches, NAND, etc).
There is a lot of programming involved towards the second half of the course, and there is a noticeable transition in difficulty. Those who are weak in programming should try to familiarise themselves with the content early. Those who do not enjoy programming or are not comfortable with it are likely not to enjoy the course. Those with an interest in programming will likely find this course challenging, but in the end rewarding.
The learning materials are all through lecture slides and prac slides. Lectures are recorded so you can watch them as many times as you like, which is a good thing. Though there is recommended textbooks and excerpts of them posted online, you don't need to read them unless you're really into it. You can do fine without it.
Links and guides to C and Assembly are given, which you must go through yourself.
There is enough materials given to you for you to do well in this course.
Two 1-hour lectures a week, two 2-hour pracs a week. Attending either is not compulsory, but there is a 5% associated with clickers. But you can always give this to a friend to do for you. It is not uncommon for people to have multiple clickers to use (their friends). Participation is the emphasis and you don't need to answer correctly to get participation marks.
As the weeks go by, attendance at pracs does decrease despite the participation marks associated. The pracs start off very easy at the beginning, and slowly become more complicated towards the final prac in week 10. The pracs get quite programming heavy with C and Assembly so keep up with the programming.
The tutors are all helpful too.
The midsemester and final exam is basically the exact same structure as previous years. You also get sample midsemester papers (and more!) for preparation. Both are open-book so you can take in whatever you like. As the final exam is identical in structure with slightly varying numbers/code, you should consider writing down solving methodology as well as any important theory.
Neither exams are too hard to pass. If you know your stuff, you will do fine for the midsemester. If you have studied and know your stuff for the final, you will do great.
Weekly there are quizzes you have to do online about the previous week's theory. Sometimes they can be hard, but not really.
There is a small 5% attached to participation in the form of clickers. These are small devices which send a signal to a multiple-choice question asked by the lecturer or in the pracs. Getting them right is not necessary. You don't need to be present yourself, as only the clicker needs to send the signal. So it is possible to give a clicker to a friend to do for you.
PRACTICAL EXAM (PASS/FAIL):
Requires you to build a logic circuit. Easy if you just practice using the practice logic circuit they give you. You are given your kit the week before.
This is perhaps the biggest part of this course. In week 10, you are given the assignment brief which is to make changes/add code to an existing incompleted game on the microprocessor. In 2015, this was RallyRacer -- a small game where you must dodge obstacles on a racetrack. In 2014, this was Froggy -- where you must move through cars scrolling from both sides.
It is divided into 3 difficulties. 1/2/3, where 1 is easiest. Simply passing all level 1 features allow you to pass the project.
Make use of Piaza as it is extremely useful in this part of the course.
Updated often and organised well. Grades are entered quite quickly.
For the final exam, you need to know basically the following:
Machine code, assembly
C to assembly
Hard disk drive
This basically represents what most of the course is about. There's some stuff on the midsem that didn't appear on the final, but no guarantees this is every year. This course does a good job of incorporating all this into your project, as most of this stuff is relevant and you will need to know it. The project as an assessment piece really does unify what you are taught.
The course structure doesn't have an obvious and distinct structure. It follows on chronologically and does build up from the previous stuff, but there is no breaking up of the semester into distinct parts. Regardless, it is done in a way that is logical.
Contact often made from the lecturer. Furthermore, the online discussion forum Piaza pretty much made the Facebook group useless. Tutors and the lecturer often reply on the online forum and other students do too.
Students with a weak foundation in programming will likely find this course hard. For everyone, it starts off easy. The theory isn't too complicated and it's mostly simple examples. But after around week 8 and towards the project, it becomes quite evident the struggles of the people who got carried through CSSE1001 and have poor coding knowledge. If you are good with programming and study, you'll do fine. This course is challenging, but not impossible. Challenging by virtue of the novelty of the content to most students.
Semester 1 - 2015
Bachelor of Engineering (Electrical)
No, can watch online
This course has it all. Theory and practicality really click together here. You learn everything from the logic gate level to the C programming (with some things skipped). Practicals are basically a must for a good mark though; it's where all the circuitry/communicating with said circuitry is done. With the exception of a few odd rules (Prac tasks had to be pen and paper only...) the course was intuitive, interesting and everything just made sense. It shouldn't feel like a hassle to do. This probably largely due to the awesome lecturer, Peter Sutton. He gave LOTS of feedback on almost all bits of assessment and a hell of a lot of practice/sample material.
Due to the large scale and amount of content in the course, it can definitely be challenging but everything is handled as best as it could be so you can't complain too much.
Semester 1 - 2014
Really interesting course, the lecturer explained everything really well and there was a lot of student interaction through the clicker questions. The practical labs are great to further understand the content, and the tutors in it are equally great. The logic gates and circuitry for that was a lot of fun, and the project was the create frogger on an LED matrix. C programming isn't exactly fun but it's really not that bad. Discussion was done through Piazza which kills your email inbox at first, but is incredibly helpful when the project starts. The kits are awesome as well, and we can keep them.
It would've been nice to get the project earlier though
Semester 1 - 2014