Useful info for new students (mostly only relevant to the School of Computer Science)
- CS Announcements (important: all students should join)
- Computer Science Careers and Industry Pages (all students are recommended to join)
- Computer Science ACM Programming Competition (students interested in programming competitions are recommended to join)
- Hackathon and Industry Competition Pages (all students are recommended to join)
- Academic Integrity Learning Resources for Students (important all students should read)
- CS Club
- Programming Competition Club
- Software Engineering Club
- Open Source Collective Discord: The largest technology community in Australia, supported by the University of Adelaide and tech organisations such as Google, Microsoft, Accenture etc.
- Capture the Flag Club
- Student representative: As a student representative, you will meet staff representatives and our head of school once a semester to raise any issues that you or your friends encounter. We need 1-2 representatives from each year. Sign up here.
- Free tutoring service: The school offers free tutoring for struggling students. The budget is extremely limited and our tutors don't necessary know everything. If you ask about a very specific question from a 3rd/4th year course, we may not have any tutor who can answer it; also, at some point of the semester, we will shut it down when budget runs out. Book via this link.
- 2023 computer science welcome talk slides
FAQs
- Need to locate a building?
Please check out Campus Map. There is also a helpful website/app called "Lost on Campus". - Need course materials for your registered courses?
All our courses are hosted on Canvas. Some courses are not visible until around the first lecture. - Need to find out the schedule of your courses?
All course schedules are listed here: A course often involves different components: lectures, workshops, tutorials, practicals, etc. A good idea is to try different courses in the first 1-2 weeks to figure out what you really want to register. - What is the overall semester schedule?
Here is the University Academic Calendar. For international students who are not familiar with Australian holidays, holidays marked on the calendar are the days without classes. Note: Australia implements daylight saving! - What are the prerequisites for a course? What is this course about? What do I need to do to pass this course?
Please check out the Course Outlines. - How do I submit assignments?
Many (non-coding) assignments are collected directly on the course page on Canvas. Coding assignments are collected via two different systems called Gradescope (link to be provided by your lecturer) and Websubmission (old system on the way out). The course lecturers and usually the CS student club will offer guidance in the first week for new students. - What kind of computing resources are provided?
You are welcome to use the computing rooms in Ingkarni Wardli (basement, second floor, when no classes are in session). Most computers have both Windows and Linux. Your a1xxxxxx ID comes with very limited storage space on the university "cloud". One way to remotely access the university computing resources is via Adapt or VPN. Once VPN is connected, you could access the university-managed linux cloud via ssh ("ssh aXXXXXXX@uss.cs.adelaide.edu.au"). Don't write code on the cloud as you may lose it due to poor connection. Don't test code on the cloud because the compiler versions may be different from whatever versions your course is using. By the way, you are highly recommended to switch to Linux if you are a Windows user. A lot of coding assignments across different courses rely on g++, python, git, ssh, svn, etc. It'd be major headache if you stick to Windows. It is a good idea to switch now instead of waiting (chances are that you need to switch anyway). If you don't know which linux distribution to choose, then use Ubuntu (beginner friendly).
Course advices
- You should first of all read
official program rules. The example study plans provided to you (i.e., the pdf course tables given to you) are only examples (as name suggests), which means that you don't have to follow it exactly. There is some room for minor changes (e.g., the plan may say you should take X before Y, but if X is not a prerequisite of Y, then it is fine to take Y before X.) However, it is often a good idea to stick to this study plan, because not all courses are offered in all semesters, and some courses are prerequisites of the others, so coming up with a valid new plan is often difficult. This is also complicated by potential changes in course offering. You don't want to be the only student left from your year/program that still needs X because you decide to postpone it for 2 years. To check a course's prerequisites, please check the Course Outlines. - If you enrolled in the last several years, and the study plan changed...
You should either stick to the old plan, or change to the new plan. You cannot use a mixture of both. - I am about to start a research project (e.g., Master of Computer Science project; Advanced Topics in Computer Science)..
You need to find a research supervisor. Here is a list of available projects. Write to your interested supervisor (even if he/she is not in the list) and introduce yourself (as early as possible, before your favourite supervisor commits to another student). If you are taking the MCI project, then you don't need to do this. You will be given a project. - Which courses are online? What are the arrangements for online assignments/exams? Do I have to be in Australia during COVID?
1) Ask the course coordinator, or ask AskSET. Generally, if you see "online workshops" in the timetable, then the course is most likely online -- but please double-check with AskEMCS/course coordinator; 2) Comes down to specific courses. Details will be announced in week 1; 3) The school doesn't have any policy that requires you stay in Adelaide if all your courses are online.
Lack Programming Background?
- 30 hour long C++ YouTube course. Topics: Setting up the tools; Diving in Your First C++ Program; Variables and data types; Operations on Data; Flow Control; Loops; Arrays; Pointers; References; Character Manipulation and Strings; Functions; Getting Things out of functions; Function Overloading; Lambda functions; Function Templates; C++20 Concepts Crash course; Classes; Inheritance; Polymorphism
- 4 hour long Python YouTube course. Topics: Installing Python and PyCharm; Setup and Hello World; Drawing a Shape; Variables and Data Types; Working With Strings; Working With Numbers; Getting Input From Users; Building a Basic Calculator; Mad Libs Game; Lists; List Functions; Tuples; Functions; Return Statement; If Statements; If Statements and Comparisons; Building a better Calculator; Dictionaries; While Loop; Building a Guessing Game; For Loops; Exponent Function; 2D Lists and Nested Loops; Building a Translator; Comments; Try / Except; Reading Files; Writing to Files; Modules and Pip; Classes and Objects; Building a Multiple Choice Quiz; Object Functions; Inheritance; Python Interpreter
- 9 hour long YouTube Java course. Topics: Basic Java keywords explained; Packages, import statements, instance members, default constructor; Access and non-access modifiers; Tools: IntelliJ Idea, Junit, Maven; If/else statements and booleans; Loops: for, while and do while loop; For each loop and arrays; Arrays and enums; Enums and switch statement; Switch statement cont; Logging using slf4j and logback; Public static void main; Checked and Unchecked Exceptions; Interfaces; Inheritance; Java Object finalize() method; Object clone method; Number ranges, autoboxing, and more; HashCode and Equals; Java Collections; ArrayList
- Recommendation from the Capture the Flag Club on Python learning materials: Automate the Boring Staff with Python (this I heard is a highly recommended book) and Learning X in Y Minutes (not just Python).
Google "Mingyu Guo welcome" to search for this page, or scan the following QR code
Please contact me (mingyu.guo at adelaide dot edu dot au) if you have suggestions on improving this document.