Classes begin in this course on Tuesday, January 9, 2024, and you should make a special effort to be present online for the first class and recitation/lab.


Course material

The assigned text for this course is the online zyBook, but additional material will include online documents, as well as sample files and code from various sources. Material presented and discussed in our live online sessions will not necessarily appear on the course website, but since you will be responsible for everything covered in class and/or recitations, it will be important that you attend both classes and recitations.


What you should know before taking this course

Of course you will need to learn more about HTML5, CSS3 and JavaScript as the course progresses and you work on your website development. Of particular interest and utility are the following:


Overview of the course and our development environment

  1. Welcome, introduction, and course structure, including the three main websites (Brightspace, legacy, and zyBook)
  2. Grading scheme
  3. Discussion of the zyBook relevant to this course
  4. Course website overview, including additional resources
  5. Brief look at the various Amazing Stuff website versions
  6. Description of course accounts and the submission procedure
  7. Discussion of the development environment and some of the software tools we'll use, as outlined below

Things you should know about our development environment:

  1. We will be using Linux, and you will have a new course account on the ps.cs.smu.ca server, with a username like u##. This machine is actually a virtual Linux server running Ubuntu, and has all the software we will need: PHP, phpMyAdmin, MySQL, MongoDB, and (possibly) NodeJS. You will be assigned your account at the appropriate time.
  2. To access our Linux server, you can use a Windows machine on campus (where you would use your s-number account), or from home using either a Windows or Mac machine.

Client-side (Windows and/or Mac) software:

  1. The Firefox, Chrome, and Edge Browsers
  2. For Firefox or Chrome, the "Web Developer" browser add-on written by Chris Pederick is a handy one to have, especially for web page validation
  3. Visual Studio Code is the recommended software for editing markup and code for your website, since it is cross-platform and you can use it to log in and work directly on the server.
  4. KiTTY on Windows or ssh on Windows or the Mac can be used for a "terminal emulation"-type connection to our Linux server
  5. WinSCP for Windows or Cyberduck for the Mac, or any similar program, can be used for file transfer
  6. Adobe Reader for access to pdf documents

Server-side (Linux) software:

  1. There are lots of editors, but the nano editor is a simple one available at the command line, and if you are a Vim user you can expect to find it there as well. But ... by far the best option is to install Visual Studio Code on your local machine and use it to connect to, and work directly on, the server.
  2. When you log into Linux via KiTTY or ssh or any similar program, you will have a command-line window open on Linux, so you will need to know how to navigate around in your Linux account and do simple tasks like moving, copying or deleting files, and creating, populating and deleting subdirectories, as well as some basic familiarity with Linux file and directory permissions for web development.
  3. On the Linux system you will find the ispell spellchecker a handy tool. To use it give the following command (for example):
    ispell filename.ext
    

Discussion topics for our online sessions

The following material on PHP and MySQL is directly relevant for the development of your website. There are zyBook chapters dealing with these topics and other chapters or chapter subsections contain additional material that you may need or find helpful as well, but getting comfortable first with PHP and then with MySQL is what you should start working on immediately, since both of these will be crucial throughout the course and your website development.

up-arrow PHP: See the zyBook Chapters 12 and 13 (and W3Schools PHP)