Skip to content

taivlam/cps140

Repository files navigation

CPS 140 - Fall 2020

GitHub Pages Site

Background

This is my GitHub repository for my work in CPS 140, fall 2020.

  • The textbook used was Web Development and Design Foundations with HTML5 (9th Edition) by Terry Felke-Morris.

  • In my class, we mostly followed the book with the JavaJam Coffee House project as part of our weekly HTML/CSS assignments.

  • Even though the book I used assumed users were on Windows, I viewed this class as an opportunity to force myself to use Vim as much as possible (the CLI version of gVim, with only a few modifications for "smart" indentation and syntax highlighting) while on Linux. I've used Vim before, but not seriously; and it was mostly supplemented by either nano or gedit.

  • Also, I occasionally used VSCodium, the completely F(L)OSS version of Microsoft's Visual Studio Code/VSCode that has telementry/tracking removed. VSCodium definitely helped me to avoid a few severe HTML/CSS errors or mishaps - however, this probably matters if coding is part of your daily job and your livelihood depends on it.

Some Random, Not Very Nicely Catagorizeable Rant Points

Not like I'm an expert, but - sooner or later - the only way to learn how to program/code (in any language - just start somewhere, similar to Linux) is to make silly mistakes that cost you at least 1-2 hours of confusion; only to find out that you've forgotten the final ; in a CSS rule or you forgot the opening/closing HTML tag.

Adding something like the ALE plugin (for IDE functionality in Vim - which I didn't do), pimping out your .vimrc configuration file to supercharge your programming (which I didn't really do), or using VSCodium (which I sometimes did) isn't going to autocomplete the task of coding for you - well, at least until the singularity or Hollywood-esque AI takeover happens.

Also, not to be agist, the author is probably way too old to be writing about a technical landscape that, in this rare case (unlike most undergraduate mathematics and natural sciences textbooks), actually experiences significant changes every 1-4 years. I mean, the author goes about typing hyperlinks and URLs with http, instead of https for example - c'mon! It's 2020, not 1990, and non-technical people are becoming more and more aware that "non-padlocked" sites are not to be trusted with sensitive information (such as credit cards) at all - if their browser doesn't catch onto this fact in the first place. Also, the author speaks of GIFs as if they're super outdated - which would be fine as a stuffy subjective opinion about file formats/codecs - that is - if GIFs weren't plastered all over the internet as one of the de facto file formats for memes on image sharing sites such as Imgur and Reddit.

The "Origin Story"

I started to invest effort and time in simply setting up this repo for submitting source code and to show that my JavaJam Coffe House site works, after completing my weekly assignments, because Blackboard (erroneously) complained that my CSS file had a security risk for Week 4 and refused to let me upload my assignment.

Setting up a GitHub Pages site was just a convenient side effect and an inevitable item to cross off from my bucket list.

Oh Yeah - a Disclaimer on "Cheating"

On one hand, I suppose the people actually stuck with the "kindergartner" mindset (which is objectively bad - but I won't get into that, because this repo is for my schoolwork, not my waxing philosophy opinions) can try to argue that I'm "enabling" students to cheat. However, on the other hand, I'm going to tell those who are still using the 9th edition of the book to write the code themselves, even if they happen to end up rewriting my code.

It's a bit like tracing when one first learns to draw by teaching him/herself - of course you shouldn't go around and tell everyone that your trace is your own original artwork. Yet, as an absolute beginner, one can still learn quite a lit by tracing in art. As long as the ultimate goal is self-sufficiency (i.e., not longer tracing/copying code anymore in the near future), there is nothing wrong with the utilitarian MO of tracing in art or copying code in programming - especially when one is starting in their own respective crafts.

And, since I'm not the devil's advocate academic obsessed with "hypothetical" situations and putting of cardboard-front opinions that s/he doesn't actually believe in, I wouldn't be saying all of this if I also didn't experience this, either.

Hands-On Exercises

I have the source code for all of the Hands-On Exercises each chapter (because let's face it - there are some serious typos and incorrect figures accompanying what the resulting exercises that are shown for these practice exercises and in the suggested solutions of the "Student File" ZIP archive, if your professor provides them to you; the book claims that having a valid license to the e-book will grant you access to the "Student Files" folder and the Video Examples, but of course it's impossible for me when I try to do this myself... thanks Pearson, I hate this).

However, I have decided to not make working webpages of these practice exercises (because there would be many, many more web pages on the GitHub page than with just the JavaJam assignments -- which this GitHub repo was created for and will primarily aim to host).

Anyways, these are probably clues that this textbook has the rampant disease of "new edition every 2-3 years (for all the wrong reasons) by nominally changing the exercises and figures in rather trivial ways so that the publisher can make more money, but not check for correctness/accuracy".

I don't claim I am 100% accurate with these Hands-On Exercises (and I'm trying to be more accurate than the publisher provided Student Files), but I ultimately don't claim liability if you use them for class and get points taken off or other situations.

Feel free to make a pull request or raise a GitHub question if you think you see a typo - as they say in statistical mechanics, the longer a piece of writing is, the more likelihood of you coming across a typo increases.

A Note on Chapter 12's JavaJam Assignment

I ended up doing Chapter 12's JavaJam Assignment anyways, and it was annoying to carry over the work into Weeks 13-14 (not realizing that I'd have to some fancy Git and/or Vim maneuver to inject Week 12's changes into Weeks 13-14 in a non-conflicting way). I'm sure there's a way, but luckily I only had to yank and put text between two different terminal emulator instances of Vim manually for a small number of files and for 2 weeks.

However, my result looks a bit different than the pictures in Chapter 12 -- but then again, the textbook could've changed the directions from a previous edition and forgot to change the pictures for this edition. Also, the "placeholder" webshop doesn't work anymore, as of March 2021.

I see why this JavaJam would lead instructors to skip Week 12...

Other Implementations

  • Unstructured and rambling notes for each of the chapters
  • Implement a simple CSS dark theme across home page and all Weekly Notes (Chapter 10 and Chapter 12 are left alone with their respective embedded CSS)

License

All the HTML, CSS, Javascript, Markdown, and LaTeX files contained herein are licensed under the GPL license, version 3. The image, video, audio, and Flash assets are copyrighted material the use of which has not been specifically authorized by the copyright owner, Pearson Higher Education, Inc. I am using such assets under the "Fair Use" doctrine of copyrighted material for educational purposes, as provided for in section 107 of the US Copyright Law.