ICE2015F14.Assignments History

Hide minor edits - Show changes to output

August 31, 2015, at 10:15 AM by 115.145.227.237 -
Deleted lines 3-83:

* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''.
* Advisory homework assignments will contribute by 10% to the final grade.

* %red%Shell Lab%% (mandatory) - Due: Dec. 12
** Logistics
*** All files must be in a single directory that are named after your student ID.
**** The directory has two sub-directories, ''docs'' and ''srcs''.
**** Documents are in the directory ''docs''.
**** Source files are in the directory ''srcs''.
*** The student ID directory will be zipped into a single tgz file.
*** You will send the zipped file to ''homework.skku@gmail.com'' by the end of the due date
*** The title of the e-mail should be '''[ICE2015 SA] ''your student ID'''''.
** Part VI - Issued on Dec. 1
*** Congratulations! You've made a shell that is able to do basic functions.
*** An excellent engineering should be documented with excellence, too. This is the time to write a technical report and manual pages about your shell.
*** A technical report must well illustrate the internal structure and mechanisms of your shell. The features provided by your shell must be clearly documented in the manual pages, accordingly.
*** %red%All documentation should be done in English.%%
** Part V - Issued on Dec. 1
*** Polish your shell with more built-in commands and the job control feature.
*** The following build-in commands should be implemented.
#### ''time''
#### ''cd''
#### ''pwd''
*** In order to support job controlling, following commands are also need to be implemented.
#### ''bg''
#### ''fg''
#### ''jobs''
*** The job control may require your shell to create a new process group for each command line input.
** Part IV - Issued on Nov. 28
*** Now, your shell must handle pipelining and redirection of commands as ''bash'' does.
*** Arbitrary number of commands can be pipelined.
*** Redirection of standard input and output as well as standard error must be supported.
** Part III - Issued on Nov. 22
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command in the directories specified by the PATH variable.
*** Your shell supposedly supports the background execution feature. Like ''bash'', if a command followed by ''&'' is given, your shell will execute the command in the background. Naturally, your shell must properly handle SIGCHLD from the children in the background. Never let them become zombies.
** Part II - Issued on Nov. 12
*** Surprisingly, your shell provides an in-house version of the ''ls'' command as an internal command. Exactly the same as the conventional ''ls'', your ''ls'' must show detailed information about files when used with ''-l'' option.
*** No more specifications will be provided. Give your ''ls'' as many features as possible.
** Part I - Issued on Nov. 4
### Write the skeleton of your shell.
### The prompt of your shell should be "(username)@(hostname):(cwd)$".
### Implement the following built-in functions.
**** ''echo''
**** ''whoami'' (returns the current username)
**** ''export''
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
* Utility programming assignment (advisory) - Issued on Oct. 30
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of ''top''.
** Your top will periodically show system information that includes the followings:
*** Load average of 1, 5 and 15 minutes.
*** Number of existing processes.
*** Total memory and free memory.
** The original ''top'' displays the information in good-looking form. This output is generated through the ''ncurses'' library. If you want to make a command line tool with user-friendly interface, learning how to use ''ncurses'' is highly recommended.
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with the ''apt-get install ncurses-devel'' command.
* System administration homework assignment (advisory) - Issued on Oct. 6
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory. The backup file should be a tarred and gzipped file.
* Shell scripting homework assignment (advisory) - Issued on Sep. 22
## Counting the number of files with the given name
*** Your shell script traverses a directory structure and counts the number of files with the given file name.
*** The file name will be given to the script as its first command line argument.
*** The second argument is the starting directory to traverse. If it is not given, by default, the current working directory will be used as the starting point.
*** The file name can be written in regular expression.
*** The output should be as follows:\\
"(number of files) files have the file name (given name) under the directory (starting directory)."
## Logging the number of threads in a system
*** Your shell script periodically record the number of threads in execution.
*** Your shell script demands two command line arguments.
*** The first argument denotes the log file name, and the second argument determines the logging period.
*** The logging period is represented in seconds. For example, if the second argument is 60, the shell script will wake up every 1 min and log the number of existing threads on the log file.
*** The format of the log is as follows:\\
"2014-09-22 16:26:20 - 124 threads exist."\\
"2014-09-22 16:31:20 - 128 threads exist."
Changed line 21 from:
*** %%red%All documentation should be done in English.%
to:
*** %red%All documentation should be done in English.%%
Added line 21:
*** %%red%All documentation should be done in English.%
December 01, 2014, at 07:32 AM by 115.145.179.186 -
Changed line 16 from:
*** The title of the e-mail should be [ICE2015 SA] ''your student ID''.
to:
*** The title of the e-mail should be '''[ICE2015 SA] ''your student ID'''''.
December 01, 2014, at 07:32 AM by 115.145.179.186 -
Added lines 9-20:
** Logistics
*** All files must be in a single directory that are named after your student ID.
**** The directory has two sub-directories, ''docs'' and ''srcs''.
**** Documents are in the directory ''docs''.
**** Source files are in the directory ''srcs''.
*** The student ID directory will be zipped into a single tgz file.
*** You will send the zipped file to ''homework.skku@gmail.com'' by the end of the due date
*** The title of the e-mail should be [ICE2015 SA] ''your student ID''.
** Part VI - Issued on Dec. 1
*** Congratulations! You've made a shell that is able to do basic functions.
*** An excellent engineering should be documented with excellence, too. This is the time to write a technical report and manual pages about your shell.
*** A technical report must well illustrate the internal structure and mechanisms of your shell. The features provided by your shell must be clearly documented in the manual pages, accordingly.
December 01, 2014, at 07:20 AM by 115.145.179.186 -
Changed lines 12-19 from:
#### time
#### cd
#### pwd
*** In order to support job controlling, following commands are also need to be implemented
#### bg
#### fg
#### jobs
*** The job control may require your shell to create a new process group for each command line input
to:
#### ''time''
#### ''cd''
#### ''pwd''
*** In order to support job controlling, following commands are also need to be implemented.
#### ''bg''
#### ''fg''
#### ''jobs''
*** The job control may require your shell to create a new process group for each command line input.
December 01, 2014, at 07:19 AM by 115.145.179.186 -
Changed line 19 from:
*** Job controlling may require your shell to create a new process group for each command line input
to:
*** The job control may require your shell to create a new process group for each command line input
December 01, 2014, at 07:19 AM by 115.145.179.186 -
Added lines 9-19:
** Part V - Issued on Dec. 1
*** Polish your shell with more built-in commands and the job control feature.
*** The following build-in commands should be implemented.
#### time
#### cd
#### pwd
*** In order to support job controlling, following commands are also need to be implemented
#### bg
#### fg
#### jobs
*** Job controlling may require your shell to create a new process group for each command line input
November 28, 2014, at 07:26 AM by 115.145.179.186 -
Added lines 9-12:
** Part IV - Issued on Nov. 28
*** Now, your shell must handle pipelining and redirection of commands as ''bash'' does.
*** Arbitrary number of commands can be pipelined.
*** Redirection of standard input and output as well as standard error must be supported.
November 24, 2014, at 02:13 AM by 115.145.179.186 -
Changed line 10 from:
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command by using the PATH environment.
to:
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command in the directories specified by the PATH variable.
November 24, 2014, at 02:04 AM by 115.145.179.186 -
Deleted lines 7-12:
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
Added lines 9-11:
** Part III - Issued on Nov. 22
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command by using the PATH environment.
*** Your shell supposedly supports the background execution feature. Like ''bash'', if a command followed by ''&'' is given, your shell will execute the command in the background. Naturally, your shell must properly handle SIGCHLD from the children in the background. Never let them become zombies.
Added lines 22-27:
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
November 15, 2014, at 04:22 AM by 115.143.156.26 -
Changed line 10 from:
** ''system2'' parses the argument string and passes the string tokens to ''bash'' with the exec call.
to:
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
November 15, 2014, at 04:21 AM by 115.143.156.26 -
Added lines 8-13:
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' with the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
November 12, 2014, at 02:28 AM by 115.145.179.186 -
Added lines 10-11:
*** Surprisingly, your shell provides an in-house version of the ''ls'' command as an internal command. Exactly the same as the conventional ''ls'', your ''ls'' must show detailed information about files when used with ''-l'' option.
*** No more specifications will be provided. Give your ''ls'' as many features as possible.
November 12, 2014, at 02:21 AM by 115.145.179.186 -
Changed lines 7-9 from:
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
to:
Added line 9:
** Part II - Issued on Nov. 12
Added lines 17-19:
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
November 10, 2014, at 12:18 PM by 115.145.179.186 -
Changed line 9 from:
*** The program should support both octal mode input and symbolic input.
to:
** The program should support both octal mode input and symbolic input.
November 10, 2014, at 12:17 PM by 115.145.179.186 -
Added lines 7-9:
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
*** The program should support both octal mode input and symbolic input.
November 04, 2014, at 05:50 AM by 115.145.179.186 -
Changed lines 12-14 from:
**** echo
**** whoami (returns the current username)
**** export
to:
**** ''echo''
**** ''whoami'' (returns the current username)
**** ''export''
November 04, 2014, at 05:49 AM by 115.145.179.186 -
Changed lines 10-14 from:
###
to:
### The prompt of your shell should be "(username)@(hostname):(cwd)$".
### Implement the following built-in functions.
**** echo
**** whoami (returns the current username)
**** export
November 04, 2014, at 05:40 AM by 115.145.179.186 -
Changed lines 9-10 from:
**# Write the skeleton of your shell.
**#
to:
### Write the skeleton of your shell.
###
November 04, 2014, at 05:40 AM by 115.145.179.186 -
Changed lines 7-10 from:
* %red%Shell Lab%
to:
* %red%Shell Lab%% (mandatory) - Due: Dec. 12
** Part I - Issued on Nov. 4
**# Write the skeleton of your shell.
**#
November 04, 2014, at 05:38 AM by 115.145.179.186 -
Added line 7:
* %red%Shell Lab%
October 30, 2014, at 12:03 PM by 115.143.156.26 -
Changed line 14 from:
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with ''apt-get install ncurses-devel'' command.
to:
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with the ''apt-get install ncurses-devel'' command.
October 30, 2014, at 12:02 PM by 115.143.156.26 -
Changed line 8 from:
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of "top"
to:
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of ''top''.
October 30, 2014, at 12:02 PM by 115.143.156.26 -
Changed lines 13-14 from:
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses" is highly recommended.
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install "ncurses" to your system with "apt-get install ncurses-devel" command.
to:
** The original ''top'' displays the information in good-looking form. This output is generated through the ''ncurses'' library. If you want to make a command line tool with user-friendly interface, learning how to use ''ncurses'' is highly recommended.
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with ''apt-get install ncurses-devel'' command.
October 30, 2014, at 12:01 PM by 115.143.156.26 -
Changed line 14 from:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]].
to:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install "ncurses" to your system with "apt-get install ncurses-devel" command.
October 30, 2014, at 11:59 AM by 115.143.156.26 -
Changed line 8 from:
** ''top'' is a useful tool to monitor system status on the fly. Your mission is to build a simplified version of "top"
to:
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of "top"
October 30, 2014, at 11:59 AM by 115.143.156.26 -
Changed line 14 from:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
to:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]].
October 30, 2014, at 11:58 AM by 115.143.156.26 -
Changed line 7 from:
* Utility programming assignment (advisory) - Issue on Oct. 30
to:
* Utility programming assignment (advisory) - Issued on Oct. 30
October 30, 2014, at 11:57 AM by 115.143.156.26 -
Changed line 14 from:
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
to:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
October 30, 2014, at 11:57 AM by 115.143.156.26 -
Changed line 14 from:
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]]
to:
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
October 30, 2014, at 11:55 AM by 115.143.156.26 -
Changed lines 13-14 from:
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses"
to:
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses" is highly recommended.
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]]
October 30, 2014, at 11:51 AM by 115.143.156.26 -
Changed lines 8-9 from:
** ''top'' is a useful tool to monitor system status on the fly.
to:
** ''top'' is a useful tool to monitor system status on the fly. Your mission is to build a simplified version of "top"
** Your top will periodically show system information that includes the followings:
*** Load average of 1, 5 and 15 minutes.
*** Number of existing processes.
*** Total memory and free memory.
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses"
October 30, 2014, at 11:39 AM by 115.143.156.26 -
Changed lines 8-9 from:
** 'top'
to:
** ''top'' is a useful tool to monitor system status on the fly.
October 30, 2014, at 11:38 AM by 115.143.156.26 -
Changed lines 7-8 from:
*
to:
* Utility programming assignment (advisory) - Issue on Oct. 30
** 'top'
October 30, 2014, at 11:37 AM by 115.143.156.26 -
Added line 7:
*
October 06, 2014, at 02:37 AM by 115.145.179.186 -
Changed lines 8-9 from:
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
**
The backup file should be a tarred and gzipped file.
to:
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory. The backup file should be a tarred and gzipped file.
October 06, 2014, at 02:37 AM by 115.145.179.186 -
Added line 9:
** The backup file should be a tarred and gzipped file.
Changed line 25 from:
"2014-09-22 16:31:20 - 128 threads exist."
to:
"2014-09-22 16:31:20 - 128 threads exist."
October 06, 2014, at 02:36 AM by 115.145.179.186 -
Changed lines 7-8 from:
* System administration homework assignment (advisory) - Issue on Oct. 6
**If you want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
to:
* System administration homework assignment (advisory) - Issued on Oct. 6
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
October 06, 2014, at 02:35 AM by 115.145.179.186 -
Added lines 7-8:
* System administration homework assignment (advisory) - Issue on Oct. 6
**If you want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
October 06, 2014, at 02:32 AM by 115.145.179.186 -
September 22, 2014, at 03:02 PM by 115.143.156.26 -
Added line 6:
* Advisory homework assignments will contribute by 10% to the final grade.
September 22, 2014, at 07:26 AM by 115.145.179.186 -
Changed line 20 from:
"2014-09-22 16:26:20 - 124 threads exist."
to:
"2014-09-22 16:26:20 - 124 threads exist."\\
September 22, 2014, at 07:26 AM by 115.145.179.186 -
Changed line 6 from:
* Shell scripting homework assignment (advisory)
to:
* Shell scripting homework assignment (advisory) - Issued on Sep. 22
Changed lines 13-21 from:
"16 files have the file name (given name) under the directory (starting directory)."
to:
"(number of files) files have the file name (given name) under the directory (starting directory)."
## Logging the number of threads in a system
*** Your shell script periodically record the number of threads in execution.
*** Your shell script demands two command line arguments.
*** The first argument denotes the log file name, and the second argument determines the logging period.
*** The logging period is represented in seconds. For example, if the second argument is 60, the shell script will wake up every 1 min and log the number of existing threads on the log file.
*** The format of the log is as follows:\\
"2014-09-22 16:26:20 - 124 threads exist."
"2014-09-22 16:31:20 - 128 threads exist
."
September 22, 2014, at 07:16 AM by 115.145.179.186 -
Changed lines 8-13 from:
*** ffff
to:
*** Your shell script traverses a directory structure and counts the number of files with the given file name.
*** The file name will be given to the script as its first command line argument.
*** The second argument is the starting directory to traverse. If it is not given, by default, the current working directory will be used as the starting point.
*** The file name can be written in regular expression.
*** The output should be as follows:\\
"16 files have the file name (given name) under the directory (starting directory)."
September 22, 2014, at 07:09 AM by 115.145.179.186 -
Changed lines 7-8 from:
## dd
to:
## Counting the number of files with the given name
*** ffff
September 22, 2014, at 07:08 AM by 115.145.179.186 -
Changed line 7 from:
#* dd
to:
## dd
September 22, 2014, at 07:08 AM by 115.145.179.186 -
Changed line 7 from:
** dd
to:
#* dd
September 22, 2014, at 07:08 AM by 115.145.179.186 -
Changed line 7 from:
*# dd
to:
** dd
September 22, 2014, at 07:08 AM by 115.145.179.186 -
Added lines 6-7:
* Shell scripting homework assignment (advisory)
*# dd
September 22, 2014, at 02:41 AM by 115.145.179.186 -
Changed line 5 from:
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''
to:
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''.
September 22, 2014, at 02:41 AM by 115.145.179.186 -
Changed lines 3-5 from:
!!! [Assignments]
to:
!!! [Assignments]

* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''
August 26, 2014, at 10:04 AM by 115.145.179.186 -
Added lines 1-3:
!! ICE2015: UNIX Programming (Fall 2014)

!!! [Assignments]
August 22, 2014, at 01:44 AM by 115.145.179.186 -
Deleted lines 0-12:
!! ICE2015: UNIX Programming (Fall 2014)

!!! [Resources]

* Installation and preparation
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]] - Official Linux distribution for our class
** [[https://www.virtualbox.org|Oracle Virtual Box]] - A free open-source multiplatform virtualization product

* Development Tools
** Vim
*** [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
*** [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
*** [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
August 22, 2014, at 01:44 AM by 115.145.179.186 -
Changed lines 10-12 from:
* [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
* [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
* [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
to:
** Vim
***
[[http://www.openvim.com/tutorial.html|Vim Tutorial]]
*** [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
*** [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
August 22, 2014, at 01:44 AM by 115.145.179.186 -
Changed lines 6-7 from:
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
** [[https://www.virtualbox.org|Oracle Virtual Box]] (Free Open-Source Multiplatform Virtualization Product)
to:
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]] - Official Linux distribution for our class
** [[https://www.virtualbox.org|Oracle Virtual Box]] - A free open-source multiplatform virtualization product

* Development Tools
* [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
* [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
* [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
August 22, 2014, at 01:35 AM by 115.145.179.186 -
Changed lines 6-7 from:
* [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
to:
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
** [[https://www.virtualbox.org|Oracle Virtual Box]] (Free Open-Source Multiplatform Virtualization Product)
August 22, 2014, at 01:33 AM by 115.145.179.186 -
Added line 5:
* Installation and preparation
August 22, 2014, at 01:33 AM by 115.145.179.186 -
Added lines 1-5:
!! ICE2015: UNIX Programming (Fall 2014)

!!! [Resources]

* [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
July 22, 2014, at 01:44 PM by 115.145.179.186 -