From 8345167738fe62617ff5f3ea1bc10656520cc4ee Mon Sep 17 00:00:00 2001 From: Joseph Date: Wed, 23 Nov 2016 20:55:24 +1000 Subject: [PATCH 1/5] Add COMP4403 review --- tex/courses/subjects/COMP4403.tex | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tex/courses/subjects/COMP4403.tex b/tex/courses/subjects/COMP4403.tex index b2bd95c..ec67d2e 100644 --- a/tex/courses/subjects/COMP4403.tex +++ b/tex/courses/subjects/COMP4403.tex @@ -2,16 +2,28 @@ \courseTemplate[ code = {COMP4403}, title = {Compilers and Interpreters}, -score = 4, +score = 5, prereq = {COMP2502 or COMP3506}, contact = {3L, 1T}, coordinator = {Prof Ian Hayes (ianh@itee.uq.edu.au)}, assessment = { -example & example\% & example \\ +Assignment 1 & 20\% & Add features to a Recursive Descent PL0 compiler. \\ +Assignment 2 & 20\% & Add features to a Parser Generator-based PL0 compiler. \\ +Assignment 3 & 20\% & Add features to a Parser Generator-based PL0 compiler. \\ +Final Exam & 40\% & Closed book (one A4 sheet allowed). Examines all theoretical course content. \\ }, review = { - review here + The course covers basic compiler design. It splits the course up into theoretical (taught in the lectures and examined on the final) and practical content (through the assignments).\\ + + In the theoretical component, it covers context-free grammars, recursive descent and bottom up LR(1) / LALR(1) parsing, static checking, code generation, garbage collection and object-orientation. The practical component consists of three assignments, where students are given the Java source code for a compiler for the PL0 programming language and are to add additional features to the language.\\ + + The textbook is not required, but attending the lectures is highly recommended as the content, while not too difficult to grasp, does require explanation, plus Professor Hayes is a fantastic lecturer. Professor Hayes also provides comprehensive PDF notes of all topics based on the lectures that make excellent study tools.\\ + + The final exam is closed book, but one double-sided A4 sheet of paper is allowed. Preparing for the exam is easy due to the aforementioned lecture notes, tutorial questions and numerous past exams available. The structure of the course has remained static for a number of years, so previous exams provide a good guide as to what to expect on the final.\\ + + If you are interested in how programming languages work, I highly recommend this course. It's one of the best organised and taught courses in the school that I have personally taken, the content is interesting, and the assessment structure makes high grades achievable with moderate effort. }, preparation = { - \item thingo + \item Complete CSSE2010 and COMP3506, and in particular understand assembly code, state machines and tree data structures + \item Do background reading on formal language theory (e.g. formal grammars, the Chomsky Heirarchy) }]{} From 04d300c9ac2ae76296c929ed7d0d87fbe28fb442 Mon Sep 17 00:00:00 2001 From: Joseph Date: Wed, 23 Nov 2016 21:08:19 +1000 Subject: [PATCH 2/5] Add COMS3200 review --- tex/courses/subjects/COMS3200.tex | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tex/courses/subjects/COMS3200.tex b/tex/courses/subjects/COMS3200.tex index 8fb8f11..01e9f9d 100644 --- a/tex/courses/subjects/COMS3200.tex +++ b/tex/courses/subjects/COMS3200.tex @@ -7,10 +7,21 @@ contact = {3L, 1T, 1P}, coordinator = {Prof Neil Bergmann (bergmann@itee.uq.edu.au)}, assessment = { -example & example\% & example \\ +Assignment 1 & 15\% & Theory questions and programming task \\ +Assignment 2 & 15\% & Theory questions and programming task \\ +Assignment 3 & 15\% & Theory questions and programming task \\ +Final Exam & 55\% & Open book exam with multi-choice and short answer questions. \\ }, review = { - review here + This course provides a thorough overview of modern computer networking, based around the TCP/IP stack. Much of the content will be familiar to students who have completed CSSE2310, but the theory is covered in greater detail here.\\ + + The course lectures can be boring but do cover the content well. It is worth either attending the lectures or studying the lecture notes, but the course does not require much external study beyond that. Tutorials are pointless generally, but students are required to demo the programming components of their assignments in them.\\ + + The assignments are all quite easy and can be completed with minimal effort. Nominally, all three assignments involve a theory and programming part, but in 2016 the last assignment had no programming component. For the programming parts, there is no restriction on choice of programming language.\\ + + The final exam is open book, and is incredibly easy (based on the 2016 course). If you bring in a good set of notes and have a reasonable understanding the content you will have little trouble with the final. Past exams are reasonably representative, but some years have extra cryptography content not included in more recent years.\\ + + If you want to get a better understanding of networking and/or want an easy course that requires minimal study beyond contact hours, this course is recommended. }, preparation = { \item thingo From 82b701b34ff74909d55c33845c65568a73e9bfb3 Mon Sep 17 00:00:00 2001 From: Joseph Date: Wed, 23 Nov 2016 21:09:55 +1000 Subject: [PATCH 3/5] Add COMS3200 preparation info --- tex/courses/subjects/COMS3200.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tex/courses/subjects/COMS3200.tex b/tex/courses/subjects/COMS3200.tex index 01e9f9d..0d5ca1c 100644 --- a/tex/courses/subjects/COMS3200.tex +++ b/tex/courses/subjects/COMS3200.tex @@ -24,5 +24,5 @@ If you want to get a better understanding of networking and/or want an easy course that requires minimal study beyond contact hours, this course is recommended. }, preparation = { - \item thingo + \item Read back over CSSE2310 networking notes }]{} From 8ea4876f2ea51500d278103986914fb5caef7514 Mon Sep 17 00:00:00 2001 From: Joseph Date: Wed, 23 Nov 2016 21:25:48 +1000 Subject: [PATCH 4/5] Add COMS3000 review --- tex/courses/subjects/COMS3000.tex | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tex/courses/subjects/COMS3000.tex b/tex/courses/subjects/COMS3000.tex index 7d86f37..8335451 100644 --- a/tex/courses/subjects/COMS3000.tex +++ b/tex/courses/subjects/COMS3000.tex @@ -8,11 +8,24 @@ contact = {2L, 1T}, coordinator = {Dr David Ross (dross@itee.uq.edu.au)}, assessment = { -example & example\% & example \\ +Marked Tutorials & 20\% & Tutorial sheets, handed in electronically and physically. \\ +Report & 20\% & A report / essay about a provided topic. \\ +Final Exam & 60\% & An open book short response exam. \\ }, review = { - review here + This course provides a broad but comprehensive overview of the basics of information security. In particular, it covers concepts around access control, information theory, cryptography, network security, cloud security, payment card security and industrial control system security.\\ + + The lectures are recorded, but attending them is recommended since Dr Ross asks questions of the class and does examples on the whiteboard, which do not appear on recordings. Further, the lectures are worth engaging in since Dr Ross, in addition to teaching at the university, works as an information security professional in industry and as such has a lot of insight into practical aspects of the course.\\ + + The tutorials in 2016 were mediocre but the marked tutorial sheets must be handed both online at the beginning of the week, and then again at the end of the tutorial (you are able to change your answers during discussion in the tutorial, so the sheets are essentially free marks). The tutorial sheets do provide good study materials and practice questions for the final exam.\\ + + The report is expected to be quite in depth, with research based on peer-reviewed literature. Students are given a choice of two topics and the report is designed to be an overview of the state of information security in the chosen area.\\ + + The final exam is open book and in 2016 was reasonably easy, with several questions being repeated or similar to past exams, and all questions being doable with notes and a good understanding of the course material.\\ + + Overall, this course provides an interesting overview of the InfoSec field, with the added benefit of being taught by someone who actually applies the content for a living. Recommended if you are considering InfoSec as a career path or have a general interest in the field. }, preparation = { - \item thingo + \item Complete CSSE2310 and/or COMS3200 to have a background understanding of the TCP/IP / OSI networking stack + \item Do background reading on information security, best practices and notable threats }]{} From a95b13c3cf32a896078b2cdaf20fec15cae46760 Mon Sep 17 00:00:00 2001 From: Joseph Date: Wed, 23 Nov 2016 21:57:14 +1000 Subject: [PATCH 5/5] Add COMP4500 review --- tex/courses/subjects/COMP4500.tex | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/tex/courses/subjects/COMP4500.tex b/tex/courses/subjects/COMP4500.tex index c04b20c..355d8dc 100644 --- a/tex/courses/subjects/COMP4500.tex +++ b/tex/courses/subjects/COMP4500.tex @@ -2,16 +2,29 @@ \courseTemplate[ code = {COMP4500}, title = {Advanced Algorithms \& Data Structures}, -score = 4, +score = 5, prereq = {COMP3506}, contact = {2L}, coordinator = {Dr Larissa Meinicke (l.meinicke@uq.edu.au)}, assessment = { -example & example\% & example \\ +Online Quizzes & 10\% & Six online quizzes over semester; best five count for 2\% each. \\ +Assignment 1 & 20\% & Program / report on algorithmic analysis and graph algorithms. \\ +Assignment 2 & 20\% & Program / report on dynamic programming. \\ +Final Exam & 50\% & Closed book (one A4 sheet allowed). \\ }, review = { - review here + This course follows on from COMP3506, examining algorithms and data structures. Specifically, the course covers algorithmic analysis, recurrences / divide-and-conquer algorithms, graph algorithms, dynamic programming, greedy programming, amortised analysis, complexity theory and randomised algorithms.\\ + + The lectures are worth attending as they go over the material in depth and include examples done on the board (which don't appear on recordings). In addition, since the content can be quite theoretical, being able to see examples done and ask questions is useful to aid understanding.The online quizzes involve multiple choice questions and are generally easy, but some questions are unclear and confusingly worded.\\ + + The assignments are quite involved, requiring both an implementation and a report component. The programming component requires students to come up with an algorithm to efficiently solve a problem, and then justify the algorithm and analysis its complexity in the report. Generally the actual implementation is easy, but designing the algorithm and getting it to `click' in your head can be tough. Allow time to think the problem over for a few days before attempting to actually write code.\\ + + The final exam is closed book with one double-sided A4 sheet of paper allowed. The exam follows the same structure year to year, so past papers are useful study, as are the lecture notes and tutorial sheets. The exam is difficult, requiring students to come up with algorithms to solve graph problems, dynamic programming problems and prove a problem's NP-Completeness within the exam.\\ + + Overall, this course is one that students may find difficult, but its content is incredibly useful, to the point that the content is really mandatory knowledge for anyone practising computer science or software engineering at a professional level. In addition, the course is well taught despite its difficulty, and knowing the content will help you in many other courses, and as such I highly recommend this course. }, preparation = { - \item thingo + \item Refresh your knowledge of data structures -- this course covers them more abstractly than COMP3506 (e.g. less focus on things like specific kinds of self-balancing trees) + \item Familiarise yourself with common graph algorithms (e.g. BFS, DFS, Dijkstra, Prim's algorithm) + \item Do background reading on complexity theory, $ P $, $ NP $, $ NP $-Completeness etc. }]{}