Public web site for CS 1331 at Georgia Tech
TeX HTML Java JavaScript CSS
Switch branches/tags
Nothing to show
Clone or download
FarhanTejani Merge pull request #98 from Mebibyte/patch-6
Fix Policy Links in Syllabus
Latest commit 5d903ac May 3, 2018
Permalink
Failed to load latest commit information.
_includes Fix Policy Links in Syllabus May 3, 2018
_layouts Update hw5 generics. Add redirect for incorrect website. Mar 14, 2018
assignments/hw-linked-list-iterator Fix "because" spelling mistakes Jan 23, 2017
code Add add and toString2 methods Apr 20, 2018
css Different formatting for terminal examples. Sep 1, 2015
evan Small tweaks to Histogram Example Sep 14, 2015
exercise-solutions Meet spec with zero args Jun 25, 2016
exercises Add first draft of Vector2 exercise Jan 30, 2018
fall2016 Hw6 update Nov 22, 2016
fall2017 Update JavaFX API links and view game dialog instructions, add links … Nov 27, 2017
fonts Initial commit Jan 7, 2015
images Add TabsSpacesBoth.png to text-editors.md Jan 9, 2017
js Initial commit Jan 7, 2015
lecture-notes Add basic-io lecture notes Sep 19, 2017
resources Updated checkstyle jar version number Aug 18, 2015
slides Clean up slides directory Apr 23, 2018
spring2017 Reupdated HW6 submitter Apr 20, 2017
spring2018 Add rpring2018/hw7 Apr 14, 2018
summer2017 final exam practice Jul 20, 2017
.gitignore Added HW1 submitter tool Jan 31, 2017
CNAME There can be only one Feb 17, 2016
Final_Topics converted text-editors to markdown Dec 20, 2015
README.md Add instructions on running locally May 11, 2017
TARecruitingClassroomSlidesforSummer2018Fall2018.pdf Add Su/Fa 2018 TA recruiting slides Mar 28, 2018
TARecruitingClassroomSlidesforSummerFall2015.pdf Added TA recruiting slides for summer/fall 2015. Apr 6, 2015
TARecruitingClassroomSlidesforSummerFall2016.pdf Add TA recruiting slides for Summer/Fall 2016 Mar 28, 2016
TARecruitingSpring2017.pdf Add TA recruiting slide link Oct 19, 2016
_config.yml Exclude slides/*.md from conversion Jan 9, 2017
api-guide.md Add API guide to resources Feb 27, 2016
breaks-fall2016.json Initial updates for Fall 2016 Aug 22, 2016
checkstyle.md added explicit discussion of checkstyle command-line parameters Aug 6, 2015
cs1331-exam1-practice-answers.pdf Add exam1 practice answers Feb 14, 2017
cs1331-exam1-practice.pdf Add exam1 practice answers Feb 14, 2017
cs1331-exam1-practice.tex Add exam1 practice answers Feb 14, 2017
cs1331-exam2-practice-answers.pdf Add exam2-practice-answers Mar 7, 2017
cs1331-exam2-practice.pdf Add practice exams Feb 13, 2017
cs1331-exam3-practice-answers.pdf Remove stream question from practice exam 3 Nov 13, 2017
cs1331-exam3-practice.pdf Remove stream question from practice exam 3 Nov 13, 2017
cs1331-exam3-practice.tex Remove stream question from practice exam 3 Nov 13, 2017
cs1331-fall2016-exam1-with-solutions.pdf Add extra practice exam 1 Sep 18, 2017
cs1331-final-exam-study-guide-answers.pdf Add final study guide answers, update final lectures schedule Nov 28, 2017
cs1331-final-exam-study-guide.pdf Add final exam study guide Apr 27, 2017
cs1331-final-exam-study-guide.tex Add final exam study guide Apr 27, 2017
cs1331-style-guide.md Revamp resources page, add checkstyle script to style guide Jan 30, 2018
cs1331.fall2016 Update schedule for final week of semester Nov 28, 2016
cs1331.fall2017 Add final study guide answers, update final lectures schedule Nov 28, 2017
cs1331.json Fix typos Jan 30, 2018
cs1331.spring2017 Add final exam study guide Apr 27, 2017
cs1331.spring2018 Add rpring2018/hw7 Apr 14, 2018
cs1331.summer2017 updated schedule May 12, 2017
customization-tips.md Added missing ! to checkstyle script Sep 19, 2016
debugging.md Add API guide to resources Feb 27, 2016
environment-variables.html added windows 7/8 specific PATH variable instructions to environment … Apr 29, 2016
exercises.html Fix unclosed tag Mar 4, 2015
fall2014.html Initial commit Jan 7, 2015
fall2015.html Update schedule for last week Dec 1, 2015
fall2016.html Update schedule for final week of semester Nov 28, 2016
fall2016.html.jinja2 Rename schedule templates to .jinja2, exclude in Jekyll build Dec 25, 2016
fall2017-breaks.json First draft of Fall 2017 schedule Jul 20, 2017
fall2017.html Add final study guide answers, update final lectures schedule Nov 28, 2017
fall2017.html.jinja2 First draft of Fall 2017 schedule Jul 20, 2017
fall2018.html.jinja2 Add draft fall2018 schedule template Mar 28, 2018
favicon.ico favicon Jan 13, 2015
git.md Add link to Git guide Feb 2, 2018
index-simpkins.html changed index, office hours May 12, 2017
index.html Add Su/Fa 2018 TA recruiting slides Mar 28, 2018
install-gradle.html added mac instructions to install-gradle page Apr 29, 2016
install-java.html Initial commit for Spring 2018, update to Java 9 Jan 9, 2018
javadoc.md Javadocs explanation Oct 3, 2015
officehours-sp17.md updated office hours May 12, 2017
officehours.md Update contact info and make-up info Apr 10, 2018
policies.html Updates for Fall 2015. Aug 17, 2015
pq-peoplebase-master.zip Add pq-peoplebase zip Feb 8, 2017
pq-songbase-master.zip Add pq-songbase practice PQ. Feb 10, 2017
redirect.html Remove redirect autoclick Dec 6, 2016
resources.html Comment-out gradle install on getting started checklist Jan 10, 2018
resources.md Add link to Git guide Feb 2, 2018
schedule.html Initial commit for Spring 2018, update to Java 9 Jan 9, 2018
spring2015.html Remove reference to JavaFX Animations, add Pro Java Apr 15, 2015
spring2016.html Added assignment instruction page Apr 20, 2016
spring2017-breaks.json Spring 2017 Dec 20, 2016
spring2017.html Added summer 2017 schedule May 11, 2017
spring2017.html.jinja2 Added summer 2017 schedule May 11, 2017
spring2018-breaks.json Initial commit for Spring 2018, update to Java 9 Jan 9, 2018
spring2018-reminders.json Initial commit for Spring 2018, update to Java 9 Jan 9, 2018
spring2018.html Add rpring2018/hw7 Apr 14, 2018
spring2018.html.jinja2 Add internal headers to schedule table Jan 9, 2018
summer2017--original.html added mcdaniel office hours May 17, 2017
summer2017-breaks.json Added summer 2017 schedule May 11, 2017
summer2017.html final exam practice Jul 20, 2017
summer2017.html.jinja2 updated schedule May 12, 2017
syllabus.html Update syllabus, fix link to hw0 Aug 21, 2017
ta-recruiting-slides.pdf Add Summer/Fall 2017 TA recruiting slides Mar 29, 2017
text-editors.md Fix "because" spelling mistakes Jan 23, 2017

README.md

CS 1331 - Introduction to Object-Oriented Programming

This repository contains the Jekyll source of the public web site for Chris Simpkins's sections of CS 1331 at Georgia Tech.

Running the Site locally

I used to include GitHub's Gemfile so that we could run the site locally using GitHub's instructions, but GitHub insists on using that awful piece of garbage Nokogiri which means you'll need to lose hours of your life randomly every few months solving installation problems. I'm not a Ruby dev expert and I don't want to become one just so I can run GitHub Pages locally. So I removed GitHub's Gemfile and you can just run the site locally like you would any other Jekyll site:

jekyll serve

And visit http://localhost:4000 in your browser. Some minor Markdown rendering details may differ from GitHub when running locally.

Generating the Schedule

I use my own course tools to generate the schedule each semester. At the beginning of the semester, create a file containing the breaks. For example, summer2017-breaks.json (note that all dates are in ISO 8601 format):

{
    "2017-05-29": "Memorial Day",
    "2017-07-03": "Independence Day Break",
    "2017-07-04": "Independence Day Break"
}

Then run make_schedule.py to generate a starter schedule like this:

make_schedule.py -f 2017-05-15 -l 2017-07-25 -d TR -b summer2017-breaks.json -c cs1331.json -o cs1331.summer2017

This will create a file named cs1331.summer2017 with contents like:

Week 1
2017-05-16;intro-cs1331
2017-05-18;intro-java
Week 2
2017-05-23;values-variables
2017-05-25;programs-methods

You'll need to customize this file, especially for summer semesters. For the rest of the semester, you'll update the schedule by modifying this file and running render_schedule.py like this:

render_schedule.py -s cs1331.summer2017 -c cs1331.json -t summer2017.html.jinja2 -o summer2017.html

Which creates the summer2017.html file. (Remember to update the redirect in schedule.html to point to the new file at the beginning of the semester.)

If you wish, you can use a custom course materials file instead of cs1331.json.

Adding Materials and Reminders

To add materials, edit the schedule file, e.g., cs1331.summer2017 and add text to the third field. For example (note that fields are separated with semicolons, items within fields are separated with commas):

Week 1
2017-05-16;intro-cs1331,intro-java, values-variables;[T-Square Site](https://t-square.gatech.edu/portal/site/gtc-b435-1ace-5039-bb99-451228e2b767)
2017-05-18;control-structures, programs-methods

To add reminders, such as homework links, add text to the fourth field. Note that if the third field is empty, you'll have what appears to be an extra ;. For example (note the line for 2017-05-23):

Week 1
2017-05-16;intro-cs1331,intro-java, values-variables; [T-Square Site](https://t-square.gatech.edu/portal/site/gtc-b435-1ace-5039-bb99-451228e2b767);[HW0 Assigned](summer2017/hw0/hw0.html)
2017-05-18;control-structures, programs-methods
Week 2
2017-05-23;arrays;;[HW0 Due](summer2017/hw0/hw0.html)
2017-05-25;data-abstraction, classes

Note you can make links using the Markdown [link text](link target) syntax.

Be sure to commit any changes to the schedule file, schedule template, and schedule to the repo.

Slides

Some slides are HTML Reveal.js slides produced from Markdown sources. Source files use a .md ending. We use Pandoc to produce the slides

To recompile all slides:

cd slides
for file in `ls *.md`; do pandoc -s --mathjax -t revealjs -V theme=gt -V "slideNumber='c/t'" -V progress=true -o $(basename $file .md).html $file; done

Some slides are PDFs produced from LaTeX Beamer sources. Source files use a .tex ending.

As of Fall 2016 I'm moving to PDF slides produced from org-mode sources (with a .org ending). Students seem to prefer having printable copies (and the print CSS from Reveal.js doesn't always produce nice results), I like not having upstream changes to Reveal.js and Mathjax suddenly break my slides, and using org-mode gives me succinct source syntax like Markdown with the power of LaTeX/Beamer. Go Emacs!