Coder Social home page Coder Social logo

ex-references's Introduction

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!

ex-references's People

Contributors

davelillethun avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.