Teaching FAQ

General

What courses do you (usually) teach?

Usually, at RMIT, I teach:

What courses will you teach in 2024?

In 2024 I will teach:

Your courses do not show up in the enrolment system, have they been discontinued?

I am not in charge of the enrolment system in any way, but I am aware of courses not showing as options in students’ enrolment system. This may not mean they are not available for you to take (as long as you met the pre-req or get an exemption for them).

So, if you the course is indeed running but you cannot see it in your enrolment system, and you think you want and can take it, please contact Enrolment at RMIT and/or your Program Manager, be Computer Science, Software Engineering or IT. There is usually a way to enrol outside the web system in those cases.

I would like one of the pre-req to be waived (I took a similar course elsewhere), what should I do?

I do not manage credits or pre-req waivers directly. You need to submit a formal request for a Requisite Waiver from Academic Services; please check here how to do so.

OK, I have already applied formally for a waiver and they asked me to contact you to obtain approval. What should I do?

Generally, the University will contact me directly if academic input is required.

If they ask you to contact me to get approval, you should:

  • make it clear you have applied and were asked to contact me (please attach the email where you were asked to do so); and
  • argue the case to me why you meet equivalent pre-req for the course you want to enrol in, despite not having actually taken and passed the pre-req course.

Please attach any documentation that indicates that the knowledge in that course is covered to the right level. For example, equivalent courses in other Universities or courses that include that technical material already. I am also happy to accept similar online course (e.g., Coursera) on the topic, as long as proof of completion with assessments is provided. Also programming projects (e.g., in your work or open source community) that clearly require knowledge and practice with algorithms will be considered.

Please note that opinions (e.g., “I know that content and have done lots of programs”) or claims without any proof (e.g., “I have taken the course X but I do not have any proof that I passed it”) are not enough evidence.

How difficult are your courses?

This is an impossible question to answer, at least from my perspective. So take everything that I say now with care, and feel free to disregard it completely :-)

So, in general, I could say students find my courses not to be the easiest ones they take. However, this depends a lot on each student. So, if you are concerned or interested in the difficulty of courses, my best suggestion is that you talk to other fellow students who have taken the course under the same lecturer. Talk to many students so you get a better “sample” or talk to students who you would trust their judgement and are similar to you.

In general what I can say for each course is:

  • Discrete Structures and Math for Computing 1 are basic maths course; the minimum to be able to be able to handle later topics in other courses. If you want CT or AI to be not to hard for you, you should probably achieve at least DI here.
  • Computing Theory is highly theoretical, abstract, and maths based, so many students find the course difficult. Many students also find the course illuminating and deep, as it is there where you study the actual pheonomenon of our science: computation.
  • Artificial Intelligence is also a course covering a wide spectrum of topics (almost 1 per week!), so it is intense; however it is more hands on and not so abstract as CT. The project is usually fun but requires dedication and many hours of programming and thinking.
  • AOPD and IDM are specialised courses, so you will study a few topics but in depth. You will spend hours of work reading papers and also programming sophisticated algorithms.

Overall, then, because of the “foundational” nature of these courses, they require intense and continuous work during the whole semester, and depending on how solid your background is you may have to put additional effort and study. This means that if you are looking for an “easy course to take”, one that you can achieve a pass without significant workload in your weekly schedule, then probably none of the above are good options. However, if you are looking for an intelectual challenge and for many “aha” moments, then all four are, in my view, great options!

How do I enroll, when do they start, how long are the courses (etc.)?

I know very little about student enrolments and I have no involvement on that, so I do not want to give wrong information. Please check here.

Regarding other information (like how long they are, number of credit points) please refer to the course guides from the links above to each course.

I would like to take your course but I have a clash with something else (another course, work, etc), can I still take it?

In general, lectures/lectorials/workshops/tutorials are not mandatory so, technically, yes, you can take it. However, I suggest you really have a second thought about taking the course if you already know that you will be missing lectures:

  • First, you will be missing a large chunk of the course, and you already know about it. Is like getting tickets for the footy season but you already know you will miss most of the games. Maybe you should get season tickets for something else then? ;-)
  • Second, there are many useful things only said in lectures, otherwise why would they be there. So, while technically you can get everything from the books, you will be missing opportunities.
  • Third, you will be taking a course without being part of the uni teaching “eco-system”. Yes, getting the technical content is a major part of the course, but taking a uni course also involves getting to know others, learning from fellow students, etc. In many cases, students will make friends and even potential colleagues. You will also be missing on all that too….
  • Finally, and importantly, depending on the course, you may be missing on assessments. Sometimes courses ran assessments during those allocated times, like quizzes or class tests. This means you may be giving away marks already.

