Git Product home page Git Product logo

cs220's Introduction

KAIST CS220: Programming Principles

Logistics

Course description

Textbook

Prerequisites

  • It is strongly recommended that students already took courses on:

    • Mathematics (MAS101): proposition statement and proof
    • Programming (CS101): basic programming skills

    Without a proper understanding of these topics, you will likely struggle in this course.

Tools

Make sure you're capable of using the following development tools:

  • Git: for downloading the homework skeleton and version-controlling your development. If you're not familiar with Git, walk through this tutorial.

    • IMPORTANT: you should not expose your work to others. In particular, you should not fork the upstream and push there. Please the following steps:

      • Directly clone the upstream without forking it.

        $ git clone --origin upstream [email protected]:kaist-cp/cs220.git
        $ cd cs220
        $ git remote -v
        upstream	[email protected]:kaist-cp/cs220.git (fetch)
        upstream	[email protected]:kaist-cp/cs220.git (push)
      • To get updates from the upstream, fetch and merge upstream/main.

        $ git fetch upstream
        $ git merge upstream/main
    • If you want to manage your development in a Git server, please create your own private repository.

  • Rust: as the language of homework implementation. We chose Rust because its ownership type system greatly simplifies the development of large-scale system software.

    • We recommend you to read this page that describes how to study Rust.
    • cargo doc --open on your local will show you the documentation for each homework.
  • Visual Studio Code (optional): for developing your homework. If you prefer other editors, you're good to go.

  • You can connect to server by ssh s<student-id>@cp-service.kaist.ac.kr -p13000, e.g., ssh [email protected] -p13000.

Grading & honor code

Cheating

IMPORTANT: PAY CLOSE ATTENTION. VERY SERIOUS.

  • Please sign the KAIST CS Honor Code for this semester. Otherwise, you may be expelled from the course.

  • We will use sophisticated tools for detecting code plagiarism​.

Programming assignments (40%)

For details, see https://gg.kaist.ac.kr/course/12.

Midterm and final exams (60%)

  • Date & Time: TBA (midterm) and TBA (final), 13:00pm-15:45pm (or shorter, TBA)

  • Place: Rm. 1501, Bldg. E3-1, KAIST

    • If online participation is absolutely necessary, we'll use Zoom.

Attendance (?%)

  • You should solve a quiz at the Course Management website for each session. You should answer to the quiz by the end of the day.

  • If you miss a significant number of sessions, you'll automatically get an F.

Communication

Registration

Rules

  • Course-related announcements and information will be posted on the website as well as on the GitHub issue tracker. You are expected to read all announcements within 24 hours of their being posted. It is highly recommended to watch the repository so that new announcements will automatically be delivered to you email address.

  • Ask questions on course materials and assignments in this repository's issue tracker.

    • Don't send emails to the instructor or TAs for course materials and assignments.

    • Before asking a question, search it in Google and Stack Overflow.

    • Describe your question as detailed as possible. It should include following things:

      • Environment (OS, gcc, g++ version, and any other related program information).
      • Command(s) that you used and the result. Any logs should be formatted in code. Refer to this.
      • Any directory or file changes you've made. If it is solution file, just describe which part of the code is modified.
      • Googling result. Search before asking, and share the keyword used for searching and what you've learned from it.
    • Give a proper title to your issue.

    • Read this for more instructions.

    • I'm requiring you to ask questions online first for two reasons. First, clearly writing a question is the first step to reach an answer. Second, you can benefit from questions and answers of other students.

  • Ask your questions via email only if they are either confidential or personal. Any questions failing to do so (e.g. email questions on course materials) will not be answered.

  • We are NOT going to discuss new questions during the office hour. Before coming to the office hour, please check if there is a similar question on the issue tracker. If there isn't, file a new issue and start discussion there. The agenda of the office hour will be the issues that are not resolved yet.

  • Emails to the instructor or the head TA should begin with "CS220:" in the subject line, followed by a brief description of the purpose of your email. The content should at least contain your name and student number. Any emails failing to do so (e.g. emails without student number) will not be answered.

  • If you join the session remotely from Zoom (https://kaist.zoom.us/my/jeehoon.kang), your Zoom name should be <your student number> <your name> (e.g., 20071163 강지훈). Change your name by referring to this.

  • This course is conducted in English. But you may ask questions in Korean. Then I will translate it to English.

cs220's People

Contributors

buttercrab avatar ironore15 avatar jeehoonkang avatar leejseo avatar m-spitfire avatar minseongg avatar tomtomjhj avatar utilforever avatar zzz845zz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.