Skip to content
Skip to breadcrumbs
Skip to header menu
Skip to action menu
Skip to quick search
Spaces
Quick Search
Help
Online Help
Keyboard Shortcuts
Feed Builder
What’s new
Available Gadgets
Log In
Comp 311 - Functional Programming
Pages
Course Offerings
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
image-effects
image-attributes
search
attachments
weblink
advanced
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
Colour picker
More colours
Formatting
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Task list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
Task List
Insert Macro
User Mention
Info
JIRA Issue
Status
Gallery
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
Hide the toolbars
Launch editor full screen
<p> </p><p><img class="editor-inline-macro" src="/confluence/plugins/servlet/confluence/placeholder/macro?definition=e3RvY30&locale=en_GB&version=2" data-macro-name="toc"></p><h1 style="text-align: center;"><strong>Comp 311 Homework Submission Guide</strong></h1><p>We will use Rice's Subversion (SVN) repositories for all homework submissions in this course.</p><p>All students (regardless of enrollment in Comp311 vs Comp544) must submit their homework to the same repository <a href="https://svn.rice.edu/r/comp311/turnin/F20/">https://svn.rice.edu/r/comp311/turnin/F20/</a>. There is a folder in this repository for each student enrolled in Comp 311 or Comp 544.</p><p>In past years, Rice IT supported a <em>turnin</em> command on its Clear cluster for uploading a program submission to the repository. The command was supported by a web interface so that you could perform the same operation remotely. This command is now available only on machines in the CLEAR cluster. The web interface no longer exists. For this reason, we strongly recommend that you use regular SVN commands to submit assignments from your personal machines to the Rice SVN repository. Hence, you will need to learn how to use an SVN client to directly interact with the repository, which is not difficult. If you prefer using Git, you can also try using <a href="https://git-scm.com/book/en/v1/Git-and-Other-Systems-Git-and-Subversion">the Subversion client built into Git (git svn)</a>. The old t<em>urnin</em> command simply committed the contents of a directory (corresponding to a particular assignment) specified by an argument to the command. When you develop a program using the same directory structure (which we will stipulate),<em> all</em> of your commits to that directory are effectively submissions of your program. Of course, they aren't bona fide solutions until you finish your assignment. We will not inspect them until after the assignment is due.</p><p>Note: if you need to use a slip day, please send an email message to <a href="mailto:comp311@rice.edu">comp311@rice.edu</a> stating that fact before the assignment is due, so we know not to grade your program prematurely.</p><h1>Option A: Using SVN commands to access Rice SVN from personal machines</h1><h2>Submitting your Homework from your Linux or Mac machine (Using SVN commands)</h2><ol><li><p> One time setup on your machine</p><ol><li>Make a new empty directory comp311 in your home directory and switch to that directory:<br />mkdir comp311 <br />cd comp311<br /><br /></li><li>Use Subversion to check out your submission directory:<br /><strong><span style="color: rgb(0,0,0);">svn checkout </span><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><a href="https://svn.rice.edu/r/comp311/turnin/">https://svn.rice.edu/r/comp311/turnin/</a><em>F20</em>/</span><em><span style="color: rgb(0,0,0);">«your-net-id»</span><br /></em></span></strong><span style="color: rgb(0,0,0);">E.g., for Fall 2020 and the NetID "xyz99": </span><strong><span style="color: rgb(0,51,102);"><em><br /><strong><a href="https://svn.rice.edu/r/comp311/turnin/F17/xyz99">https://svn.rice.edu/r/comp311/turnin/<em>F20</em>/<em>xyz99</em></a></strong></em></span></strong><br /><br /></li></ol></li><li>To check the status of your current directory, run :<br /><strong>svn status</strong><em><strong> </strong></em><br />This should show all your files that are added(A) / not added(?) / deleted(D) / modified (M) to the Subversion repository.<br /><br /></li><li>To add folders/ files, use : <br /><strong>svn add </strong>«<strong>file_name</strong>» (without angle brackets)<br /><strong>svn add </strong>«<strong>folder_name</strong>» (without angle brackets) – recursively adds all files in it<br />This should show all files/ folders that have been added to the Repository (this is still a local copy)<ol><li>To delete folders/ files, use : <br /><strong>svn del </strong>«<strong>file_name</strong>» (without angle brackets)<br /><strong>svn del </strong>«<strong>folder_name</strong>» (without angle brackets) – recursively adds all files in it<br />This should show all files/ folders that have been deleted to the Repository (this is still a local copy)<br /><br /></li></ol></li><li>To commit your files, use: <br /><strong>svn ci -m "Some relevant message here"</strong><br />This should show all the files that have been added/ modified/ deleted ... followed by<br />-- Transmitting file data.<br />-- Committed revision «rev. no»<br /><br /></li><li>And you have successfully added your folder/ files to the SVN repository. Visit svn.rice.edu/r/comp311/turnin/<netID> in your browser to confirm that all of your files (typically only one per HW assignment) are intact.</li></ol><h2>Submitting your homework from your Windows machine</h2><p>If you are using Windows 10, the course staff recommends that you either:</p><ol><li>S<a href="http://wsl-guide.org/en/latest/">et up the Windows Subsystem for Linux (WSL)</a> and then follow the steps above for using the SVN command on Linux, or </li><li>Use a standalone visual SVN client like <a href="https://tortoisesvn.net/">TortoiseSVN</a>, which augments the menus embedded Windows File Explorer with SVN commands akin to those supported in Linux using the command line. </li></ol><p>I am following the second approach which is working well. I highly recommend it. I also have WSL installed on my Windows 10 laptop but I strongly prefer running the native Windows 10 edition of Racket on my machine than the Linux edition of Racket inside WSL. If you install WSL, there are two choices:</p><ul><li>WSL 1.0, the original version which embeds the Linux file system inside the Windows 10 file system and implements the Linux kernel as a Windows 10 application built on top of Windows services. </li><li>WSL 2.0, a new implementation based on OS virtualization (as done by VMWare and VirtualBox). </li></ul><p>In my experience, WSL 2.0 works better than WSL 1.0. Both are available for download from Microsoft (who developed them) and there are detailed instructions on the web on how to install either system. Regardless of whether you choose WSL 1.0 or WSL 2.0, you can select the particular variety of Linux that you want to install. I strongly recommend installing the latest version of the long-term release of Ubuntu (20.04). I have WSL 2.0 Unbuntu 20.04 installed on my laptop. The principal problem with WSL 1.0 is that the final name space in Windows is much more restrictive that it is in Linux and many apps that you try to install on WSL 1.0 blow up because they use illegal fie names. The principal hassle with both WSL 1.0 and 2.0 is that GUI applications are painful to set up because they require some control over the windowing system on Windows 10. The hack that I use (again consult the web for various ways to solve the GUI issue) requires eliminating firewall protection for the base Windows 10 system, which I dislike. In contrast, the conventional command line interface simply relies on Windows 10 terminal applications for program interaction, so security on your laptop is not compromised. Microsoft is feverishly working on providing better support for GUI applications in WSL 2.0 so I expect a much better solution to this problem within a year. For now, WSL 2.0 is an interesting curiosity and works well for Linux apps without a GUI interface, but how many modern apps do not have a GUI?</p><p>Note: in the latter part of the course when programming in Java, you may want to use SVN integration supported by your IDE if it is available. DrJava does not support IDE integration, but IntelliJ IDEA and Eclipse do.</p><h1>Option B: Using the Rice SVN Repository from machines in the CLEAR cluster</h1><h2>One time Setup in Clear</h2><ol><li>Login to CLEAR:<br /><strong>ssh <em><your netid></em>@ssh.clear.rice.edu</strong><br /><em><strong><your password><br /></strong></em><em><strong><br /></strong></em></li><li>Make a new empty directory <strong>comp311</strong> in your home directory and switch to that directory:<br /><strong>mkdir comp311 </strong><br /><strong>cd comp311<br /> </strong></li><li>Use Subversion to check out your submission directory:<br /><strong><span style="color: rgb(0,0,0);">svn checkout </span><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);">https://svn.rice.edu/r/comp311/turnin/<em>«current-semester»</em>/</span><em><span style="color: rgb(0,0,0);">«your-net-id»</span><br /></em></span></strong><span style="color: rgb(0,0,0);">E.g., for Fall 2017 and the NetID "xyz99":</span><strong><span style="color: rgb(0,51,102);"><em><br /><strong><span style="color: rgb(0,51,102);"><a href="https://svn.rice.edu/r/comp311/turnin/F17/xyz99"><span>https://svn.rice.edu/r/comp311/turnin/</span><em>F17</em>/<em>xyz99</em></a></span></strong></em></span></strong><span style="color: rgb(0,51,102);"><strong><em><br /></em></strong></span><strong><span style="color: rgb(0,51,102);"><em><br /></em></span></strong></li><li>You might be asked if you wish to store your password unencrypted. Always say <strong>no</strong> when asked this.</li><li><span>Now you should have a folder named <strong><em>«your netid»</em> </strong>in the <strong>comp311</strong> directory you created.</span></li></ol><h2>Submitting your Homework from a machine in the Clear Network</h2><ol><li>Make sure you are in your <strong>turnin</strong> directory.<br /><strong>cd ~/comp311/<em><your netid></em><br /> </strong></li><li>To check the status of your current directory, run :<br /><strong>svn status</strong><em><strong> </strong></em><em><strong><br /></strong></em>This should show all your files that are added(A) / not added(?) / deleted(D) / modified (M) to the Subversion repository.<br /><br /></li><li>To add folders/ files, use : <br /><strong>svn add </strong>«<strong>file_name</strong>» (without angle brackets)<br /><strong>svn add </strong>«<strong>folder_name</strong>» (without angle brackets) – recursively adds all files in it<br />This should show all files/ folders that have been added to the Repository (this is still a local copy)<br /><br /><ol><li>To delete folders/ files, use : <br /><strong>svn del </strong>«<strong>file_name</strong>» (without angle brackets)<br /><strong>svn del </strong>«<strong>folder_name</strong>» (without angle brackets) – recursively adds all files in it<br />This should show all files/ folders that have been deleted to the Repository (this is still a local copy)<br /><br /></li></ol></li><li>To commit your files, use: <br /><strong>svn ci -m "Some relevant message here"</strong><br />This should show all the files that have been added/ modified/ deleted ... followed by<br />-- Transmitting file data.<br />-- Committed revision «rev. no»<br /><br /></li><li>And you have successfully added your folder/ files to the SVN repository. Inspect the Rice SVN repository <strong><span style="color: rgb(0,51,102);"><span style="color: rgb(0,0,0);"><a href="https://svn.rice.edu/r/comp311/turnin/">https://svn.rice.edu/r/comp311/turnin/</a><em>«current-semester»</em>/</span><em><span style="color: rgb(0,0,0);">«your-net-id») </span></em></span></strong>using your browser ( to confirm that all the file structure is intact<br /><br /></li></ol>
If you are unable to use this CAPTCHA please
contact your administrator
for assistance.
Attachments
Labels
Location
Edit
Preview
Save
Cancel
Next hint