Please note that:

  • You should not rely on “live” recordings 100%. They sometime fail to record, or record with quality. I cannot promise recordings will always be there or at your desired quality. So, if one class is not recorded or the recording is missing the audio, for example, you would not be able to challenge that.
  • Assessments cannot be repeated just because you cannot attend it due to a clash. Special Consideration is about special occasions, like health or family issues, but not because you had another course or work to do. So, if you still decide to take a course that you will not attend, make 100% sure from the start you will be able to attend those lectures where important assessments will happen, like mid-term tests or oral presentations.

Again, if you already know you will not be attending the majority of the lectures, I suggest to give it another thought and see if you get better options for your education program.

Why don’t you use the University LMS online system and you use other systems (e.g., Google, EdStem, etc)?

Because of 3 reasons:

  • Students overwhelming (70%+) have liked those tools/plaftorms over in the years. Every course, I run polls, and very few indicate they would rather use Canvas as the main platform.
  • They offers significantly more efficient tools for us teaching staff, which means we have more time to do other things in the course for students! Producing content in systems like Canvas takes a lot of time, which means we need to stop doing other things for the course.
  • Finally, they provide more inclusive and richer teaching platform, which increases student engagement. Indeed, data systematically shows way more engagement from students; for example, we get many more posts when using Google Forms and EdStem than Blackboard or Canvas discussion forum (around 7x - 10x times!). Check this blog entry and this video produced by educational experts a few years ago for CT.

Note also that I have found systematically that students who express that they do not like or prefer some of the alternative platforms I use (e.g., Google or EdStem), they mostly argue in terms of “uniformity” with other courses (e.g., “I prefer all my courses in the same platform”). While I understand it may be inconvenient for some students to juggle different systems, true, I do not think this is sufficient enough argument to counter the three above. Very importantly also, I believe it is also good for students to learn how to be flexible and able to deal with different platforms and technologies at the same time, as it will surely be the case in the industry; so there is a side-effect benefit there too I think & hope you agree with that.

I am not enrolled in any program and do not intent to, can I take course X?

Yes, you can enrol as a single subject student, via RMIT Short courses.

In certain times of the year (e.g., September-November) there may not be any. However, they will be there once they open for the following year. More or less, the time of courses are published are:

  • Semester 1 courses will be visible on the single courses website from start of November of the year before. Enrolment will be open to applicants on early January.
  • Semester 2 courses will be visible on the single courses website from early May (of that year). Enrolment will be open to applicants on early June.

I am in program P and I would like to take your course X (AI/CT/AOPD) next semester as an elective subject, can I do it?

Thanks for your interest in course X! Now, there are two parts to this:

  1. Do you have the pre-req for course X? If not, then you cannot take it.
  2. Can you fit course X into your specific program (e.g., BP094, BP096, MSC60, etc)? For that, you need to check your program structure and if not sure discuss it with the Program Manager of your program. The last thing you want is to find out that you took a course but you cannot count it towards your degree!

All the best!

Computing Theory - COSC1105/1107

Can I take Computing Theory without having taken Discrete Structures (or equivalent)?

No. It is fundamental to master basic discrete mathematics to take this course.

I am thinking taking Computing Theory COSC1105/1107. Where can I start?

Two great books are:

Of course, the more solid mathematical background, the better: set theory, functions, big-O notation, relations, graphs, etc. and very importantly being able to read and understand proofs, and do simple proofs.

Artificial Intelligence - COSC1125/1127

I am interested in Machine Learning/Data Analytics, should I take your AI course?

The AI COSC1125/1127 is NOT a Machine Learning course per se, and definitively NOT a data analytic course either. Machine Learning is in fact one area of Artificial Intelligence. This particular course aims at providing the foundation of AI, and as such it provides an overview of key AI subareas and problems, like search, knowledge representation, probabilistic reasoning, intelligent agents, and others, including (some) machine learning. So a large part of the course is devoted to representation and reasoning (both with and without probabilities) and control techniques.

As a rough indication, consider that only 1 of the 12 weeks is devoted to Machine Learning. Moreover, in recent years we have covered only the learning to act problem of Machine Learning (using reinforcement learning), rather than learning patterns in data.

If you are interested more in ML itself and in how ML can be used to analyse data, you may want to check this course instead.

If you are interested in data science, maybe check this course.

I am thinking taking COSC1125/27 Artificial Intelligence course. What background should I have? What textbooks could I read?

Basically, what is already described in its Part A: Course Overview:

  • Knowledge of algorithms and their analysis, as per course COSC2123 Algorithms & Analysis, which is an enforced pre-req for COSC1125/27 for every program.
  • Knowledge of programming. These days we use Python, C, and/or Java. You are expected to master programming, so you should be able to get started in another language if necessary (that is, if you know Java well, you should be able to learn Python if needed).
  • Knowledge of discrete mathematics, such as sets, arithmetic, proof techniques (e.g., induction or contradiction), propositional and first-order logic, etc. Basically the knowledge given in COSC2627 Discrete Structures or MATH2411 Mathematics for Computing 1. A great book (available free online) is the Book of Proofs for a big part of this (no trees or graphs though).

