Saint Louis University |
Computer Science 1300
|
Computer Science Department |
In order to facilitate the sharing/submitting of files between students and the instructor, or the sharing of files for students working together, we will be replying on a tool known as git for maintaining shared repositories. git is the industry-standard tool for maintaining software projects, and in addition to allowing for sharing of files within a group, it provides version control, in that it keeps all previously committed versions of the files and let's you see the old versions (and rollback progress, if desired).
For this course, we will rely on only the most basic features of git (and will save more advanced features for later courses). We will also be relying primarily on a web-based interface known as gitlab which allows you to browse, create, and edit files from your browser. You should be able to rely on this web-based interface throughout the semester (although we are happy to explain how to install and use git as a more advanced command-line tool for those interested.)
Once logged in, you should be able to view your repositories from your personal dashboard at the website http://git.cs.slu.edu/dashboard/projects. Each student will have an individual repository (known as a Project on the website) that will be based on the course and your username. We will rely on that for the entire semester. In cases where we allow students to work in groups on some coursework, we will create an additional shared repository for the group (based on the concatenation of usernames).
Each repository will contain the following:
A distinct folder (e.g. program01) for each assignment being completed by the student or group of students. This is where work must be submitted in order for the instructor to have access.
A grades folder in which the instructor will provide feedback/grades for each assignment and an individual's summary grade report.
There are two ways that you can submit a new file.
After navigating to the desired folder, you should find a
plus-sign icon that leads to a pull-down menu with several options.
Selecting New file will bring up an editor that would allow you to paste the contents of the file. Make sure to give an appropriate filename in the field above the file's contents. You can also add a meaningful Commit Message below the file's contents if you wish. When you are ready to submit, click the green "Commit changes" button.
Selecting Upload file will give you a dialog to drag/upload an existing file on your own computer. The filename in the repo will be the name of the file on your own computer (so name it appropriately before uploading it). Again, you have option of customizing the commit message, and once you are ready click the green "Upload file" button.
If you have already submitted a file and wish to change its contents,
you may do this by selecting the file and then looking for either the
"Edit" button to edit its contents in the editor, or the "Replace"
button to upload a new version from your computer.
An additional feature that we might use (optionally), is gitlab's issue tracker. In general, the issue tracker provides a way for a project team to have discussion on various threads, and even to "close" threads once they are resolved (while still keeping those discussions available). You can find the issue tracker through the sidebar of icons that appears by default on the left edge of the website.
Since the instructor is a contributor to each repository, we can use the issue tracker as a way to have back-and-forth discussions between the instructor and the student (or group of students for team projects). The advantage of this (rather than traditional email questions) is that the discussions can be organized by thread and are archived alongside the rest of the course materials. For group projects, students might also use the issue tracker to communicate with each other.
While you are certainly welcome to send email directly to the instructor with any questions you have about the course, you are encouraged to consider use of the issue tracker as a means for communiction.
Gitlab also allows you to customize notification settings and when the system will send you automated email. With the most aggresive notification ("Watch") you receive notifcations for any activity on the repo. This means that you'd get an email when the instructor posts new materials, when the instructor posts a grade report, or even when the instructor posts a response to a thread on the issue tracker. There are ways to tone down the amount of emails generated as well.