Hello to the Data Structure!
Introduction
Welcome to the Data Structure course! Throughout this semester, you will be implementing many different data structures. This will give you to gain a deep understanding of the fundamental concepts of the data structures. These assignments are designed to help you become proficient in modern C++ programming languages. Our goal is to provide you with comprehensive experiences, enhancing both your theoretical knowledge and practical implementation skills in data structures.
To prepare for the assignments, please refer to the Pre-requisites section for detailed instructions on setting up your development environment. This document will provide a brief overview of how to download assignments, submit your work, and understand the grading process.
Pre-requisites
All the assignments will be implemented, executed, and tested in Linux. As many of you may not be familiar with Linux, we provided the following instructions. Please read through these documents before starting to implement your assignments.
Performing the Assignment
Once you have downloaded the assignment files, follow these steps to complete the tasks:
- Read the Instructions Carefully: You should clearly understand all the requirements and specifications for the assignment.
- Set Up Your Environment: Your development environment should be properly configured. Our recommentatin is to use Visual Studio Code with the necessary extensions installed, but you may use which ever IDEs you like.
- Complete the Assignment: Follow the instructions to complete
the tasks. Be sure to save your work regularly. Our recommendation
is to use
git
(probably usinggithub
) to regularly commit your code. - Test Your Work: Thoroughly test your code or solutions to ensure your implementation meets all the requirements and does not have an error.
How to Submit the Assignment
After completing the assignment, you need submit it to the designated submission server.
Using the Assignment Submission Server
- The assignment submission server is at
https://kayle.snu.ac.kr:37373
.
-
Prepare Your Submission:
- Navigate to the directory of your assignment:
$ pwd
00-setupRun the
prepare-submit.sh
script to prepare your submission:$ ./prepare-submit.sh
[*] Remove tar file...
[*] Compress files...
./include/hello.hpp
[*] Successfully Compressed!
[*] Done! You are ready to submitThis script will compress your files into
assign[0-9].tar.gz
. -
Upload Your Assignment
- Once your submission file
assign[0-9].tar.gz
is ready, now you can upload the file to the submission server. - Once you visit
https://kayle.snu.ac.kr:37373
using your web browser, you will be prompted to enter your email address. Once you confirm the email address, you will receive an email with an API key, which will be used for the login key. This API key can be reused for your future logins, and if you forget one, you can simply re-generate the key by entering the email address again.
warningOnly email addresses with the
snu.ac.kr
domain are accepted (e.g.,byoungyoung@snu.ac.kr
).- After logging in, navigate to the designated submission page on the server where you can upload your assignment.
- After uploading, make sure to verify the submission time and details to ensure your assignment has been successfully submitted.
- Once your submission file
-
Download Your Assignment:
If you want to check if your assignment is correctly submitted, you can download it from the server. To do so, use the
scp
command to downloadassign[0-9].tar.gz
from your assignment server.bash
scp -P [port] assign[0-9].tar.gz compsec@kayle.snu.ac.kr:/home/compsec/[location of the tarball]
Replace
[port]
with your assigned SSH port number.infoIf you are using Visual Studio Code, you can directly download and upload your submission files using the left-side Explorer. Navigate to the remote server, browse to your assignment folder, and download the
assign[0-9].tar.gz
file.
Grading
Your code will be graded through an auto-grading system. Here are the key points to keep in mind:
- The provided tests are not exhaustive; they will not cover all possible scenarios for grading. We run additional tests to further check the robustness and correctness of your implementation.
- While passing the provided tests is a good indicator, it does not guarantee a full score. You are encouraged to extend the provided tests to thoroughly validate your code.
- You will receive full credits if:
- All tests pass.
- Valgrind detects no memory leaks.
- Valgrind reports no memory errors.
Ensure your code meets these criteria to receive the full grade.
You are now ready to begin your assignment and proceed with confidence!