Subject Code/Name: COMP3311 - Database Systems
Contact Hours: 2 x 2hr Lectures
Apparently the course normally has a 1hr tutorial as well, but in this term there was no tutorial class.
Assumed Knowledge: COMP2521 (or COMP1927)
It's useful to have done COMP1531 as well, since it introduces domain modelling, ER modelling, database design, and Python (COMP3311 this time used Python for the programming topic). However these topics are all covered again and in greater depth so if you haven't done COMP1531 you're not SoL.
Assessment:
Quizzes (10%, due on all even-numbered weeks) - In the usual JAS style the quizzes are fairly easy when you just try the question yourself on a database / look at the lecture slides. They're mostly there to force you to keep up-to-date with the content, and are very effective at doing that.
Assignment 1 (5%, due week 3) - This was a relatively small ER modelling task, which was assigned to randomised groups of 8 people. The ER model itself could be finished in about half an hour, but in several different ways, so the idea was that you would discuss your various ideas with your group and come up with a shared design. Most of the marks came from how much you contributed to the discussion and to editing the Group Wiki (where the design was done), there were no marks for the ER model itself. This worked surprisingly well and JAS was really generous with the marking.
Assignment 2 (12%, due week 6) - In this assignment you have to write some SQL queries which give particular results, much in the same way as the prac exercises (which are not worth marks, but I strongly recommend doing), there are several questions which get progressively harder.
Assignment 3 (13%, due week 9) - This was similar to assignment 2, but involved writing some Python scripts to run the queries. The Python was also to make it easier to do more complex tasks. This assignment also had several questions which got progressively harder, but the last few marks on the last few questions were much harder than in assignment 2. I spent about as much time on these "bonus" tasks as I did for the rest of the assignment.
Final (60%) - The final includes some prac questions, in a similar style to the prac exercises and the assignment, and some theory questions, in a similar style to the theory exercises (which are also not worth marks, but I strongly recommend doing). The final should be fairly straightforward if you did all the assignment questions and some theory exercises, for us the course notes were included in the final making it essentially open book which was very nice.
Lecture Recordings? Yes
JAS records them himself and uploads them to YouTube so you don't have to deal with Echo360, fortunately.
Notes/Materials Available: Lecture slides, course notes, prac exercises + solutions, theory exercises + solutions, sample final exam + solutions
Textbook: Don't really use textbooks, there are several listed and you are recommended to choose one:
* Fundamentals of Database Systems, Elmasri and Navathe, 7th edition, 2016, Addison-Wesley
* Database System Concepts , Silberschatz, Korth, Sudarshan, 6th edition, 2010, McGraw-Hill
* Database Management Systems , Ramakrishnan and Gehrke, 3rd edition, 2003, McGraw-Hill
* Database Systems: The Complete Book , Garcia-Molina, Ullman, Widom, 2nd edition, 2008, Prentice-Hall
* Database Systems: An Application-Oriented Approach Kifer, Berstein, Lewis, 2nd edition (Complete Version), 2006, Addison-Wesley
Personally, I found the course materials to be sufficient.
Lecturer(s): Dr. John Shepherd
One of CSE's best lecturers IMO.
Year & Term of completion: 19T3
Difficulty: 1.5/5
Overall Rating: 4.5/5
Your Mark/Grade: 96 HD
Comments: Honestly I was originally just doing this course because it was core for SEng, but it turned out to be some of the most fun I've had in uni so far. The mixture of practical exercises and database theory is perfect and makes the course interesting for just about anyone. The content is deep, but also not very difficult to learn, and the assessment is straightforward and especially rewarding in the case of the assignments. If you're pressed for electives, then I would only recommend taking the course if you're particularly interested in databases / web dev / thicc data, since the content can probably be self-learned. But if you have to do the course, or you have lots of electives you're trying to fill, then this course is a great way to spend 6 UoC.