COMP3311 - Database Systems
Difficulty: 3/10 · Time Commitment: 4/10 · Enjoyability: 6/10 · Mark: 90
SummaryPermalink
COMP3311 is a basic databases course that teaches students how to model databases, write SQL queries, and write more complex functions on PostgresSQL databases. When I did this course, it was relatively straightforward, containing weekly quizzes testing course theory, two assignments, and a final exam. The second assignment required some knowledge of Python but this was very minimal and could be learnt within an hour. Here is a breakdown of the time I spent on assessments during the term.
Task | Time Spent |
---|---|
Weekly Quiz | 2 hours/week |
Assignment 1 | 8-15 hours |
Assignment 2 | 15-20 hours |
Final Exam | 3 hours |
I also recommend practicing thoroughly for the final exam as it contains a lot of content that is not assessed in-depth during the term such as transactions, functional dependencies, and normalisation.
PositivesPermalink
- Understanding how to write SQL queries is essential for a majority of software engineering roles and learning it formally via this course is effective to understand the basics and learn more complex use-cases within your job
- The assignments are relatively interesting and not too time-consuming. They work well alongside content taught in the course
- Provides a good balance of theory and practical knowledge which are both necessary in appreciating the use-cases and pitfalls of SQL
NegativesPermalink
- This course only covers SQL and Postgres, and does not mention other types of databases such as NoSQL databases
- Lecture content covers only the basics and does not go into a lot of detail on most concepts (when I did the course, it was normal for lectures to end 20-45 mins early)
- Most course content is surface level and available on almost every online tutorial. This makes the entire course highly easy to self-learn
In-depthPermalink
StructurePermalink
COMP3311 has two lectures a week, one tutorial, and regular help sessions for support. Quizzes cover the content from the previous week and usually contain 3-5 multiple choice questions. There is no programming required to complete quizzes, and the content they cover is quite basic for any student somewhat up-to-date with lectures.
The course starts with two weeks on ER diagrams which visualise relationships between different entities. Although it seems very simple at the start, it provides good intuition for designing a database. The remainder of the course focuses on a combination of theory (what are database transactions? what are queries actually executing under the hood etc) and programming (mainly different SQL functions, some more advanced concepts, and basic Python programming to display SQL query outputs nicely).
Lectures and TutorialsPermalink
The lectures teach all content required to perform well in this course, however, after a few weeks they become very surface-level and do not cover concepts in much depth. By only learning from lectures, you can become good at writing SQL queries but pairing this with online tutorials and additional time extending beyond course content helps when using SQL in a more complex environment. Overall, it is relatively easy to skim through lecture slides and only watch the parts of lectures that you need extra help with. Additionally, you can almost entirely learn SQL by reading SQL tutorials online (and these will likely teach you better than the course does).
Tutorials are weekly and cover a set of exercises. These are not mandatory and are mostly to synthesise course content. They are not important and the time is much better spent self-learning more complex content.
Weekly QuizzesPermalink
There are 6 weekly quizzes over the term, each being multiple choice (with the exception of a few questions where there is a calculation and you have to input the answer via a text box). These quizzes are relatively straightforward and getting 80% is very easy if you watch lectures and try to understand the content week-by-week. Note that they are closely paired with the content itself, so if you fall behind, it is likely that you won’t know how to do the questions.
AssignmentsPermalink
The assignments in this course are completely practical and have no theoretical parts. They start off really simple and build up a complex SQL queries towards the end. Both cover similar concepts with the second one having a greater focus on SQL and PostgresSQL functions. Additionally, the second assignment requires the use of Python, but most of the Python required is provided directly within lecture code snippets.
Final ExamPermalink
When I did the course, the final exam was an in-person closed book exam and you were allowed to bring in one A4 sheet of paper with notes. The practical parts of the exam were very similar to the assignments and if you practice all the activities given on the course website, it is not difficult to solve all practicals. The theory questions were much more difficult and required a lot of understanding of how concepts from all weeks of the course worked. To succeed in this, it is essential to understand the theory within the course, and go through the practice papers given until you understand all possible question-types.
OverallPermalink
COMP3311 is a relatively easy course, which teaches fundamental computing concepts essential for software engineers. It is a good idea to take this course and you will definitely learn something new if you have not learnt databases before. There is a lot of content that this course does not cover, and most of the content taught is superficial and needs to be paired with self learning to perform complex tasks, however, it still forms a good foundation for future learning
Comments