Course guide
Table of contents
Introduction
Hello! Welcome to the compiler course by Professor Yi-Ping You.
This course has been highly integrated with GitHub and aimed to improve the students’ course-taking experience and try to keep up with the technology trends. In addition, the descriptions and requirements of the homework assignments have also been revised. We hope everyone has a great semester of learning.
Here is a brief explanation of why GitHub is used for this course.
Why using GitHub?
1. GitHub is more stable than E3
You might have experienced the tragic situation that E3 fails to respond when you try to submit your homework at the last minute before the deadline, or that E3 is down and inaccessible during the midterm or final exam week. Managing course content and assignments using GitHub, a platform with high availability and high capacity, can greatly improve the stability of the course website, allowing everyone to access the course materials at any time. In addition, GitHub provides the server logs so that we can determine whether there is some situation that makes you fail to submit an assignment and thus consider extending the homework deadline.
2. Using GitHub as your remote backup
You only need one command to upload your code to GitHub. This allows you to easily back up your implementations and greatly reduce the risk of accidentally deleting your files.
3. Forcing you to use version control
Maybe you haven’t heard of version control since college, or you just haven’t had a chance to use it. This class will require you to use version control with some basic operations of Git, which may encourage you to use Git for your future project development.
Okay, let’s see what resources are available for this course.
Organization navigation
In addition to this website, there is a discussion forum and a private repository for course resources (e.g., lecture slides and past exams).
The purpose of the discussion forum is to allow students to ask questions or express opinions on the content of courses, assignments, etc. Of course, we encourage you to give feedback and provide useful information when someone asked a question.
If you want to see what the discussion forum will actually look like, you can refer to the past Disscussion. You may notice that we use the issue tracking feature of GitHub for this discussion purpose.
Besides, each of your assignments will be stored as a separate private repository, which is accessible by you, the TAs, and the instructor, in the course organization.
The structure of the course organization is summarized as follows.
+ Compiler-f23 —— The course GitHub organization
+ discussion —— Discussion forum (for announcements and discussions)
+ private —— Other course materials, such as lecture slides, past exams, the links to accept assignments
------
+ hw0-<your id> —— A private repository for your assignment
+ hw1-<your id>
.
.
+ hw5-...
If you click the link to browse the course materials now or access the lecture slides directly via Schedule & lecture notes
on the left menu, you should get a 404 error.
This is because only the GitHub users who join the organization can browse those content.
Before joining the course organization, you need to do some things first.
How to join the organization
1. Sign up a GitHub account
Notice that you are signing up for a GitHub account that represents yourself, and this account is temporarily used to join our course organization. You will definitely use this account in your future career, so it will represent you to a certain extent. It is highly recommended to think carefully about the name of your account.
For example, nctuGreatAgain
, UCMaoChung5566
, dutyForOurCountry
are not good names.
If you already have a GitHub account, you can skip this step.
Click here to sign up a GitHub account.
2. Turn on notifications
Personal Settings
> Notifications
> Participating
> Web [check]
With this configuration, you will receive email notifications when your homework assignments are graded.
3. Fill out a Google Form for identification purposes
Please fill in your personal information in the following Google Form (You must log in first) so that we can associate your GitHub account with your real identity.
After the TAs receive the form and confirm that you take this course, you will be invited to join the organization (GitHub will send an invitation email to you). When you accept the invitation, you will officially join the course organization.
The link of the Google Form: https://forms.gle/yK4zCNCDWrTQmod3A
4. Receiving and practicing HW0 to get familiar with the environment
Check out https://github.com/compiler-f23/private/tree/master/Homeworks and click the invitation link to accept HW0. If you fail to do so, it is likely that you do not log in with your GitHub account or your GitHub account has not yet added to the organization.