List of commits:
Subject Hash Author Date (UTC)
Adding quiz #2 98e0ae5b8ce766524f60c91adb1040235e1bbf31 aubert@math.cnrs.fr 2020-10-02 19:00:15
Added exam 1 e2f62ae4bf26fcc4b86e8665060ccf3918e7abeb aubert@math.cnrs.fr 2020-09-24 12:51:36
worked on solution to first exam. b13ad99dd895f124df1b642fd990071fc09db294 aubert@math.cnrs.fr 2020-09-23 17:44:01
Added solution to first problem. 0948cee47ed78dc115fd69c7bcf96a312dd3162f aubert@math.cnrs.fr 2020-09-18 21:43:00
Added solution to problem 2 of Exam #1. 7ad20b3c0025a4de3fa00729de570c6fe9176773 aubert@math.cnrs.fr 2020-09-18 21:34:19
Added solution to project 1. de427d78745593ab53dc70e7129b67fee1d4489c aubert@math.cnrs.fr 2020-09-10 19:04:45
Added example for MAX and NULL values. b82a496a5ffbcecaf2c5851f18d1b08ce8732623 aubert@math.cnrs.fr 2020-09-10 13:14:13
Changed SQL code formatting. 6c3cad5a2545f46ab113f7df7a83457857d82ed8 aubert@math.cnrs.fr 2020-09-09 17:04:55
Cleaned code. 5bdb4faed3a83b81257734f1e1aced2890783f04 aubert@math.cnrs.fr 2020-09-03 21:35:41
Added the first project. 564a02887933f2395bc40d7d8a10833f657659fd aubert@math.cnrs.fr 2020-08-28 22:34:08
Week 2 edits, added quiz #1, couple of fixes, replaced single quote with double quotes. 3c9942731678900122088356db3a2cbabd99b9be aubert@math.cnrs.fr 2020-08-27 19:00:13
Added ressource for makefile. 7696c44bca707646530a7dbb71bf2e05badaa306 aubert@math.cnrs.fr 2020-08-03 16:00:23
Crystal's final edits. 714e3030423a836c4ba07890f9aa5e45f58ad15a aubert@math.cnrs.fr 2020-05-21 17:43:26
Converted an image into a figure (Movie example). c55e61ed5d11631e908d99b14ef10a0a0247bda0 aubert@math.cnrs.fr 2020-05-20 20:58:41
Re-formatted SQL code. 915442a1ba4d8baa120343f98de5ee39d4ac45f6 aubert@math.cnrs.fr 2020-05-18 15:52:06
Fixed Known_bugs 5900c572928ec3b8c98c82fe4e95ebbe9aeee6c3 aubert@math.cnrs.fr 2020-05-15 18:19:36
Fixed contrib and enriched example. 04864c0ee2d4fa77b4e681ebf8049c4642bf1e67 aubert@math.cnrs.fr 2020-05-15 18:17:22
Fixed formatting mistake. 948a87c75b5d9aa8317feb5a0859d4efc23e95d6 aubert@math.cnrs.fr 2020-05-15 17:58:40
Cleaned SQL code. 4d39ebc5c1a3566ef4d3fa7afc8b2868f827c108 aubert@math.cnrs.fr 2020-05-15 17:41:00
Fixing few mistakes in code. b7eb7a0e476f8e0c3c6d3e651fd80827a03dd127 aubert@math.cnrs.fr 2020-05-15 17:38:32
Commit 98e0ae5b8ce766524f60c91adb1040235e1bbf31 - Adding quiz #2
Author: aubert@math.cnrs.fr
Author date (UTC): 2020-10-02 19:00
Committer name: aubert@math.cnrs.fr
Committer date (UTC): 2020-10-02 19:00
Parent(s): e2f62ae4bf26fcc4b86e8665060ccf3918e7abeb
Signer:
Signing key:
Signing status: N
Tree: f252e809bf5915e78f507a2e89b0a733d08f72d7
File Lines added Lines deleted
CONTRIB.md 3 3
KNOWN_BUGS.md 2 2
README.md 3 3
notes/bib/entry.bib 1 1
notes/fig/er/phone.tex 10 0
notes/fig/er/ticket_opened_by_customer.tex 10 0
notes/fig/er/videogame.tex 14 0
notes/lectures_notes.md 51 6
notes/style/style.css 2 2
File CONTRIB.md changed (mode: 100644) (index eaab913..7a3883b)
... ... If you are not familiar with the open source eco-system and how you can help pro
9 9
10 10 # About the Project {#about} # About the Project {#about}
11 11
12 You can find a brief presentation of those notes [on their website](http://spots.augusta.edu/caubert/db/ln/).
13 They are the main source of exercises, problems and notes for a [Database class](http://spots.augusta.edu/caubert/db/) taught at [Augusta University](https://www.augusta.edu/), and are updated every time the class is taught.
12 You can find a brief presentation of those notes [on their website](https://spots.augusta.edu/caubert/db/ln/).
13 They are the main source of exercises, problems and notes for a [Database class](https://spots.augusta.edu/caubert/db/) taught at [Augusta University](https://www.augusta.edu/), and are updated every time the class is taught.
14 14 Improving the content of those notes by your suggestions, remarks and questions _will_ benefit students and instructors, so don't be shy! Improving the content of those notes by your suggestions, remarks and questions _will_ benefit students and instructors, so don't be shy!
15 15
16 16 # What to Contribute {#what} # What to Contribute {#what}
 
... ... If you'd like to contribute but are not sure where to start, you can refer to [`
26 26
27 27 You can You can
28 28
29 - …contact or visit the main author, cf. <http://spots.augusta.edu/caubert/#contact>.
29 - …contact or visit the main author, cf. <https://spots.augusta.edu/caubert/#contact>.
30 30 - …submit bug reports at <https://rocketgit.com/user/caubert/CSCI_3410/bug> (requires an account). - …submit bug reports at <https://rocketgit.com/user/caubert/CSCI_3410/bug> (requires an account).
31 31 - …submit a pull request, which is the way detailed below. - …submit a pull request, which is the way detailed below.
32 32
File KNOWN_BUGS.md changed (mode: 100644) (index 512ac74..25b8e45)
... ... MAKEFILE
63 63 HTML HTML
64 64 ---- ----
65 65
66 - Make the site more accessible. Cf. for instance <https://wave.webaim.org/report#/http://spots.augusta.edu/caubert/db/ln/CSCI_3410_lecture_notes.html>
66 - Make the site more accessible. Cf. for instance <https://wave.webaim.org/report#/https://spots.augusta.edu/caubert/db/ln/CSCI_3410_lecture_notes.html>
67 67 - Make a more "mobile-friendly" version. Defer loading of image? - Make a more "mobile-friendly" version. Defer loading of image?
68 68 - Make all the images clickable to open (in pop-ups?) better versions of them, or make the svg zoomable. Cf. (best one?) <https://github.com/ariutta/svg-pan-zoom> or <https://bl.ocks.org/mbostock/db6b4335bf1662b413e7968910104f0f> or <http://www.petercollingridge.co.uk/tutorials/svg/interactive/pan-and-zoom/> or even <https://stackoverflow.com/questions/25866342/zoomable-inline-svg> - Make all the images clickable to open (in pop-ups?) better versions of them, or make the svg zoomable. Cf. (best one?) <https://github.com/ariutta/svg-pan-zoom> or <https://bl.ocks.org/mbostock/db6b4335bf1662b413e7968910104f0f> or <http://www.petercollingridge.co.uk/tutorials/svg/interactive/pan-and-zoom/> or even <https://stackoverflow.com/questions/25866342/zoomable-inline-svg>
69 69 - Add alt text - Add alt text
 
... ... PRICE(Stock\_number (PK), Car\_Vin (FK to CAR.VIN), Price, Margin)
100 100 \ \
101 101
102 102 ``` ```
103 the part between `![` and `](fig/rel_mod/car_01)` is a description of the image you can see at <http://spots.augusta.edu/caubert/db/ln/CSCI_3410_lecture_notes.html#example>.
103 the part between `![` and `](fig/rel_mod/car_01)` is a description of the image you can see at <https://spots.augusta.edu/caubert/db/ln/CSCI_3410_lecture_notes.html#example>.
104 104
105 105 It's not ideal, but it gives to someone without images, a good internet connection, etc., the possibility to still get the content. It's not ideal, but it gives to someone without images, a good internet connection, etc., the possibility to still get the content.
106 106 As of now, the lecture notes do not have a good "notation" to describe As of now, the lecture notes do not have a good "notation" to describe
File README.md changed (mode: 100644) (index 2a168c9..a7e490e)
... ... geometry: margin=1in
10 10 --- ---
11 11
12 12 Here are the lecture notes, codes, exercises, problems and references for a lecture on database taught at [Augusta University](https://www.augusta.edu/) by C. Aubert. Here are the lecture notes, codes, exercises, problems and references for a lecture on database taught at [Augusta University](https://www.augusta.edu/) by C. Aubert.
13 The webpage for this project is at <http://spots.augusta.edu/caubert/db/ln/>, and it contains a compiled version of the notes.
13 The webpage for this project is at <https://spots.augusta.edu/caubert/db/ln/>, and it contains a compiled version of the notes.
14 14
15 15 # Getting Started # Getting Started
16 16
 
... ... The Makefile in the `notes` folder is commented.
61 61 The simplest way to contribute is to report typos, errors or misleading statements. The simplest way to contribute is to report typos, errors or misleading statements.
62 62 You will find some instructions at [`CONTRIB.md`](CONTRIB.html) if you'd like, but you can… You will find some instructions at [`CONTRIB.md`](CONTRIB.html) if you'd like, but you can…
63 63
64 - …contact or visit the author, cf. <http://spots.augusta.edu/caubert/#contact>.
64 - …contact or visit the author, cf. <https://spots.augusta.edu/caubert/#contact>.
65 65 - …submit a pull request, cf. [`CONTRIB.md`](CONTRIB.html) for more information. - …submit a pull request, cf. [`CONTRIB.md`](CONTRIB.html) for more information.
66 66 - …submit bug reports at <https://rocketgit.com/user/caubert/CSCI_3410/bug> (requires an account). - …submit bug reports at <https://rocketgit.com/user/caubert/CSCI_3410/bug> (requires an account).
67 67
68 68 # Authors and Contributors # Authors and Contributors
69 69
70 - **Clément Aubert** - *Initial work* - <http://spots.augusta.edu/caubert/>
70 - **Clément Aubert** - *Initial work* - <https://spots.augusta.edu/caubert/>
71 71 - **Crystal Anderson** - *Revisions* - **Crystal Anderson** - *Revisions*
72 72 - **Bobby Mcmanus**, **Minh Nguyen** and **Poonam Veeral** - *Installation guide and quality control* - **Bobby Mcmanus**, **Minh Nguyen** and **Poonam Veeral** - *Installation guide and quality control*
73 73
File notes/bib/entry.bib changed (mode: 100644) (index 05badf0..df4397e)
1 1 @report{AubertCSCI3410-DatabaseSystems, @report{AubertCSCI3410-DatabaseSystems,
2 2 author={Aubert, Clément}, author={Aubert, Clément},
3 3 title={CSCI 3410 - Database Systems}, title={CSCI 3410 - Database Systems},
4 url={http://spots.augusta.edu/caubert/db/ln/},
4 url={https://spots.augusta.edu/caubert/db/ln/},
5 5 urldate={2019-11-03}, urldate={2019-11-03},
6 6 year={2019}, year={2019},
7 7 institution={{School of Computer and Cyber Sciences, Augusta University}}, institution={{School of Computer and Cyber Sciences, Augusta University}},
File notes/fig/er/phone.tex added (mode: 100644) (index 0000000..6129d72)
1 \documentclass[border=20pt]{standalone}
2 \input{template.def}
3
4 \begin{tikzpicture}[node distance=7em]
5 \node[multi attribute] (phone) {Phone};
6 \node[attribute] [above left of=phone] {Number} edge (phone);
7 \node[attribute] [above right of=phone] {Description} edge (phone);
8 \end{tikzpicture}
9
10 \end{document}
File notes/fig/er/ticket_opened_by_customer.tex added (mode: 100644) (index 0000000..76830b7)
1 \documentclass[border=20pt]{standalone}
2 \input{template.def}
3
4 \begin{tikzpicture}[node distance=5em]
5 \node [entity] (TICKET) {TICKET};
6 \node [relationship] (opens) [right=of TICKET] {OPENED\_BY} edge[total] node[above]{$\cN$} (TICKET);
7 \node [entity] (USER) [right = of opens] {USER} edge node[above]{$1$} (opens);
8 \end{tikzpicture}
9
10 \end{document}
File notes/fig/er/videogame.tex added (mode: 100644) (index 0000000..e509ad5)
1 \documentclass[border=20pt]{standalone}
2 \input{template.def}
3
4 \begin{tikzpicture}[node distance=5em]
5 \node [entity] (VIDEOGAME) {VIDEO\_GAME};
6 \node [relationship] (ISTHESEQUELOF) [above=of VIDEOGAME] {IS\_THE\_SEQUEL\_OF};
7 \draw (ISTHESEQUELOF.east) -- node[right]{Prequel} node[right, pos = 0.8]{$\cN$} (VIDEOGAME);
8 \draw (ISTHESEQUELOF.west) -- node[left]{Sequel} node[left, pos = 0.8]{$\cM$}(VIDEOGAME);
9 \node [multi attribute] [right= .5cm of VIDEOGAME] {Platform} edge (VIDEOGAME);
10 \node [attribute] [left= .5cm of VIDEOGAME] {Name} edge (VIDEOGAME);
11 \node [attribute] [below= .5cm of VIDEOGAME] {Release\_Date} edge (VIDEOGAME);
12 \end{tikzpicture}
13
14 \end{document}
File notes/lectures_notes.md changed (mode: 100644) (index 3e5269b..4bae88a)
... ... Finally, the comments `-- start snippet something` and `-- end snippet something
65 65
66 66 <!--: the colors and the ↪ `↪` ↪ ${\tiny\hookrightarrow}$, \tiny\ensuremath{\hookrightarrow} symbols are here to ease the reading, but you can ignore them safely.--> <!--: the colors and the ↪ `↪` ↪ ${\tiny\hookrightarrow}$, \tiny\ensuremath{\hookrightarrow} symbols are here to ease the reading, but you can ignore them safely.-->
67 67
68 To clone this source of those notes and have a local copy of it, please refer to the instructions at <http://spots.augusta.edu/caubert/db/ln/README.html>.
68 To clone this source of those notes and have a local copy of it, please refer to the instructions at <https://spots.augusta.edu/caubert/db/ln/README.html>.
69 69 Instructions on how to compile those notes and how to contribute are linked from this document. Instructions on how to compile those notes and how to contribute are linked from this document.
70 70
71 71 On top of the notes, you will find in this document: On top of the notes, you will find in this document:
 
... ... On top of the notes, you will find in this document:
74 74 - and for each chapter, - and for each chapter,
75 75 - A list of additional resources, - A list of additional resources,
76 76 - A list of short exercises, - A list of short exercises,
77 - Solution to those exercises, - A list of problem, - Sometimes, solution to some of those problems. Any feedback is greatly appreciated. Please refer to <http://spots.augusta.edu/caubert/db/ln/README.html#contributing> for how to contribute to those notes. The syllabus is at <http://spots.augusta.edu/caubert/db/>, and the webpage for this notes is at <http://spots.augusta.edu/caubert/db/ln/>. Please, refer to those notes using this entry [@AubertCSCI3410-DatabaseSystems]: ```{.bibtex include=bib/entry.bib} ```
77 - Solution to those exercises, - A list of problem, - Sometimes, solution to some of those problems. Any feedback is greatly appreciated. Please refer to <https://spots.augusta.edu/caubert/db/ln/README.html#contributing> for how to contribute to those notes. The syllabus is at <https://spots.augusta.edu/caubert/db/>, and the webpage for this notes is at <https://spots.augusta.edu/caubert/db/ln/>. Please, refer to those notes using this entry [@AubertCSCI3410-DatabaseSystems]:
78
79 ```{.bibtex include=bib/entry.bib}
80 ```
81
78 82 ## Planned Schedule {-} ## Planned Schedule {-}
79 83
80 84 A typical (meeting twice a week, ±17 weeks, ±30 classes) semester is divided as follows: A typical (meeting twice a week, ±17 weeks, ±30 classes) semester is divided as follows:
81 85
82 - Lecture 1: Presentation and [Syllabus](http://spots.augusta.edu/caubert/db/)
86 - Lecture 1: Presentation and [Syllabus](https://spots.augusta.edu/caubert/db/)
83 87 - Lecture 2: [Introduction](#introduction) - Lecture 2: [Introduction](#introduction)
84 88 - Lecture 3--5: [The Relational Model](#the-relational-model) - Lecture 3--5: [The Relational Model](#the-relational-model)
85 89 - Lecture 6--9: [The SQL Programming Language](#the-sql-programming-language) - Lecture 6--9: [The SQL Programming Language](#the-sql-programming-language)
 
... ... Exercise +.#
6113 6117
6114 6118 Exercise +.# Exercise +.#
6115 6119
6120 : What would be the benefit of having a composite attribute "Phone" made of two attributes (Number and Description) being multi-valued? Answer this question, and draw the resulting attribute.
6121
6122 Exercise +.#
6123
6116 6124 : Draw the ER diagram for a "COMPUTER" entity that has one multivalued attribute "Operating\_System", a composite attribute "Devices" (decomposed into "Keyboard" and "Mouse") and an "ID" key attribute. : Draw the ER diagram for a "COMPUTER" entity that has one multivalued attribute "Operating\_System", a composite attribute "Devices" (decomposed into "Keyboard" and "Mouse") and an "ID" key attribute.
6117 6125
6118 6126 Exercise +.# Exercise +.#
 
... ... Exercise +.#
6148 6156
6149 6157 : What are the two possible structural constraints on a relationship type? : What are the two possible structural constraints on a relationship type?
6150 6158
6159 Exercise +.#
6160
6161 : Draw the diagram for a "VideoGame" entity that would allow to store the name of the game, the supported platform(s) and the release date.
6162 Then, add a recursive relationship on that entity called "Is the sequel of" and specify all the constraints.
6163
6151 6164 Exercise +.# Exercise +.#
6152 6165 ~ ~
6153 6166
 
... ... Exercise +.#
6208 6221
6209 6222 Exercise +.# Exercise +.#
6210 6223
6224 ~ Consider the following diagram:
6225
6226 ![](fig/er/ticket_opened_by_customer)
6227
6228 #. Express the constraints represented in the diagram in plain English.
6229 #. Imagine there is a "FromIP" attribute on the "OPENED_BY" relationship that stores the IP used by the user to open the ticket. Could you migrate the attribute to one of the entity? Explain how you would do it, or why it is impossible.
6230
6231 Exercise +.#
6232
6211 6233 : Suppose a "PRODUCES" relationship with an attribute "Amount" exists between a "PRODUCER" entity type and a "MOVIE" entity type, with ratio $1:M$. : Suppose a "PRODUCES" relationship with an attribute "Amount" exists between a "PRODUCER" entity type and a "MOVIE" entity type, with ratio $1:M$.
6212 6234 Migrate the "Amount" attribute to one of the entity types and draw the resulting diagram. Migrate the "Amount" attribute to one of the entity types and draw the resulting diagram.
6213 6235
 
... ... Solution +.#
6438 6460
6439 6461 Solution +.# Solution +.#
6440 6462
6441 : A useful decomposition of an email address attribute could be: the username part before the @ sign, and the domain part afterwards.
6463 : A useful decomposition of an email address attribute could be: the username part before the `@` sign, and the domain part afterwards (that could even be sub-divided between the domain name and its top-level domain).
6442 6464 It might be useful to have statistics about the domains of the users or to sort the usernames by length, etc. It might be useful to have statistics about the domains of the users or to sort the usernames by length, etc.
6443 6465
6466 Solution +.#
6467
6468 : Having a "Phone" attribute being multi-valued would allow to store multiple phone numbers for the same entity. Typically, one would want to store a pair (Number, Description) for their office phone, their cell, etc.
6469 The resulting attribute would be drawn as follows:
6470 ![](fig/er/phone)
6471
6472
6444 6473 Solution +.# Solution +.#
6445 6474
6446 6475 : ![](fig/er/computer) : ![](fig/er/computer)
 
... ... Solution +.#
6484 6513
6485 6514 : The two possible structural constraints on a relationship type are the cardinality ratio and participation constraints. : The two possible structural constraints on a relationship type are the cardinality ratio and participation constraints.
6486 6515
6516 Solution +.#
6517 ~
6518 We would obtain the following diagram:
6519
6520 ![](fig/er/videogame)
6521
6522 Note that the "M / N" part could be discussed: having 1 instead of M would mean that a videogame that is a sequel is the sequel of at most one videogame. This could make sense, but would forbid for instance to register "Battletoads & Double Dragon - The Ultimate Team" as the sequel of both Double Dragon and Battletoads. Having 1 instead of N would mean that every videogame has at most one sequel: it would prevent from registering both "Super Mario Land" and "Super Mario World" as the sequels of "Super Mario Bros. 3".
6523
6524 However, note that all the participation constraints are partial: having a total participation constraint would mean (on the left side) that every game is a sequel, or (on the right side) that every game have at least one sequel, two statements that are obviously wrong.
6525
6487 6526 Solution +.# Solution +.#
6488 6527 ~ ~
6489 6528 We would obtain the following diagram: We would obtain the following diagram:
 
... ... Solution +.#
6539 6578 : An attribute of a binary relationship type can be migrated to one of the participating entity types when the cardinality ratio is $1:N$, $1:1$, or $N:1$. It can be migrated "to the $N$ side" or, if there is no $N$ side, to either side. : An attribute of a binary relationship type can be migrated to one of the participating entity types when the cardinality ratio is $1:N$, $1:1$, or $N:1$. It can be migrated "to the $N$ side" or, if there is no $N$ side, to either side.
6540 6579 Note that for $n$-ary relationships, at least one ratio needs to be $1$ for the attribute to be allowed to migrate (and "to the $N$ side", or, if there is no $N$ side, to any side). Note that for $n$-ary relationships, at least one ratio needs to be $1$ for the attribute to be allowed to migrate (and "to the $N$ side", or, if there is no $N$ side, to any side).
6541 6580
6581 Solution +.#
6582 ~
6583
6584 #. A ticket must be opened by a exactly one user, and an user can open any number of tickets (including 0).
6585 #. We could migrate the "FromIP" attribute to the "TICKET" entity: the intuition is that while the IP adress of a user can evolve through time, the IP used at the time of creation of the ticket is unique to the ticket, and hence can become an attribute of the ticket.
6586
6542 6587
6543 6588 Solution +.# Solution +.#
6544 6589 ~ ~
 
... ... Solution to [%D %n (%T)](#problem:reverseeng)
7810 7855
7811 7856 ## Resources {-} ## Resources {-}
7812 7857
7813 - <http://spots.augusta.edu/caubert/teaching/general/java/>
7858 - <https://spots.augusta.edu/caubert/teaching/general/java/>
7814 7859 - If you experience any trouble, <https://www.ntu.edu.sg/home/ehchua/programming/howto/ErrorMessages.html#JDBCErrors> might be a good read. - If you experience any trouble, <https://www.ntu.edu.sg/home/ehchua/programming/howto/ErrorMessages.html#JDBCErrors> might be a good read.
7815 7860 - [@Textbook6, 13.3.2] or [@Textbook7, Chapter 10] is a condensed, but good, read. - [@Textbook6, 13.3.2] or [@Textbook7, Chapter 10] is a condensed, but good, read.
7816 7861 - Many textbooks on Java include a part on Databases, just like this one: [@Gaddis2014, Chapter 16]. - Many textbooks on Java include a part on Databases, just like this one: [@Gaddis2014, Chapter 16].
 
... ... We will come back to this when we explore our first program.
7860 7905
7861 7906 ## Flash Intro to Java ## Flash Intro to Java
7862 7907
7863 For a quick introduction to Java, cf. <http://spots.augusta.edu/caubert/teaching/general/java/>.
7908 For a quick introduction to Java, cf. <https://spots.augusta.edu/caubert/teaching/general/java/>.
7864 7909
7865 7910 --- ---
7866 7911
File notes/style/style.css changed (mode: 100644) (index bd07190..289695e)
... ... thead {
201 201 } }
202 202
203 203 /* External links are post-fixed with "↗" */ /* External links are post-fixed with "↗" */
204 a[href^=http]:not([href*="http://spots.augusta.edu/caubert/"]):not([href*="https://aubert.perso.math.cnrs.fr"]):after {
204 a[href^=http]:not([href*="https://spots.augusta.edu/caubert/"]):not([href*="https://aubert.perso.math.cnrs.fr"]):after {
205 205 content: "\2197"; content: "\2197";
206 206 } }
207 207
 
... ... pre > code.sourceCode > span > a:first-child::before {
484 484 font-weight: normal; font-weight: normal;
485 485 } }
486 486
487 a[href^=http]:not([href*="http://spots.augusta.edu/caubert/"]):not([href*="https:// aubert.perso.math.cnrs.fr"]):after {
487 a[href^=http]:not([href*="https://spots.augusta.edu/caubert/"]):not([href*="https:// aubert.perso.math.cnrs.fr"]):after {
488 488 content: " (" attr(href) ") "; content: " (" attr(href) ") ";
489 489 font-size: 90%; font-size: 90%;
490 490 font-weight: normal; font-weight: normal;
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/caubert/CSCI_3410

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/caubert/CSCI_3410

Clone this repository using git:
git clone git://git.rocketgit.com/user/caubert/CSCI_3410

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main