CSE-321 Programming Languages - Assignments

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


Words on academic integrity

  • Be sure to read the document on the disciplinary policy for this course. [PDF]
  • You should never post code relevant to assignments to the discussion board.
  • Your code will be compared with other students' code by a code-checking program.
  • Do not try to outsmart the teaching staff with some, perhaps ingenious, tricks. Instead invest your time in the assignment!

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.
   Out    Points    Assignment    Due      Solution

1    Wed Mar 7   100 (P) SML Programming (I) [PS, PDF]
hw1.sml hw1-sig.sml sources.cm
  Mar 14 by 1:00am   hw1-test-fn.sml
hw1.txt
2    Wed Mar 14   100 (P) SML Programming (II) [PS, PDF]
hw2.sml hw2-sig.sml sources.cm
  Mar 21 by 1:00am hw2-test-fn.sml hw2.txt
hw2-final.txt tail-check.txt
3    Wed Mar 21   100 (P) SML Programming (III) [PS, PDF]
hw3.sml hw3-sig.sml sources.cm
  April 2 by 12:01am hw3-sol.sml hw3-test-fn.sml
hw3.txt
4    Mon Apr 2   100 (P) Implementing the λ-calculus [PS, PDF]
hw4-stub.zip
  Apr 16 by 12:01am hw4-test-fn.sml test.uml
hw4prog.txt
5    Wed Apr 11   100 (P) Typechecking the simply-typed λ-calculus [PS, PDF]
hw5-stub.zip
  May 2 by 12:01am hw5-test-fn.sml hw5.txt
6    Wed May 2   100 (P) De Bruijn indexes [PS, PDF] (Version 1.2)
hw6-stub.zip
  May 15 by 11:59pm hw6-sol.sml hw6-test-fn.sml
eval-sig.sml (updated)
part1test.tml part2test.tml part3test.tml
hw6prog.txt
7    Wed May 16   100 (P) Featherweight Java [PS, PDF]
hw7-stub.zip
fjava-sig.sml (with comments)
  May 29 by 11:59pm test-fn-std.sml object.fj simple.fj
hw7prog.txt
8    Wed May 30   100 (P) Type reconstruction [PS, PDF] (Ver 1.1)
hw8-stub.zip
  June 12 by 11:59pm typing-sol.sml hw8-test-fn.sml test.zip
hw8.txt

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


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