diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..a55be6ad --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "deepcode.review.results.hideInformationIssues": false +} \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 8448ebdf..f5d8eaea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,13 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.10) + activesupport (4.2.11.1) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) coffee-script (2.4.1) coffee-script-source execjs @@ -16,7 +16,7 @@ GEM commonmarker (0.17.13) ruby-enum (~> 0.5) concurrent-ruby (1.1.5) - dnsruby (1.61.2) + dnsruby (1.61.3) addressable (~> 2.5) em-websocket (0.5.1) eventmachine (>= 0.12.9) @@ -27,13 +27,13 @@ GEM execjs (2.7.0) faraday (0.15.4) multipart-post (>= 1.2, < 3) - ffi (1.10.0) + ffi (1.11.1) forwardable-extended (2.6.0) - gemoji (3.0.0) - github-pages (197) - activesupport (= 4.2.10) + gemoji (3.0.1) + github-pages (198) + activesupport (= 4.2.11.1) github-pages-health-check (= 1.16.1) - jekyll (= 3.7.4) + jekyll (= 3.8.5) jekyll-avatar (= 0.6.0) jekyll-coffeescript (= 1.1.1) jekyll-commonmark-ghpages (= 0.1.5) @@ -81,13 +81,13 @@ GEM octokit (~> 4.0) public_suffix (~> 3.0) typhoeus (~> 1.3) - html-pipeline (2.11.0) + html-pipeline (2.12.0) activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.7.4) + jekyll (3.8.5) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -204,14 +204,14 @@ GEM jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.11.3) - multipart-post (2.0.0) - nokogiri (1.10.2) + multipart-post (2.1.1) + nokogiri (1.10.4) mini_portile2 (~> 2.4.0) octokit (4.14.0) sawyer (~> 0.8.0, >= 0.5.3) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.0.3) + public_suffix (3.1.1) rb-fsevent (0.10.3) rb-inotify (0.10.0) ffi (~> 1.0) @@ -219,16 +219,16 @@ GEM ruby-enum (0.7.2) i18n ruby_dep (1.5.0) - rubyzip (1.2.2) + rubyzip (2.0.0) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) @@ -236,7 +236,7 @@ GEM ethon (>= 0.9.0) tzinfo (1.2.5) thread_safe (~> 0.1) - unicode-display_width (1.5.0) + unicode-display_width (1.6.0) PLATFORMS ruby @@ -245,4 +245,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 1.16.1 + 1.17.3 diff --git a/_announcements/01_course-material.md b/_announcements/01_course-material.md deleted file mode 100644 index 198a8897..00000000 --- a/_announcements/01_course-material.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -date: 2019-04-18T19:00:00+3:30 ---- -Course material [page](/ad97/course-materials/) updated. \ No newline at end of file diff --git a/_announcements/02_quantum-computing.md b/_announcements/02_quantum-computing.md deleted file mode 100644 index 4688c8f6..00000000 --- a/_announcements/02_quantum-computing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -date: 2019-04-19T07:00:00+3:30 ---- -We are working on having an invited speaker for our lecture on quantum computing. Our first candidate is Prof. Salman Beigi. He is an associate professor of mathematics at IPM. -Before joining IPM, he had Prof. Peter Shor from MIT as his PhD advisor. We'll keep you posted if accepts our invitation. \ No newline at end of file diff --git a/_announcements_prev/01_final_exam.md b/_announcements_prev/01_final_exam.md new file mode 100644 index 00000000..acdcb7ee --- /dev/null +++ b/_announcements_prev/01_final_exam.md @@ -0,0 +1,4 @@ +--- +date: 2019-10-03T07:00:00+3:30 +--- +I've recorded a short version of what we did in lab 1. You can find the recorded video [here](https://drive.iust.ac.ir/index.php/s/Xu0ZXbjx5bsakKV/download?path=%2FVideos&files=lab1_short.mp4). diff --git a/_assignments/#01_sample_assignment.md b/_assignments/#01_sample_assignment.md deleted file mode 100644 index 6f53617f..00000000 --- a/_assignments/#01_sample_assignment.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -type: assignment -date: 2018-09-26T4:00:00+4:30 -title: 'Assignment #1 - Sample Assignment' -pdf: /static_files/assignments/asg.pdf -attachment: /static_files/assignments/asg.zip -solutions: /static_files/assignments/asg_solutions.pdf -due: 2018-11-13T23:59:00+3:30 ---- -This is a sample assignment. diff --git a/_assignments_prev/01_assignment.md b/_assignments_prev/01_assignment.md new file mode 100644 index 00000000..ef6e240b --- /dev/null +++ b/_assignments_prev/01_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-02-16T4:00:00+4:30 +title: 'Assignment #1 - Getting Started with Azure DevOps and Test Framework' +pdf: /static_files/assignments/Assignment1.html +#attachment: /static_files/assignments/DS_A1.zip +#solutions: /static_files/assignments +due: 2019-02-21T23:59:00+3:30 +--- diff --git a/_assignments_prev/02_assignment.md b/_assignments_prev/02_assignment.md new file mode 100644 index 00000000..4171aed1 --- /dev/null +++ b/_assignments_prev/02_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-02-21T4:00:00+4:30 +title: 'Assignment #2 - Programming Challenges' +pdf: /static_files/assignments/Assignment2.pdf +attachment: /static_files/assignments/DS_A2.zip +#solutions: /static_files/assignments +due: 2019-02-28T23:59:00+3:30 +--- \ No newline at end of file diff --git a/_assignments_prev/03_assignment.md b/_assignments_prev/03_assignment.md new file mode 100644 index 00000000..fd09518e --- /dev/null +++ b/_assignments_prev/03_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-03-01T4:00:00+4:30 +title: 'Assignment #3 - Algorithmic Warmup' +pdf: /static_files/assignments/Assignment3.pdf +attachment: /static_files/assignments/DS_A3.zip +#solutions: /static_files/assignments +due: 2019-03-08T23:59:00+3:30 +--- diff --git a/_assignments_prev/04_assignment.md b/_assignments_prev/04_assignment.md new file mode 100644 index 00000000..150520d8 --- /dev/null +++ b/_assignments_prev/04_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-03-15T4:00:00+4:30 +title: 'Assignment #4 - Greedy Algorithms' +pdf: /static_files/assignments/Assignment4.pdf +attachment: /static_files/assignments/DS_A4.zip +#solutions: /static_files/assignments +due: 2019-03-22T23:59:00+3:30 +--- diff --git a/_assignments_prev/05_assignment.md b/_assignments_prev/05_assignment.md new file mode 100644 index 00000000..bd22cb9e --- /dev/null +++ b/_assignments_prev/05_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-03-17T4:00:00+4:30 +title: 'Assignment #5 - Divide and Conquer' +pdf: /static_files/assignments/Assignment5.pdf +attachment: /static_files/assignments/DS_A5.zip +#solutions: /static_files/assignments +due: 2019-04-07T23:59:00+3:30 +--- diff --git a/_assignments_prev/06_assignment.md b/_assignments_prev/06_assignment.md new file mode 100644 index 00000000..284aaf5c --- /dev/null +++ b/_assignments_prev/06_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-04-07T4:00:00+4:30 +title: 'Assignment #6 - Dynamic Programming 1' +pdf: /static_files/assignments/Assignment6.pdf +attachment: /static_files/assignments/DS_A6.zip +#solutions: /static_files/assignments +due: 2019-04-15T23:59:00+3:30 +--- diff --git a/_assignments_prev/07_assignment.md b/_assignments_prev/07_assignment.md new file mode 100644 index 00000000..55bbad36 --- /dev/null +++ b/_assignments_prev/07_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-04-16T4:00:00+4:30 +title: 'Assignment #7 - Dynamic Programming 2' +pdf: /static_files/assignments/Assignment7.pdf +attachment: /static_files/assignments/DS_A7.zip +#solutions: /static_files/assignments +due: 2019-04-21T23:59:00+3:30 +--- diff --git a/_assignments_prev/08_assignment.md b/_assignments_prev/08_assignment.md new file mode 100644 index 00000000..83b31208 --- /dev/null +++ b/_assignments_prev/08_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-04-28T4:00:00+3:30 +title: 'Assignment #8 - Basic Data Structures' +pdf: /static_files/assignments/Assignment8.pdf +attachment: /static_files/assignments/DS_A8.zip +#solutions: /static_files/assignments +due: 2019-05-05T23:59:00+3:30 +--- diff --git a/_assignments_prev/09_assignment.md b/_assignments_prev/09_assignment.md new file mode 100644 index 00000000..b2f3e52d --- /dev/null +++ b/_assignments_prev/09_assignment.md @@ -0,0 +1,8 @@ +--- +type: assignment +date: 2019-05-11T4:00:00+3:30 +title: 'Assignment #9 - Priority Queues and Disjoint Sets' +pdf: /static_files/assignments/Assignment9.pdf +attachment: /static_files/assignments/DS_A9.zip +due: 2019-05-18T23:59:00+3:30 +--- diff --git a/_assignments_prev/10_assignment.md b/_assignments_prev/10_assignment.md new file mode 100644 index 00000000..5546c22b --- /dev/null +++ b/_assignments_prev/10_assignment.md @@ -0,0 +1,8 @@ +--- +type: assignment +date: 2019-05-19T4:00:00+3:30 +title: 'Assignment #10 - Hashtables and Hash Functions' +pdf: /static_files/assignments/Assignment10.pdf +attachment: /static_files/assignments/DS_A10.zip +due: 2019-05-25T23:59:00+3:30 +--- diff --git a/_assignments_prev/11_assignment.md b/_assignments_prev/11_assignment.md new file mode 100644 index 00000000..586dad15 --- /dev/null +++ b/_assignments_prev/11_assignment.md @@ -0,0 +1,9 @@ +--- +type: assignment +date: 2019-06-02T4:00:00+3:30 +title: 'Assignment #11 - Binary Search Trees' +pdf: /static_files/assignments/Assignment11.pdf +attachment: /static_files/assignments/DS_A11.zip +due: 2019-06-11T23:59:00+3:30 +--- +Assignment #11: Forth assignment from Advanced Algorithms module: Coping with NP-Completeness. \ No newline at end of file diff --git a/_assignments_prev/12_assignment.md b/_assignments_prev/12_assignment.md new file mode 100644 index 00000000..cf46c439 --- /dev/null +++ b/_assignments_prev/12_assignment.md @@ -0,0 +1,8 @@ +--- +type: assignment +date: 2019-07-07T4:00:00+3:30 +title: 'Assignment #12 - Graph Decomposition' +pdf: /static_files/assignments/AssignmentQ.pdf +attachment: /static_files/assignments/DS_AQ.zip +due: 2019-07-13T23:59:00+3:30 +--- diff --git a/_config.yml b/_config.yml index 89c33e66..db0520fa 100644 --- a/_config.yml +++ b/_config.yml @@ -1,21 +1,22 @@ # Site settings title: Iran University of Science and Technology -course_name: Algorithm Design and Analysis -course_description: In this course, we aim to introduce students to algorithm thinking with an emphasis on learning through doing. After examining sylabus and course material from top universities including Stanford, Princeton and MIT we have chosen to follow the Data Structure and Algorithms Specialization developed by Alexander S. Kulikov due to excellent course material and its practical approach. -course_semester: "Spring 2019" +course_name: College Orientation and Student Skills +course_description: This course attempts to introduce students to the Computer Enginering major, the Department of Computer Engineering at IUST and discuss skills necessary to excel and succeed as a stuent in this major. +course_semester: "Fall 2019" description: | Instructor: Sauleh Eetemadi -message: #Register to our Google groups page to get course notifications via email. -baseurl: "/ad97" # the subpath of your site, e.g. /blog/ -url: "http://sauleh.github.io" # the base hostname & protocol for your site +message: #Please register to our Google groups page to get course notifications via email. +baseurl: "/co98" # the subpath of your site, e.g. /blog/ +url: "http://sauleh.github.io/co98" # the base hostname & protocol for your site +syllabus: http://sauleh.github.io/co98/syllabus/ githubdir: # Author/user information email: instructor-first-name@iust.ac.ir twitter_username: sauleh_e github_username: sauleh -authorurl: "http://sauleh.github.io/" +authorurl: "http://sauleh.github.io" address: | School of Computer Engineering Iran University of Science and Technology @@ -43,6 +44,8 @@ collections: announcements: output: false +sass: + style: :compressed defaults: - scope: @@ -50,6 +53,7 @@ defaults: type: "assignments" values: layout: "assignment" + comments: false diff --git a/_css/main.scss b/_css/main.scss index eb3c23e2..219fc35b 100644 --- a/_css/main.scss +++ b/_css/main.scss @@ -19,6 +19,8 @@ $brand-color: #0077CC; // $gameday-sky: #109dc0; $clemson-purple: #336699; $clemson-orange: #f66733; +$clemson-green: #10c03c; +$clemson-red: #ee0303; $grey-color: #828282; diff --git a/_data/late_policy.yml b/_data/late_policy.yml index 24499b86..194b4a72 100644 --- a/_data/late_policy.yml +++ b/_data/late_policy.yml @@ -1,4 +1,6 @@ policies: - - You have free 8 late days. - - You can use late days for assignments. A late day extends the deadline 24 hours. - - Once you have used all 8 late days, the penalty is 10% for each additional late day. \ No newline at end of file + - You have 3 free late days (or 72 hours) plus any late days explicity added during the semester (3 so far). + - You can use late days for assignments. Late days are calculated per hour. + - Once you have used all free late days/hours, you do not recive any credit for the assignment. + - You can only get a passing grade for the course if you get more than half the score for every assignment. + - Thus, if you don't complete all questions before the deadline, submit what you have. \ No newline at end of file diff --git a/_data/people.yml b/_data/people.yml index 1e3bb7af..8c664316 100644 --- a/_data/people.yml +++ b/_data/people.yml @@ -3,32 +3,7 @@ instructor: profile_pic: /_images/eetemadi.jpg teaching_assistants: - - name: Maryam S. Hashemi - profile_pic: /_images/hashemi.jpg +# - name: Amir Mohammad Ehsandar +# profile_pic: /_images/avatar.png - - name: Soheil Rastegar - profile_pic: /_images/rastegar.jpg - - - name: Amir Khakpour - profile_pic: /_images/khakpour.jpg - - - name: Mahsa S. Razavi - profile_pic: /_images/razavi.jpg - - - name: Banafeshe Karimian - profile_pic: /_images/avatar.png - - - name: Ali Aleyasin - profile_pic: /_images/aleyasin.jpg - - - name: Fateme Tavakoli - profile_pic: /_images/tavakoli.jpg - - - name: Ali Safarpour Dehkordi - profile_pic: /_images/avatar.png - - - name: Mahya Khazaei - profile_pic: /_images/khazayi.jpg - - - name: Amir H. Amini - profile_pic: /_images/avatar.png + \ No newline at end of file diff --git a/_data/previous_offering.yml b/_data/previous_offering.yml index f587aa49..4ccdc7d5 100644 --- a/_data/previous_offering.yml +++ b/_data/previous_offering.yml @@ -1,6 +1,6 @@ -offerings: -# - title: Fall 2049 -# url: https://previous_course_website.url/ +#offerings: +# - title: Fall 2018 +# url: https://sauleh.github.io/ds97/ # - title: Fall 2048 -# url: https://previous_course_website.url/ \ No newline at end of file +# url: https://previous_course_website.url/ diff --git a/_events/sample_exam_due.md b/_events/sample_exam_due.md deleted file mode 100644 index f6dc5576..00000000 --- a/_events/sample_exam_due.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -type: exam -date: 2018-12-02T8:0:0+3:30 -description: 'Midterm' -hide_from_announcments: true ---- -**Topics:** -
- Topic 1 -
- Topic 2 -
- Topic 3 diff --git a/_events/sample_due.md b/_events_prev/#sample_due.md similarity index 100% rename from _events/sample_due.md rename to _events_prev/#sample_due.md diff --git a/_events_prev/#sample_exam_due.md b/_events_prev/#sample_exam_due.md new file mode 100644 index 00000000..69f15783 --- /dev/null +++ b/_events_prev/#sample_exam_due.md @@ -0,0 +1,9 @@ +--- +type: exam +date: 2019-04-22T15:30:0+3:30 +description: 'Programming Exam' +hide_from_announcments: false +--- +**Topics:** +
- Graph Algorithms +
- String Algorithms diff --git a/_events/sample_raw_event.md b/_events_prev/#sample_raw_event.md similarity index 100% rename from _events/sample_raw_event.md rename to _events_prev/#sample_raw_event.md diff --git a/_events_prev/graph_quiz1_due.md b/_events_prev/graph_quiz1_due.md new file mode 100644 index 00000000..9450eb12 --- /dev/null +++ b/_events_prev/graph_quiz1_due.md @@ -0,0 +1,8 @@ +--- +type: exam +date: 2019-03-11T15:30:0+3:30 +description: 'Quiz 1: Graph Algorithms: Monday Marh 11th @ 3:30pm' +hide_from_announcments: false +--- +**Topics:** +
- Graph Algorithms diff --git a/_events_prev/programming_exam1_due.md b/_events_prev/programming_exam1_due.md new file mode 100644 index 00000000..016c7250 --- /dev/null +++ b/_events_prev/programming_exam1_due.md @@ -0,0 +1,9 @@ +--- +type: exam +date: 2019-04-19T8:0:0+3:30 +description: 'Programming Exam' +hide_from_announcments: false +--- +**Topics:** +
- Graph Algorithms +
- String Algorithms diff --git a/_events_prev/string_quiz2_due.md b/_events_prev/string_quiz2_due.md new file mode 100644 index 00000000..1e8c0cdb --- /dev/null +++ b/_events_prev/string_quiz2_due.md @@ -0,0 +1,8 @@ +--- +type: exam +date: 2019-04-27T15:30:0+3:30 +description: 'Quiz 2: String Algorithms: Saturday April 27th @ 3:30pm' +hide_from_announcments: false +--- +**Topics:** +
- String Algorithms diff --git a/_events_prev/string_quiz2_postponed.md b/_events_prev/string_quiz2_postponed.md new file mode 100644 index 00000000..4a8dcd31 --- /dev/null +++ b/_events_prev/string_quiz2_postponed.md @@ -0,0 +1,8 @@ +--- +type: exam +date: 2019-05-04T15:30:0+3:30 +description: 'Quiz 2 postponed to Saturday May 4th @ 3:30pm (۱۴ اردیبهشت)' +hide_from_announcments: false +--- +**Topics:** +
- String Algorithms diff --git a/_images/DS_favicon.png b/_images/DS_favicon.png new file mode 100644 index 00000000..b24db052 Binary files /dev/null and b/_images/DS_favicon.png differ diff --git a/_images/ali-heydari.jpg b/_images/ali-heydari.jpg new file mode 100644 index 00000000..dd93cc5e Binary files /dev/null and b/_images/ali-heydari.jpg differ diff --git a/_images/alireza-moradi.jpg b/_images/alireza-moradi.jpg new file mode 100644 index 00000000..b47d64a7 Binary files /dev/null and b/_images/alireza-moradi.jpg differ diff --git a/_images/amir-ehsandaar.jpg b/_images/amir-ehsandaar.jpg new file mode 100644 index 00000000..3941210b Binary files /dev/null and b/_images/amir-ehsandaar.jpg differ diff --git a/_images/amouie.jpg b/_images/amouie.jpg new file mode 100644 index 00000000..2b5445ba Binary files /dev/null and b/_images/amouie.jpg differ diff --git a/_images/clrsbook.jpg b/_images/clrsbook.jpg new file mode 100644 index 00000000..2be22b7b Binary files /dev/null and b/_images/clrsbook.jpg differ diff --git a/_images/favicon.png b/_images/favicon.png new file mode 100644 index 00000000..04d5b6ba Binary files /dev/null and b/_images/favicon.png differ diff --git a/_images/karimian.jpg b/_images/karimian.jpg new file mode 100644 index 00000000..d3461229 Binary files /dev/null and b/_images/karimian.jpg differ diff --git a/_images/keyvan-mirshekari.jpg b/_images/keyvan-mirshekari.jpg new file mode 100644 index 00000000..693dd222 Binary files /dev/null and b/_images/keyvan-mirshekari.jpg differ diff --git a/_images/khazayi.jpg b/_images/khazayi.jpg deleted file mode 100644 index b84be8f9..00000000 Binary files a/_images/khazayi.jpg and /dev/null differ diff --git a/_images/mahdi-moghaddami.jpg b/_images/mahdi-moghaddami.jpg new file mode 100644 index 00000000..17bc6bff Binary files /dev/null and b/_images/mahdi-moghaddami.jpg differ diff --git a/_images/milad-esfandiarifar.jpg b/_images/milad-esfandiarifar.jpg new file mode 100644 index 00000000..8040c57c Binary files /dev/null and b/_images/milad-esfandiarifar.jpg differ diff --git a/_images/pirhadi.jpg b/_images/pirhadi.jpg new file mode 100644 index 00000000..a55c8bce Binary files /dev/null and b/_images/pirhadi.jpg differ diff --git a/_images/rastegar.jpg b/_images/rastegar.jpg deleted file mode 100644 index 8b4ca25c..00000000 Binary files a/_images/rastegar.jpg and /dev/null differ diff --git a/_images/safarpour.jpg b/_images/safarpour.jpg new file mode 100644 index 00000000..788e00a1 Binary files /dev/null and b/_images/safarpour.jpg differ diff --git a/_images/sara-kodeiri.jpg b/_images/sara-kodeiri.jpg new file mode 100644 index 00000000..6c0db0c6 Binary files /dev/null and b/_images/sara-kodeiri.jpg differ diff --git a/_images/sara-kodeyri-old.jpg b/_images/sara-kodeyri-old.jpg new file mode 100644 index 00000000..d98b1c73 Binary files /dev/null and b/_images/sara-kodeyri-old.jpg differ diff --git a/_images/sauleh-eetemadi.jpg b/_images/sauleh-eetemadi.jpg new file mode 100644 index 00000000..d43afb59 Binary files /dev/null and b/_images/sauleh-eetemadi.jpg differ diff --git a/_includes/head.html b/_includes/head.html index 30418b83..eb889e6d 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -2,6 +2,7 @@ + {% if page.title %}{{ site.course_name }}: {{ page.title }}{% else %}{{ site.title }}: {{ site.course_name }}{% endif %} @@ -17,4 +18,17 @@ {% if site.bing_webmastertools_id %}{% endif %} + + + + + + + diff --git a/_includes/lecture_links.html b/_includes/lecture_links.html index 7575eb7c..052c5b1b 100644 --- a/_includes/lecture_links.html +++ b/_includes/lecture_links.html @@ -1,17 +1,35 @@
+ {% if include.lecture.slides %} [slides] - {% if include.lecture.notes %} - [ext slides] + {% endif %} + {% if include.lecture.video %} + [video] + {% endif %} + {% if include.lecture.video2 %} + [notes] + {{ include.lecture.video2 | prepend: site.baseurl }} + {% endif %}">video2] {% endif %} {% if include.lecture.codes %} [codes] {% endif %} -
\ No newline at end of file + {% if include.lecture.data %} + [data] + {% endif %} + {% if include.lecture.link %} + [link] + {% endif %} + {% if include.lecture.link1 %} + [link1] + {% endif %} + {% if include.lecture.link2 %} + [link2] + {% endif %} + {% if include.lecture.link3 %} + [link3] + {% endif %} + {% if include.lecture.link4 %} + [link4] + {% endif %} + {% if include.lecture.link5 %} + [link5] + {% endif %} + {% if include.lecture.link6 %} + [link6] + {% endif %} + {% if include.lecture.link7 %} + [link7] + {% endif %} + {% if include.lecture.link8 %} + [link8] + {% endif %} + diff --git a/_includes/nav.html b/_includes/nav.html index e96a7b93..4c39f469 100644 --- a/_includes/nav.html +++ b/_includes/nav.html @@ -1,8 +1,9 @@ \ No newline at end of file diff --git a/_lectures/#01_introduction.md b/_lectures/#01_introduction.md deleted file mode 100644 index 2dcb7aa3..00000000 --- a/_lectures/#01_introduction.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -type: lecture -date: 2018-09-16T8:00:00+4:30 -title: Sample Lecture -slides: https://google.com -notes: /static_files/presentations/lec.zip -codes: /static_files/presentations/code.zip -tldr: "Short text to discribe what this lecture is about." -thumbnail: /static_files/presentations/lec.jpg ---- diff --git a/_lectures_prev/02_lecture.md b/_lectures_prev/02_lecture.md new file mode 100644 index 00000000..fa0e37ec --- /dev/null +++ b/_lectures_prev/02_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-02-23T8:00:00+4:30 +title: Greedy Algorithms +slides: /static_files/presentations/week3_greedy_algorithms.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/03_lecture.md b/_lectures_prev/03_lecture.md new file mode 100644 index 00000000..5389cd23 --- /dev/null +++ b/_lectures_prev/03_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-03-02T8:00:00+4:30 +title: Divide and Conquer +slides: /static_files/presentations/week4_divide_and_conquer.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/04_lecture.md b/_lectures_prev/04_lecture.md new file mode 100644 index 00000000..2d5ad2df --- /dev/null +++ b/_lectures_prev/04_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-03-09T8:00:00+4:30 +title: Dynamic Programming +slides: /static_files/presentations/week5_and_6_dynamic_programming.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/05_lecture.md b/_lectures_prev/05_lecture.md new file mode 100644 index 00000000..b5a6faf7 --- /dev/null +++ b/_lectures_prev/05_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-03-16T8:00:00+4:30 +title: Basic Data Structures +slides: /static_files/presentations/week1_basic_data_structures.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/06_lecture.md b/_lectures_prev/06_lecture.md new file mode 100644 index 00000000..713ac0df --- /dev/null +++ b/_lectures_prev/06_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-04-06T8:00:00+4:30 +title: Dynamic Arrays and Amortized Analysis +slides: /static_files/presentations/week2_dynamic_arrays_and_amortized_complexity.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/07_lecture.md b/_lectures_prev/07_lecture.md new file mode 100644 index 00000000..2ef54092 --- /dev/null +++ b/_lectures_prev/07_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-04-13T8:00:00+4:30 +title: Priority Queues and Disjoint Sets +slides: /static_files/presentations/week3_priority_queues_and_disjoint_sets.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/08_lecture.md b/_lectures_prev/08_lecture.md new file mode 100644 index 00000000..9ad639ec --- /dev/null +++ b/_lectures_prev/08_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-04-20T8:00:00+4:30 +title: Hashing +slides: /static_files/presentations/week4_hashing.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/09_lecture.md b/_lectures_prev/09_lecture.md new file mode 100644 index 00000000..e20740d8 --- /dev/null +++ b/_lectures_prev/09_lecture.md @@ -0,0 +1,10 @@ +--- +type: lecture +date: 2019-04-27T8:00:00+4:30 +title: Binary Search Tree - 1 +slides: /static_files/presentations/week5_binary_search_trees.zip +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/10_lecture.md b/_lectures_prev/10_lecture.md new file mode 100644 index 00000000..08ac5d99 --- /dev/null +++ b/_lectures_prev/10_lecture.md @@ -0,0 +1,12 @@ +--- +type: lecture +date: 2019-05-06T8:00:00+4:30 +title: Binary Search Tree - 2 +slides: /static_files/presentations/week6_binary_search_trees2.zip +#link1: http://www.math.u-szeged.hu/~nagyg/Oktatas/INF/GaussianElimination.html +hide_from_announcments: false +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_lectures_prev/11_lecture.md b/_lectures_prev/11_lecture.md new file mode 100644 index 00000000..6642c371 --- /dev/null +++ b/_lectures_prev/11_lecture.md @@ -0,0 +1,11 @@ +--- +type: lecture +date: 2019-05-13T8:00:00+4:30 +title: Graph Algorithms - Graph Decomposition +slides: /static_files/presentations/week1_and_2_graph_decomposition.zip +hide_from_announcments: false +#notes: /static_files/presentations/lec.zip +#codes: /static_files/presentations/code.zip +#tldr: "Short text to discribe what this lecture is about." +#thumbnail: /static_files/presentations/lec.jpg +--- diff --git a/_sass/_base.scss b/_sass/_base.scss index ded6bd8e..e580233b 100644 --- a/_sass/_base.scss +++ b/_sass/_base.scss @@ -22,7 +22,6 @@ figure { } - /** * Basic styling */ @@ -436,10 +435,10 @@ a.tosu { margin-right: 10px; background-position: center; background-size: contain; - } - - /* Set the image to fill its parent and make transparent */ - .center-cropped img { +} + +/* Set the image to fill its parent and make transparent */ +.center-cropped img { min-height: 100%; min-width: 100%; /* IE 8 */ @@ -448,46 +447,86 @@ a.tosu { filter: alpha(opacity=0); /* modern browsers */ opacity: 0; - } +} + +.lecture-container { - .lecture-container { - display: flex; width: 100%; padding-top: 10px; padding-bottom: 10px; - + .thumbnail { - width: 120px; + width: 120px; } - + .content { - flex: 1; + flex: 1; } - } +} - .previous-offerings{ +.previous-offerings { list-style-type: none; - + li { display: inline-block; - margin-right: 10px; + margin-right: 10px; } li::before { content: "● "; - color:black; + color: black; padding-right: 5px; - } - } + } +} - .lecture-links { - font-weight: bold; - font-family: 'Titillium Web', sans-serif; - } +.lecture-links { + font-weight: bold; + font-family: 'Titillium Web', sans-serif; +} - .schedule-lecture-links { +.schedule-lecture-links { font-weight: normal; font-family: inherit; - } \ No newline at end of file +} + +article table { + padding: 0; +} + +article table tr { + border-top: 1px solid #cccccc; + background-color: white; + margin: 0; + padding: 0; +} + +article table tr:nth-child(2n) { + background-color: #f8f8f8; +} + +article table tr th { + font-weight: bold; + border: 1px solid #cccccc; + text-align: left; + margin: 0; + padding: 6px 13px; +} + +article table tr td { + border: 1px solid #cccccc; + text-align: left; + margin: 0; + padding: 6px 13px; +} + +article table tr th :first-child, +article table tr td :first-child { + margin-top: 0; +} + +article table tr th :last-child, +article table tr td :last-child { + margin-bottom: 0; +} \ No newline at end of file diff --git a/_sass/_bootstrap.scss b/_sass/_bootstrap.scss new file mode 100644 index 00000000..89e38551 --- /dev/null +++ b/_sass/_bootstrap.scss @@ -0,0 +1,56 @@ +/*! + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +// Core variables and mixins +@import "bootstrap/variables"; +@import "bootstrap/mixins"; + +// Reset and dependencies +@import "bootstrap/normalize"; +@import "bootstrap/print"; +@import "bootstrap/glyphicons"; + +// Core CSS +@import "bootstrap/scaffolding"; +@import "bootstrap/type"; +@import "bootstrap/code"; +@import "bootstrap/grid"; +@import "bootstrap/tables"; +@import "bootstrap/forms"; +@import "bootstrap/buttons"; + +// Components +@import "bootstrap/component-animations"; +@import "bootstrap/dropdowns"; +@import "bootstrap/button-groups"; +@import "bootstrap/input-groups"; +@import "bootstrap/navs"; +@import "bootstrap/navbar"; +@import "bootstrap/breadcrumbs"; +@import "bootstrap/pagination"; +@import "bootstrap/pager"; +@import "bootstrap/labels"; +@import "bootstrap/badges"; +@import "bootstrap/jumbotron"; +@import "bootstrap/thumbnails"; +@import "bootstrap/alerts"; +@import "bootstrap/progress-bars"; +@import "bootstrap/media"; +@import "bootstrap/list-group"; +@import "bootstrap/panels"; +@import "bootstrap/responsive-embed"; +@import "bootstrap/wells"; +@import "bootstrap/close"; + +// Components w/ JavaScript +@import "bootstrap/modals"; +@import "bootstrap/tooltip"; +@import "bootstrap/popovers"; +@import "bootstrap/carousel"; + +// Utility classes +@import "bootstrap/utilities"; +@import "bootstrap/responsive-utilities"; diff --git a/_sass/_header.scss b/_sass/_header.scss index 8b89de02..ba0a321b 100644 --- a/_sass/_header.scss +++ b/_sass/_header.scss @@ -5,7 +5,7 @@ border-top: 0px solid $grey-color-dark; border-bottom: 4px solid $clemson-orange; min-height: 56px; - background: $clemson-purple; + background: $clemson-red; // Positioning context for the mobile navigation icon position: relative; @@ -87,18 +87,18 @@ color: #522d80; } .site-nav .sub-menu a:hover { - color: $clemson-purple; + color: $clemson-red; } .site-nav .sub-menu { background: #ffffff; - border-color: $clemson-purple; + border-color: $clemson-red; min-width: 265px; z-index:2147483647; } .site-nav .sub-menu li.current-menu-item > a { - border-left-color: $clemson-purple; - border-right-color: $clemson-purple; + border-left-color: $clemson-red; + border-right-color: $clemson-red; border-right: 0px; } @@ -157,7 +157,7 @@ z-index:999; .page-link { color: #ffffff; - background: $clemson-purple; + background: $clemson-red; line-height: $base-line-height; // Gaps between nav items, but not on the first one diff --git a/_sass/bootstrap/_alerts.scss b/_sass/bootstrap/_alerts.scss new file mode 100644 index 00000000..f9e69bd0 --- /dev/null +++ b/_sass/bootstrap/_alerts.scss @@ -0,0 +1,73 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: $alert-padding; + margin-bottom: $line-height-computed; + border: 1px solid transparent; + border-radius: $alert-border-radius; + + // Headings for larger alerts + h4 { + margin-top: 0; + color: inherit; // Specified for the h4 to prevent conflicts of changing $headings-color + } + + // Provide class for links that match alerts + .alert-link { + font-weight: $alert-link-font-weight; + } + + // Improve alignment and spacing of inner content + > p, + > ul { + margin-bottom: 0; + } + + > p + p { + margin-top: 5px; + } +} + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +// The misspelled .alert-dismissable was deprecated in 3.2.0. +.alert-dismissable, +.alert-dismissible { + padding-right: ($alert-padding + 20); + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); +} + +.alert-info { + @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); +} + +.alert-warning { + @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); +} + +.alert-danger { + @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); +} diff --git a/_sass/bootstrap/_badges.scss b/_sass/bootstrap/_badges.scss new file mode 100644 index 00000000..44d5dd6f --- /dev/null +++ b/_sass/bootstrap/_badges.scss @@ -0,0 +1,68 @@ +// +// Badges +// -------------------------------------------------- + + +// Base class +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: $font-size-small; + font-weight: $badge-font-weight; + line-height: $badge-line-height; + color: $badge-color; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: $badge-bg; + border-radius: $badge-border-radius; + + // Empty badges collapse automatically (not available in IE8) + &:empty { + display: none; + } + + // Quick fix for badges in buttons + .btn & { + position: relative; + top: -1px; + } + + .btn-xs &, + .btn-group-xs > .btn & { + top: 0; + padding: 1px 5px; + } + + // [converter] extracted a& to a.badge + + // Account for badges in navs + .list-group-item.active > &, + .nav-pills > .active > a > & { + color: $badge-active-color; + background-color: $badge-active-bg; + } + + .list-group-item > & { + float: right; + } + + .list-group-item > & + & { + margin-right: 5px; + } + + .nav-pills > li > a > & { + margin-left: 3px; + } +} + +// Hover state, but only for links +a.badge { + &:hover, + &:focus { + color: $badge-link-hover-color; + text-decoration: none; + cursor: pointer; + } +} diff --git a/_sass/bootstrap/_breadcrumbs.scss b/_sass/bootstrap/_breadcrumbs.scss new file mode 100644 index 00000000..67e39d90 --- /dev/null +++ b/_sass/bootstrap/_breadcrumbs.scss @@ -0,0 +1,28 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; + margin-bottom: $line-height-computed; + list-style: none; + background-color: $breadcrumb-bg; + border-radius: $border-radius-base; + + > li { + display: inline-block; + + + li:before { + padding: 0 5px; + color: $breadcrumb-color; + // [converter] Workaround for https://github.com/sass/libsass/issues/1115 + $nbsp: "\00a0"; + content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space + } + } + + > .active { + color: $breadcrumb-active-color; + } +} diff --git a/_sass/bootstrap/_button-groups.scss b/_sass/bootstrap/_button-groups.scss new file mode 100644 index 00000000..6a62faf5 --- /dev/null +++ b/_sass/bootstrap/_button-groups.scss @@ -0,0 +1,244 @@ +// +// Button groups +// -------------------------------------------------- + +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + > .btn { + position: relative; + float: left; + // Bring the "active" button to the front + &:hover, + &:focus, + &:active, + &.active { + z-index: 2; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group { + .btn + .btn, + .btn + .btn-group, + .btn-group + .btn, + .btn-group + .btn-group { + margin-left: -1px; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + margin-left: -5px; // Offset the first child's margin + @include clearfix; + + .btn, + .btn-group, + .input-group { + float: left; + } + > .btn, + > .btn-group, + > .input-group { + margin-left: 5px; + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + &:not(:last-child):not(.dropdown-toggle) { + @include border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + @include border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + @include border-right-radius(0); + } +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + @include border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-xs > .btn { @extend .btn-xs; } +.btn-group-sm > .btn { @extend .btn-sm; } +.btn-group-lg > .btn { @extend .btn-lg; } + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); + + // Show no shadow for `.btn-link` since it has no other button styles. + &.btn-link { + @include box-shadow(none); + } +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-lg .caret { + border-width: $caret-width-large $caret-width-large 0; + border-bottom-width: 0; +} +// Upside down carets for .dropup +.dropup .btn-lg .caret { + border-width: 0 $caret-width-large $caret-width-large; +} + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical { + > .btn, + > .btn-group, + > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + + // Clear floats so dropdown menus can be properly placed + > .btn-group { + @include clearfix; + > .btn { + float: none; + } + } + + > .btn + .btn, + > .btn + .btn-group, + > .btn-group + .btn, + > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } +} + +.btn-group-vertical > .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + @include border-top-radius($btn-border-radius-base); + @include border-bottom-radius(0); + } + &:last-child:not(:first-child) { + @include border-top-radius(0); + @include border-bottom-radius($btn-border-radius-base); + } +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + @include border-bottom-radius(0); + } +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + @include border-top-radius(0); +} + + +// Justified button groups +// ---------------------- + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + > .btn, + > .btn-group { + display: table-cell; + float: none; + width: 1%; + } + > .btn-group .btn { + width: 100%; + } + + > .btn-group .dropdown-menu { + left: auto; + } +} + + +// Checkbox and radio options +// +// In order to support the browser's form validation feedback, powered by the +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use +// `display: none;` or `visibility: hidden;` as that also hides the popover. +// Simply visually hiding the inputs via `opacity` would leave them clickable in +// certain cases which is prevented by using `clip` and `pointer-events`. +// This way, we ensure a DOM element is visible to position the popover from. +// +// See https://github.com/twbs/bootstrap/pull/12794 and +// https://github.com/twbs/bootstrap/pull/14559 for more information. + +[data-toggle="buttons"] { + > .btn, + > .btn-group > .btn { + input[type="radio"], + input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; + } + } +} diff --git a/_sass/bootstrap/_buttons.scss b/_sass/bootstrap/_buttons.scss new file mode 100644 index 00000000..62962d78 --- /dev/null +++ b/_sass/bootstrap/_buttons.scss @@ -0,0 +1,168 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +.btn { + display: inline-block; + margin-bottom: 0; // For input.btn + font-weight: $btn-font-weight; + text-align: center; + white-space: nowrap; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid transparent; + @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base); + @include user-select(none); + + &, + &:active, + &.active { + &:focus, + &.focus { + @include tab-focus; + } + } + + &:hover, + &:focus, + &.focus { + color: $btn-default-color; + text-decoration: none; + } + + &:active, + &.active { + background-image: none; + outline: 0; + @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: $cursor-disabled; + @include opacity(.65); + @include box-shadow(none); + } + + // [converter] extracted a& to a.btn +} + +a.btn { + &.disabled, + fieldset[disabled] & { + pointer-events: none; // Future-proof disabling of clicks on `` elements + } +} + + +// Alternate buttons +// -------------------------------------------------- + +.btn-default { + @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); +} +.btn-primary { + @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); +} +// Success appears as green +.btn-success { + @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); +} +// Info appears as blue-green +.btn-info { + @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); +} +// Warning appears as orange +.btn-warning { + @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); +} +// Danger and error appear as red +.btn-danger { + @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); +} + + +// Link buttons +// ------------------------- + +// Make a button look and behave like a link +.btn-link { + font-weight: 400; + color: $link-color; + border-radius: 0; + + &, + &:active, + &.active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + @include box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: $link-hover-color; + text-decoration: $link-hover-decoration; + background-color: transparent; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: $btn-link-disabled-color; + text-decoration: none; + } + } +} + + +// Button Sizes +// -------------------------------------------------- + +.btn-lg { + // line-height: ensure even-numbered height of button next to large input + @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large); +} +.btn-sm { + // line-height: ensure proper height of button next to small input + @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); +} +.btn-xs { + @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); +} + + +// Block button +// -------------------------------------------------- + +.btn-block { + display: block; + width: 100%; +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} diff --git a/_sass/bootstrap/_carousel.scss b/_sass/bootstrap/_carousel.scss new file mode 100644 index 00000000..52a1f7bf --- /dev/null +++ b/_sass/bootstrap/_carousel.scss @@ -0,0 +1,271 @@ +// +// Carousel +// -------------------------------------------------- + + +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; + + > .item { + position: relative; + display: none; + @include transition(.6s ease-in-out left); + + // Account for jankitude on images + > img, + > a > img { + @include img-responsive; + line-height: 1; + } + + // WebKit CSS3 transforms for supported devices + @media all and (transform-3d), (-webkit-transform-3d) { + @include transition-transform(0.6s ease-in-out); + @include backface-visibility(hidden); + @include perspective(1000px); + + &.next, + &.active.right { + @include translate3d(100%, 0, 0); + left: 0; + } + &.prev, + &.active.left { + @include translate3d(-100%, 0, 0); + left: 0; + } + &.next.left, + &.prev.right, + &.active { + @include translate3d(0, 0, 0); + left: 0; + } + } + } + + > .active, + > .next, + > .prev { + display: block; + } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } + +} + +// Left/right controls for nav +// --------------------------- + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: $carousel-control-width; + font-size: $carousel-control-font-size; + color: $carousel-control-color; + text-align: center; + text-shadow: $carousel-text-shadow; + background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug + @include opacity($carousel-control-opacity); + // We can't have this transition here because WebKit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + @include gradient-horizontal($start-color: rgba(0, 0, 0, .5), $end-color: rgba(0, 0, 0, .0001)); + } + &.right { + right: 0; + left: auto; + @include gradient-horizontal($start-color: rgba(0, 0, 0, .0001), $end-color: rgba(0, 0, 0, .5)); + } + + // Hover/focus state + &:hover, + &:focus { + color: $carousel-control-color; + text-decoration: none; + outline: 0; + @include opacity(.9); + } + + // Toggles + .icon-prev, + .icon-next, + .glyphicon-chevron-left, + .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; + } + .icon-prev, + .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; + } + .icon-next, + .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; + } + .icon-prev, + .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; + } + + .icon-prev { + &:before { + content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + +// Optional indicator pips +// +// Add an unordered list with the following class and add a list item for each +// slide your carousel holds. + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + // IE8-9 hack for event handling + // + // Internet Explorer 8-9 does not support clicks on elements without a set + // `background-color`. We cannot use `filter` since that's not viewed as a + // background color by the browser. Thus, a hack is needed. + // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer + // + // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we + // set alpha transparency for the best results possible. + background-color: #000 \9; // IE8 + background-color: rgba(0, 0, 0, 0); // IE9 + + border: 1px solid $carousel-indicator-border-color; + border-radius: 10px; + } + + .active { + width: 12px; + height: 12px; + margin: 0; + background-color: $carousel-indicator-active-bg; + } +} + +// Optional captions +// ----------------------------- +// Hidden by default for smaller viewports +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: $carousel-caption-color; + text-align: center; + text-shadow: $carousel-text-shadow; + + & .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// Scale up controls for tablets and up +@media screen and (min-width: $screen-sm-min) { + + // Scale up the controls a smidge + .carousel-control { + .glyphicon-chevron-left, + .glyphicon-chevron-right, + .icon-prev, + .icon-next { + width: ($carousel-control-font-size * 1.5); + height: ($carousel-control-font-size * 1.5); + margin-top: ($carousel-control-font-size / -2); + font-size: ($carousel-control-font-size * 1.5); + } + .glyphicon-chevron-left, + .icon-prev { + margin-left: ($carousel-control-font-size / -2); + } + .glyphicon-chevron-right, + .icon-next { + margin-right: ($carousel-control-font-size / -2); + } + } + + // Show and left align the captions + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/_sass/bootstrap/_close.scss b/_sass/bootstrap/_close.scss new file mode 100644 index 00000000..a858a8f3 --- /dev/null +++ b/_sass/bootstrap/_close.scss @@ -0,0 +1,37 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: ($font-size-base * 1.5); + font-weight: $close-font-weight; + line-height: 1; + color: $close-color; + text-shadow: $close-text-shadow; + @include opacity(.2); + + &:hover, + &:focus { + color: $close-color; + text-decoration: none; + cursor: pointer; + @include opacity(.5); + } + + // [converter] extracted button& to button.close +} + +// Additional properties for button version +// iOS requires the button element instead of an anchor tag. +// If you want the anchor version, it requires `href="#"`. +// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + appearance: none; +} diff --git a/_sass/bootstrap/_code.scss b/_sass/bootstrap/_code.scss new file mode 100644 index 00000000..8e2b2a7f --- /dev/null +++ b/_sass/bootstrap/_code.scss @@ -0,0 +1,69 @@ +// +// Code (inline and block) +// -------------------------------------------------- + + +// Inline and block code styles +code, +kbd, +pre, +samp { + font-family: $font-family-monospace; +} + +// Inline code +code { + padding: 2px 4px; + font-size: 90%; + color: $code-color; + background-color: $code-bg; + border-radius: $border-radius-base; +} + +// User input typically entered via keyboard +kbd { + padding: 2px 4px; + font-size: 90%; + color: $kbd-color; + background-color: $kbd-bg; + border-radius: $border-radius-small; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + + kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + box-shadow: none; + } +} + +// Blocks of code +pre { + display: block; + padding: (($line-height-computed - 1) / 2); + margin: 0 0 ($line-height-computed / 2); + font-size: ($font-size-base - 1); // 14px to 13px + line-height: $line-height-base; + color: $pre-color; + word-break: break-all; + word-wrap: break-word; + background-color: $pre-bg; + border: 1px solid $pre-border-color; + border-radius: $border-radius-base; + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: $pre-scrollable-max-height; + overflow-y: scroll; +} diff --git a/_sass/bootstrap/_component-animations.scss b/_sass/bootstrap/_component-animations.scss new file mode 100644 index 00000000..ca4d6b06 --- /dev/null +++ b/_sass/bootstrap/_component-animations.scss @@ -0,0 +1,38 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. + +.fade { + opacity: 0; + @include transition(opacity .15s linear); + + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + + &.in { display: block; } + // [converter] extracted tr&.in to tr.collapse.in + // [converter] extracted tbody&.in to tbody.collapse.in +} + +tr.collapse.in { display: table-row; } + +tbody.collapse.in { display: table-row-group; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + @include transition-property(height, visibility); + @include transition-duration(.35s); + @include transition-timing-function(ease); +} diff --git a/_sass/bootstrap/_dropdowns.scss b/_sass/bootstrap/_dropdowns.scss new file mode 100644 index 00000000..0a5898a8 --- /dev/null +++ b/_sass/bootstrap/_dropdowns.scss @@ -0,0 +1,213 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: $caret-width-base dashed; + border-top: $caret-width-base solid \9; // IE8 + border-right: $caret-width-base solid transparent; + border-left: $caret-width-base solid transparent; +} + +// The dropdown wrapper (div) +.dropup, +.dropdown { + position: relative; +} + +// Prevent the focus on the dropdown toggle when closing dropdowns +.dropdown-toggle:focus { + outline: 0; +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: $zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + font-size: $font-size-base; + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + list-style: none; + background-color: $dropdown-bg; + background-clip: padding-box; + border: 1px solid $dropdown-fallback-border; // IE8 fallback + border: 1px solid $dropdown-border; + border-radius: $border-radius-base; + @include box-shadow(0 6px 12px rgba(0, 0, 0, .175)); + + // Aligns the dropdown menu to right + // + // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + @include nav-divider($dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: $line-height-base; + color: $dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + + &:hover, + &:focus { + color: $dropdown-link-hover-color; + text-decoration: none; + background-color: $dropdown-link-hover-bg; + } + } +} + +// Active state +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: $dropdown-link-active-color; + text-decoration: none; + background-color: $dropdown-link-active-bg; + outline: 0; + } +} + +// Disabled state +// +// Gray out text and ensure the hover/focus state remains gray + +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: $dropdown-link-disabled-color; + } + + // Nuke hover/focus effects + &:hover, + &:focus { + text-decoration: none; + cursor: $cursor-disabled; + background-color: transparent; + background-image: none; // Remove CSS gradient + @include reset-filter; + } +} + +// Open state for the dropdown +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Menu positioning +// +// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown +// menu with the parent. +.dropdown-menu-right { + right: 0; + left: auto; // Reset the default from `.dropdown-menu` +} +// With v3, we enabled auto-flipping if you have a dropdown within a right +// aligned nav component. To enable the undoing of that, we provide an override +// to restore the default dropdown menu alignment. +// +// This is only for left-aligning a dropdown menu within a `.navbar-right` or +// `.pull-right` nav component. +.dropdown-menu-left { + right: auto; + left: 0; +} + +// Dropdown section headers +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: $font-size-small; + line-height: $line-height-base; + color: $dropdown-header-color; + white-space: nowrap; // as with > li > a +} + +// Backdrop to catch body clicks on mobile, etc. +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: ($zindex-dropdown - 10); +} + +// Right aligned dropdowns +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? + +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + content: ""; + border-top: 0; + border-bottom: $caret-width-base dashed; + border-bottom: $caret-width-base solid \9; // IE8 + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; + } +} + + +// Component alignment +// +// Reiterate per navbar.less and the modified component alignment there. + +@media (min-width: $grid-float-breakpoint) { + .navbar-right { + .dropdown-menu { + right: 0; left: auto; + } + // Necessary for overrides of the default right aligned menu. + // Will remove come v4 in all likelihood. + .dropdown-menu-left { + left: 0; right: auto; + } + } +} diff --git a/_sass/bootstrap/_forms.scss b/_sass/bootstrap/_forms.scss new file mode 100644 index 00000000..d2e2bac5 --- /dev/null +++ b/_sass/bootstrap/_forms.scss @@ -0,0 +1,607 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + // Chrome and Firefox set a `min-width: min-content;` on fieldsets, + // so we reset that to ensure it behaves more like a standard block element. + // See https://github.com/twbs/bootstrap/issues/12359. + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: $line-height-computed; + font-size: ($font-size-base * 1.5); + line-height: inherit; + color: $legend-color; + border: 0; + border-bottom: 1px solid $legend-border-color; +} + +label { + display: inline-block; + max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) + margin-bottom: 5px; + font-weight: 700; +} + + +// Normalize form controls +// +// While most of our form styles require extra classes, some basic normalization +// is required to ensure optimum display with or without those classes to better +// address browser inconsistencies. + +input[type="search"] { + // Override content-box in Normalize (* isn't specific enough) + @include box-sizing(border-box); + + // Search inputs in iOS + // + // This overrides the extra rounded corners on search inputs in iOS so that our + // `.form-control` class can properly style them. Note that this cannot simply + // be added to `.form-control` as it's not specific enough. For details, see + // https://github.com/twbs/bootstrap/issues/11586. + -webkit-appearance: none; + appearance: none; +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; // IE8-9 + line-height: normal; + + // Apply same disabled cursor tweak as for inputs + // Some special care is needed because