This course will equip you with the programming concepts needed to effectively communicate your ideas to computers. For a detailed overview, please refer to the introduction in the Google Slides presentation.
It is strongly recommended that students have completed courses in:
A solid foundation in these areas is crucial for success in this course.
Ensure you are proficient with the following development tools:
Git: Essential for downloading homework templates and managing your development process. If you're new to Git, please complete this tutorial.
Follow these steps to set up your repository:
$ git clone --origin upstream https://github.com/kaist-cp/cs220.git
$ cd cs220
$ git remote -v
upstream https://github.com/kaist-cp/cs220.git (fetch)
upstream https://github.com/kaist-cp/cs220.git (push)
upstream/main
:
$ git fetch upstream
$ git merge upstream/main
For managing your development on a Git server, create a private repository:
cs220
.
The repository should be initialized as empty.$ git remote add origin git@github.com:<github-id>/cs220.git
$ git remote -v
origin git@github.com:<github-id>/cs220.git (fetch)
origin git@github.com:<github-id>/cs220.git (push)
upstream https://github.com/kaist-cp/cs220.git (fetch)
upstream https://github.com/kaist-cp/cs220.git (push)
$ git push -u origin main
ssh-keygen
and retrieve the public key from ~/.ssh/id_rsa.pub
. You should never share the private key located in ~/.ssh/id_rsa
.Rust: You will use Rust for homework. We chose Rust because its ownership type system greatly simplifies the development of large-scale system software.
cargo doc --open
on your local will show you the documentation for each homework.ChatGPT or other Large Language Models (LLMs) (optional): Useful for completing your homework.
Visual Studio Code (optional): Recommended for developing your homework, although you may use any editor of your preference.
Single Sign On (SSO): Use the following SSO credentials to access gg and the development server:
IMPORTANT: READ CAREFULLY. THIS IS A SERIOUS MATTER.
Sign the KAIST CS Honor Code for this semester. Failure to do so may lead to expulsion from the course.
We will employ sophisticated tools to detect code plagiarism.
submit.sh
in scripts
directory. In other words, you should run the following command:
# Run this command at the root directory of this repository.
$ ./scripts/submit.sh
target
directory, you can find a assignment<NUMBER>.zip
file (assignment09.zip
for example). Submit this file to https://gg.kaist.ac.kr/course/20.You can check your grade of each assignment by running the grading script.
$ ./scripts/grade.sh <assignment_number>
assignment09
, run the following command:$ ./scripts/grade.sh 9
Dates & Times: Oct 23th (Wed), Dec 18th (Wed), 13:00-15:45 (or shorter, TBA)
Location: (the same as usual)
Physical attendance is required. If necessary, online participation via Zoom will be accommodated.
You are expected to bring your own laptop. Laptops can also be borrowed from the School of Computing Administration Team.
We will use Safe Exam Browser to prevent cheatings.
A quiz must be completed on the Course Management website for each session (if any). Quizzes should be completed by the end of the day.
Failing to attend a significant number of sessions will result in an automatic grade of F.
kaist-cp-class
account for login.@kaist.ac.kr
email address.Course-related announcements and information will be posted on the course website and the GitHub issue tracker. It is expected that you read all announcements within 24 hours of their posting. Watching the repository is highly recommended for automatic email notifications of new announcements.
Questions about course materials and assignments should be posted in the course repository's issue tracker.
Email inquiries should be reserved for confidential or personal matters. Questions not adhering to this guideline (e.g., course material queries via email) will not be addressed.
Office hours will not cover new questions. Check the issue tracker for similar questions before attending. If your question is not listed, post it as a new issue for discussion. Office hour discussions will focus on unresolved issues.
Emails to the instructor or head TA should start with "CS220" in the subject line, followed by a brief description. Include your name and student number in the email. Emails lacking this information (e.g., those without a student number) will not receive a response.
If attending remotely via Zoom (https://kaist.zoom.us/my/jeehoon.kang), set your Zoom name to <your student number> <your name>
(e.g., 20071163 강지훈
).
Instructions for changing your Zoom name can be found here.
The course is conducted in English. However, you may ask questions in Korean, which will be translated into English.
1830eaed90e5986c75320daaf131bd3730b8575e866c4e92935a690e7c2a0716