CSE 101
Programming Assignments


Follow these instructions to submit your programming projects in this class.
  1. Create an account on GitLab @ UCSC by following the instructions at https://gitlab.soe.ucsc.edu/static/docs/gitlab-ucsc/ .
  2. Read the submission instructions at https://gitlab.soe.ucsc.edu/static/docs/gitlab-ucsc/using_gitlab.html, especially how to use the Git commands clone, add, commit and push.  If you have never used Git before,  here is a very gentle introduction on YouTube, and some helpful documentation pages here and here which introduce command line tools for Git.  There is also a GUI available for Git that would allow you to use graphical tools.  All of these options require you to install some software on your computing device.  (Unless you are developing directly on the Unix Timeshare, which already has Git installed.)  Note also that these tutorials describe interaction with the cloud services GitLab.com or GitHub.com, whereas you will submit your code the UCSC Git server at gitlab.soe.ucsc.edu/gitlab/.   Our class directory on that server is cse101/spring-20.  (Unfortunately I included a dash "-" when I created the subgroup of cse101, which departs from the standard naming convention.  With that exception only, your commands should follow the examples given at https://gitlab.soe.ucsc.edu/static/docs/gitlab-ucsc/using_gitlab.html).
  3. Create directories in your local repository called pa1, pa2, ..., pa8.  Place your source code files for each project in the appropriate directory.  Other directories in your repo will be ignored during grading.
  4. Submit the source code files for each programming project (i.e. commit & push) often.  Every programming assignment comes with a bulit in 12-hour grace period, i.e. if an assignment is due at 10:00pm, you will have until 10:00am the next morning to complete the assignment.  If I extend an assignment, the 12-hour grace period is extended by the same amount.  All times are given  in local California time (Pacific Daylight Time).  If you are in another time zone, you can easily convert to and from PDT by going to: https://www.worldtimebuddy.com/.  We will grade the latest commit and push made before the end of the grace period.  Later commits will not be considered for grading
  5. If you have trouble with any of these instructions, please see a TA for help.

pa1:  Due Thursday April 9, 10:00pm        Extended one last time to Saturday April 11,  10:00pm 
pa2:  Due Thursday April 16, 10:00pm      Extended one more time to Monday April 20, 10:00pm   (last one)
pa3:  Due Friday April 24, 10:00pm           Extended again to Tuesday April 28, 10:00pm         
pa4:  Due Tuesday May 5, 10:00pm           Extended yet again to Friday May 8, 10:00pm  (last one) 
pa5:  Due Thursday May 14, 10:00pm       Extended yet again to Sunday May 17, 10:00pm (last one)      
pa6:  Due Friday May 22, 10:00pm            Extended yet again to Tuesday May 26, 10:00pm (absolutely last one)          
pa7:  Due Wednesday, June 3, 10:00pm     Extended again to Friday, June 5, 10:00pm (absolutely last one)       
pa8:  Due Wednesday, June 10, 10:00pm 
         Notes on pa8:
         This is an optional re-submission of pa2.   Any submission to pa8 will replace your score for pa2,
         even if the new score is lower.  Use the grading scripts (check Hou-I Lin's Piazza posts) to make
         sure your new score is not lower than the original.  There will be no grace period for pa8, and no
         extensions of any kind.



UCSC Computer Accounts
All programming assignments in this course will be tested and evaluated on the UCSC Unix Timeshare, unix.ucsc.edu. The host unix.ucsc.edu provides a Linux command line environment and home directory access to multiple concurrent users.  All students with an active CruzID account can access this system using their CruzID-Blue password.  To log on to unix.ucsc.edu from your personal computing device, you must have an internet connection and install the appropriate software, as outlined below.
 

Terminal access for Windows users:  
Download the PuTTY client and run the program putty.exe.  Set Host Name to unix.ucsc.edu, Port Number to 22 and Connection Type to SSH.  Click Open and respond with your CruzID and Blue password.

Terminal access for Mac users:  
Open Terminal Server in your Utilities Folder.  In the terminal window type:  ssh  user@unix.ucsc.edu, where user is your CruzID, then respond with your Blue password.

Secure File Transfer for all users:
Download and install FileZilla for your platform.  (Warning to Windows users:  do not download the installer from here.  Make sure you use the Windows installer found here.) Set Host to unix.ucsc.edu, Username to your CruzID, Password to your Blue password and Port to 22, then click Quickconnect.  The left pane shows your local file system, and the right pane shows the remote file system on unix.ucsc.edu. Simply drag and drop files from one pane to the other to transfer files.

Code Editors:  
Notepad++ (Windows only),  BBedit (Mac only), SublimeText (all platforms). There are many others.


If you have any problems installing these tools, or logging on to unix.ucsc.edu you should get help from a TA or course tutor.  You may develop your programming projects on any platform, but remember that they will be tested and evaluated for a grade on the timeshare.  Therefore, it is imperative that you thoroughly test all programs in this environment before submission.  The host unix.ic.ucsc.edu is administered by Information Technology Services.  Contact ITS Support Services for assistance with your account.



If you find any errors, please report them to: ptantalo@soe.ucsc.edu