CSE-321 Programming Languages - Assignments

[ Home | Schedule | Assignments | Software | Resources | Pictures ] gla@postech Sungwoo Park


Words on academic integrity

  • You may discuss assignments with other students, but what you hand in must be entirely your own work. This means that you may freely discuss your idea with your classmates (which we encourage indeed), but when it comes to writing your code or written solution, it must be entirely your own work. Hence you should never look at your classmates' code or written solution, not to mention showing yours to them, even if you have discussed assignments with them.
  • You should never post code relevant to assignments to the discussion board.
  • If we judge that you have copied any part of other students' code or written solution, you will be punished for cheating.
  • Cheating also includes plagiarism in the sense of stealing someone else's idea.
  • Your code will be compared with other students' code by a code-checking program (to be disclosed at the end of the semester).
  • Do not try to outsmart the teaching staff with some, perhaps ingenious, tricks. Instead invest your time in the assignment!
  • Policy on cheating:
    1. For cheating, you will receive no credit for the assignment involved.
    2. Both copier and copyee will be equally punished.
    3. For cheating once, the highest grade you can obtain in the course is C0.
    4. For cheating twice, you will be expelled from class.
    5. No exception to the above policy.
   Out    Points    Assignment    Due      Solution

1    Wed Mar 6   100 (P) SML Programming (I) [PS, PDF]
hw1-sig.sml hw1.sml sources.cm
  Wed Mar 15 by 1:00am   hw1-soln.sml hw1-test.sml hw1.txt
2    Fri Mar 17   100 (30) (P) SML Programming (II) [PS, PDF]
hw2-sig.sml hw2.sml sources.cm
hw2-test-fn.sml
  Fri Mar 24 by 1:00am hw2-test-sol-fn.sml hw2.txt hw2new.txt
3    Fri Mar 24   100


50
(P) Huffman Coding [PS, PDF]
hw3-sig.sml hw3.sml test.sml sources.cm
hw3-test-fn.sml
(W) Rule Induction [PS, PDF]
hw3-written.tex hw3-template.tex proof.sty
  Mon Apr 3 by 1:00am hw3-soln.sml
hw3.txt

hw3-written-soln.ps hw3-written-soln.pdf
hw3-written.txt
*    Mon Apr 3   (100) (P) Module System [TXT]
hw-extra.sml test.sml
  End of the semester
4    Mon Apr 3   P 100
W 50
(P) Implementing the λ-calculus
(W) Structural properties
[PS, PDF]
hw4-stub.zip hw4.tex proof.sty
test.uml result.txt rec.uml fib.uml
(use loopFile "fib.uml" (eval show);)
  Mon Apr 17 by 1:00am test-fn.sml
hw4prog.txt
hw4-written-soln.ps
hw4-written-soln.pdf
5    Mon Apr 17   P 100 (10) (P) Implementing the simply typed λ-calculus
[PS, PDF]
hw5-stub.zip
cm-tml.sml cm-tml-sig.sml
tml.sml parse.sml
  Typechecker:
Mon May 1 by 1:00am
Abstract machine:
Fri May 5 by 1:00am
typing.sml typing2.sml
test-fn2.sml hw5.txt hw5-2.txt test.tml
6    Fri May 5   P 100 (10)
W 100
(P) Bidirectional typechecking and abstract machine E
[PS, PDF]
hw6-stub.zip
(W) Contraction and type preservation
[PS, PDF]
hw6.tex, proof.sty
  (P)
Mon May 15 by 1:00am
(W)
Fri May 12 by 1:00am
hw6-written-soln.ps
test-fn.sml
em-cml-sig.sml
typeTest.cml stepTest.cml
hw6prog.txt hw6-written.txt
7    Mon May 15   P 100 (P) Featherweight Java
[PS, PDF]
hw7-stub.zip
  Mon May 29 by 1:00am test-fn-std.sml
hw7-final.txt
8    Mon May 29   P 100 (P) Translation for TML
hw8.html
Abstract machine Mach [PS, PDF]
hw8-stub.zip
ast-parse.sml
  Mon June 12 by 1:00am hw8-tml.zip
test.sml
hw8-grade.txt
Gla.txt
hw8-student-tml.zip

P = Programming, W = Written, (points) = Extra-credit

Programming assignments

  • Your code should strictly follow the Standard ML style guide for this course.
  • You should hand in your assignment electronically before the due date. After the due date, the hand-in directory will be closed and you will NOT be able to access it. No late submissions will be accepted.
  • Grading criteria:
    • Correctness: Your program should satisfy the given specification.
    • Clarity: Your program should be easy to read, with enough documentation to help readers understand the implmentation. (But beware of unnecessarily long and useless comments!) If we fail to understand your code, you may not receive full credit for your assignment even if it works correctly.
  • Grading criteria NOT applied to programming assignments:
    • Efficiency: You should strive only for the elegance, but never for the efficiency of your code (unless otherwise instructed). In particular, try to avoid using mutuable references or arrays whenever possible so that your code remains pure. You will often be tempted to exploit them in your code, but none of our assignments are designed so as to encourage their use. It is even safe to assume that if your code is not pure, you have not thought enough about the assignment!
  • Your hand-in directory is /afs/postech.ac.kr/class/cse/cs321/handin/.
  • Advice:
    1. Start your assignment early. Keep in mind that the hand-in directory will be closed after the due date.
    2. Spend enough time designing your code before you jump into coding. In other words, think about the problem before typing anything on your screen. It is not uncommon to see that a well-designed specification automatically writes code for you.
    3. Take advantage of the office hours of the teaching staff - they are more than willing to help you.
    4. Again, start your assignment early! Remember that no late submissions will be accepted.

Written assignments

    (To be completed later.)

[ Home | Schedule | Assignments | Software | Resources | Pictures ] gla@postech Sungwoo Park