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.
Learning Materials:
---------------------------
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.
Learning Activities:
---------------------------
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.
Assessment
---------------------------
EXAMS:
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.
QUIZZES:
Weekly there are quizzes you have to do online about the previous week's theory. Sometimes they can be hard, but not really.
PARTICIPATION:
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.
PROJECT:
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.
Blackboard Management
-----------------------------------------------------
Updated often and organised well. Grades are entered quite quickly.
Course Content
-----------------------------------------------------
For the final exam, you need to know basically the following:
Number representations
Logic functions
Synchronous counters
ALUs
Machine code, assembly
C Code
C to assembly
Assembly process
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.
Course Structure
-----------------------------------------------------
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 Availability
-----------------------------------------------------
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.
Course Difficulty
-----------------------------------------------------
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.