Assignment 1 (non-credit)

1. Learn the following basics of Unix:

  • What is a Unix terminal and how to open one? Reference: Unix Introduction
  • What are files and processes? What is a directory and how are files grouped together in a directory structure? Reference: Unix Tutorial 1
  • How to list files and directories? How to create files and directories? How to copy and move files? Reference: Unix Tutorial 2
  • What are file access permissions and how to change them? Reference: Unix Tutorial 5

It is expected that by the end of this task, you are familiar with the usage of unix commands such as: ls, cp, rm, mv, touch, chmod, groups, passwd, cd, pwd, mkdir, rmdir

2. Open up a browser (firefox/Chrome) and access the COL100 homepage.

3. Open an email client (webmail IIT Delhi) and login to your account. Send an email to the instructor of COL100 and then logout.

4. Learn how to use and navigate a text editor:

  • Type the following command on your terminal prompt: gedit &
  • Open the gedit tutorial and experiment with at least the following sections (you can experiment with all the subsections on the gedit tutorial page, if you like):
    • File basics: Open, close, and save files
    • Replace text and Search for text
    • Undo a recent action
    • Turn on syntax highlighting

5. Learn how to work with SML programs:

  • Open a terminal and execute the command: sml
  • Follow section 3.1-3.3 of the lecture notes and code up the examples. If you wish to experiment more, then you can refer to the slide deck here from slide 5 onwards.
  • Type the following programs in separate files and learn how to load and execute them in the interactive SML environment:
fun factorial(n) = 
    if (n = 0) then 1 
    else n*factorial(n-1);

fun gcd(m,n) =
    if (n=0) then m
    else gcd(n,m mod n);