Giter VIP home page Giter VIP logo

pl201602's Introduction

Programming Languages, SNU 4190.310, 2016 Fall

Announcements

TBA

Assignments

Due Due (Delay) Description Points

Must Read

  • READ VERY CAREFULLY this section.

Grading

  • Assignments: 45%
  • Exams: 50% (mid-term 20% and final 30%)
    • You will solve Coq problems at the lab during the exam.
  • Attendance: 5%
    • -1% per absence. IMPORTANT: 6 absences make an F.

Questions

Coq

  • Use Coq 8.5pl2. DO NOT use other versions.

    • If not, your submissions (assignments & exams) will not be properly graded.
  • Install Coq.

    • Linux / OS X

      • Install opam, and make sure you can use OCaml 4.03.0.
      • opam install coqide.8.5.2
      • Test by coqc -v in the command line. Check your PATH variable if you get an error.
      • Run CoqIDE by coqide.
    • For Windows

      • Install Coq for Windows
      • Cygwin (for make).
        • Download Cygwin. CAUTION: choose 32- or 64-bit versions correctly.
        • Install Cygwin. Make sure that you install bash and make (in Select packages). Installation may take a long time.
        • Now by "terminal" we mean the Cygwin terminal.
      • Add the directory that contains Coq binaries in the PATH variable.
        • Edit your Shell init file (like ~/.bashrc or ~/.bash_profile).
        • Find the file in C:\cygwin\home\[USER_ID].
        • Add export PATH=$PATH:/cygdrive/c/Program\ Files\ \(x86\)/Coq/bin/ at the end of the file. The directory to add may be different for your environment.
        • Restart the terminal to apply ~/.bashrc.
        • Check which coqc in the terminal. It should point to the coqc binary.
  • Use IDEs supporting Coq.

    • CoqIDE: installed by default.
    • Emacs: Company-Coq. Follow the setup instructions.

Textbook: Software Foundations

Assignment

  • Assignments will be issued every Wednesday. The deadline is the next Sunday (10 days later). The deadline for the delayed submission is the next to the next Sunday (17 days later).

Honor Code: DO NOT CHEAT

  • If you copy others' source code, you will get F.
  • "Others' source code" includes other students' and resources around the web. Especially, do not consult with public repositories on software foundations.
  • Note that we have a good automatic clone detector. We found out that a lot of students cheated last time. We hope we all be happy at the end of the semester..
  • The maximum score of a delayed submission is 80% that of a regular submission.
    • The granularity the delayed submission is per-problem, not per-assignment. So even if you couldn't get the full score for the regular submission period, try to solve the remaining problems and submit them.

Submission

  • assignments/$NAME directory is the assignment $NAME.
    • You submit P??.v files. You should edit only P??.v. DO NOT TOUCH ANYTHING ELSE.
    • E??.v files are for evaluation.
    • Everything else are for relevant the definitions for the assignment.
  • make in the terminal to compile files so that IDE can understand them.
  • Edit P??.v files to do the assignment.
  • make in the terminal to compile your submission. make eval in the terminal to grade your submission yourself.
  • Both make and make eval SHOULD SUCCEED. If not, your score will be 0.
  • make eval will check your submission.
    • P??.v files SHOULD NOT contain admit, Admitted, and anything in forbidden.txt.
    • If a P??.v file contains string GIVEUP, then it will be scored 0.
  • make submission to prepare your submission.
    • zip should be installed. Otherwise, you can just zip P??.v.
  • Submit at: http://147.46.219.145:8100/ TBA
    • DO NOT ATTACK. Please.
    • DO NOT USE A STRONG PASSWORD. It is http.
    • If your submission status is SYSTEM ERROR or RUNNING for a long time, even after refreshing your web browser for several times, please ask the TA.

Troubleshootings

  • If something bad happens, please download the most recent version of the assignments.

  • You may have to make before interacting with IDEs.

  • You can specify the CRLF handling strategy in Git (cf). In Windows, some strategies may break the Makefile. Please just use the linebreaks as in the repository.

  • When running CoqIDE in OS X for the first time, you may see an error message saying Failed to load coqtop. Then click No, and then find /Applications/CoqIDE_8.4pl5.app/Contents/Resources/bin/coqtop and open for once. Then goto CoqIDE > Preferences > Externals. And then change coqtop into /Applications/CoqIDE_8.4pl5.app/Contents/Resources/bin/coqtop.

  • Your submission file should have alphanumeric characters only.

  • If cygwin complains like ./check.sh: line 2: $'\r': command not found, please:

    • Install dos2unix in Cygwin.
    • Run: dos2unix check.sh
  • If you use Coquille (on Vim) and your terminal is hidden by some message (warning (some rule has been masked)), please edit ~/.vim/.../coquille/autoload/coquille.py's restart_coq as follows (NOTE: stderr = subprocess.PIPE):

      def restart_coq(*args):
      global coqtop
      if coqtop: kill_coqtop()
      try:
          coqtop = subprocess.Popen(
                  ["coqtop", "-ideslave"] + list(args),
                  stdin = subprocess.PIPE,
                  stdout = subprocess.PIPE,
                  stderr = subprocess.PIPE,
                  preexec_fn = ignore_sigint
                  )
      except OSError:
          print("Error: couldn't launch coqtop")
    

    Thank you for reporting, @indiofish

Misc.

  • I strongly recommend you to use Git for the course. Register at GitHub. Try Git.

pl201602's People

Contributors

jeehoonkang avatar

Watchers

Wonho Choo 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.