For a good comprehensive book for the course, check AI: A Modern Approach.

Why is Algorithm and Analysis (A&A) a pre-req for AI?

As you can see from the course overview, course COSC2123 Algorithms & Analysis is a pre-req. This is because, during the course, many AI algorithmic techniques will be seen, compared, and analysed theoretically, so it is expected that students taking the course have a good grasp of existing useful algorithms (and data structures) and ways of analysing algorithmic solutions, such as being able to obtain bounds on time and space usage of an algorithm (e.g., big-O notation, dynamic programming, etc.).

Also, many of the techniques covered in the course build on generic algorithms and data-structures, such as brute-force, iterative improvement, greedy algorithms, and lists, trees, and queues. All those algorithmic and data concepts will not be covered and it is important to know (and master!) them.

Note all this are NOT covered by standard programming courses, like Bootcamp or Studio.

Note also that, unless you are enrolled in Master of AI, it is not possible to take AI while taking A&A at the same time:

  • The reason why A&A is a pre-req (and not a co-req) is that we believe students must know the content of A&A before they start AI. For example, already in week 1 we cover tree traversal and different complexities in big-O notation. That’s why A&A is a second year course, and AI is a third year course. :-)
  • Some students enrolled in A&A may claim that they already know the content of A&A, though they are planning to take A&A and AI together. This appears inconsistent and may signal some problem with program planning: why are they taking a course if they already known its content? In those cases, it may be wise to talk to the corresponding Program Manager to take the best of the program.
  • Finally, we should note that both courses AI and A&A are very intense and demanding, so doing them at the same time is not great.

So, if your program does not include A&A, you need to plan ahead and take it as an elective before taking AI. Said so, if you think you have covered the topics of A&A in a previous degree or another university, you may be able to claim exception from the pre-req. See above (General section) how to do so.

I need you to approve the waiver for the pre-req for AI

You need to contact the Program Manager of your program, as he/she will be the ultimately making the decision. You need to send the Program Manager all the information required demonstrating that you have evidence to get the exception; for example that you have taken and passed a similar course to Algorithms and Analysis. The Program Manager knows the whole context within your program and he/she will then contact me for advise if needed. This also reduces the chances of misunderstandings, errors, and contradictions caused by different email threads with different people.

Will AI be offered in Semester 1?

In the past it was offered in Semester 1, but with some changes in programs the course was moved to Semester 2. As far as I can tell, there are no current plans to run it in Semester 1. Of course, things change and I am not the one who decides when a course runs, but at this point the course runs in Semester 2.

Is the AI practical or theoretically oriented?

Both. This course has both significant programming as well as significant theoretical content. During the course you will need to program standard AI algorithms (like A*, alpha-beta pruning, RL, or even code in Prolog programming language), but you will also have to calculate conditional probabilities using a Bayesian Network, understand the computational complexity of search algorithms (why is A* exponential in the worst case?), and even be able to mathematically prove why A* algorithm with an admissible heuristic will output an optimal solution. Note these examples are nor pre-req, the course will cover them, but we would expect students to be able to do achieve those tasks. To do so, you need programming and SE skills as well as mathematical and algorithmic backgrounds. That’s why the pre-reqs… ;-)

What programming languages and tools are used in the AI course?

The course is not static and tends to change, adapt, evolve from year to year. So, the tools and programming languages to be used depend on each edition, and therefore the exact details will be stated in Week 1. If a technology is used, it is because it will be reasonable to assume that the student either should already know it OR has the skills to grasp it.

For example, students taking AI will be assumed to be proficient at handling version control, and in particular GIT and GitHub, as well as development frameworks like VS Code.

In terms of programming, at the stage of this course, students are supposed to be proficient and flexible at programming, and hence be able to apply programming techniques in new programming languages. For example, many students had their first encounter with Python in this AI course, and they learnt it as part of the course, no problem! In some editions of the course, it will be part of the course to learn Prolog, a logic-programming language that most students would have never seen! The fact is that while being already proficient at the language used may provide benefits and speed up things, the course will not require extremely advanced features and techniques of a particular language that you cannot pick them up during the course itself.

Note that there is indeed significant programming work in the course, and we expect students, at this stage, to know how to program beyond basic programming.

I am not enrolled in any program and do not intent to, can I take the AI course?

See question “*I am not enrolled in any program and do not intent to, can I take course X? *” above under General.

What is the syllabus of the course, what topics will be covered?

We disclose the exact details of the course in Part B of the Course Overview. Until then I cannot state exactly what the topics will be as they may change from edition to edition.

Said so, being an intro course to AI, the topics will at least cover the usual ones in any standard AI intro course: search techniques (including A*), knowledge representation & reasoning, probabilities to reason about uncertainty, and some intro to machine learning.

Check Rusell & Norving Modern AI book to have an idea of typical topics covered in an AI intro course.

Previous
Next