What's New: Current (and Old) News
The most recent course news appears first. Scroll down, if
necessary, for "older news".
Students taking this course are expected to maintain familiarity
with the content of this page.
Sat, Apr 16, 2022
First, let me say this. We started the course with 39 students. Five dropped out along the way, and we ended the term with 34. Most of you (but, unfortunately, not everyone) worked very hard on their website development, which was the main focus of the course, and I would like to share with you a message from Nik, whom you all know as our TA, and with which I heartily agree:
"The final result of some of the (website) submissions went above and beyond, and deserve to be singled out on the basis of excellence. [Here are] my favourite submissions from the semester, in no particular order:
And a big thank you to Nik from me, and on behalf of all of you, for all his hard work evaluating your websites throughout the term!
Here is a summary of the 34 marks (m) on the final exam (out of 54):
m >= 50 ... 11 50 > m >= 45 ... 9 45 > m >= 40 ... 6 40 > m >= 35 ... 6 35 > m >= 30 ... 0 30 > m >= 0 ... 2
And, finally, here is the grade distribution (grades will be available after the next Banner "rollover" later today):
A+ A A- B+ B B- C+ C C- D F 22 2 1 0 3 1 0 0 1 1 3 (total = 34)
Mon, Apr 11, 2022 (much later)
First, Dr. Muir tells me that the response to the survey on recitations has so far had only a so-so response, so please give us your support for continuing recitations if you have not already done so by filling out and submitting the form. Here again is the link: https://forms.office.com/r/sBKusCpnEp
It's 9:55pm and I have just finished the exam, subject to a review tomorrow to look for any possible problems in the cold hard light of day. Here are a few notes:
Mon, Apr 11, 2022 (later)
It's 4:30pm and I'm just getting back to the exam. So ... it might not be completed by the end of today after all. But ... it's looking like all the questions will be coming from the zyBook, and mostly from the last three chapters on PHP and MySQL. I think I'll probably use their regex questions as well (they're likely easier than any I would make up), but do note that the term-long assignment included regex material from both JavaScript and PHP. More to follow ...
Mon, Apr 11, 2022 (earlier)
Still working on the exam ... should have more info here later today. In the meantime, your accumulated points (out of 1000) have been transferred from the term-long assignment in the zyBook to Brightspace, so please check to make sure that the number is the same in both places. There was an initial problem with the transfer, but that has now been fixed. Congratulations to the seven who got the full 1000 points, and, in fact, almost everyone got more than 900, so congratulations to everyone!!
Thu, Apr 7, 2022
In today's session we began with a comparion of the two versions of the "account surfer" tool, followed by a brief discussion of the "cross-site contamination" problem caused by the fact that all of our uxx accounts are essentially subdirectories on the same server. Then (thanks to Ayumu Saito of u32 and Selena Carter of u04) we were able to examine in some detail a couple of websites at or nearing completion.
Tue, Apr 5, 2022
In today's first session we completed our discussion of the shoppng cart and checkout features of the Amazing Stuff version 6 website.
In the second session we discussed the front-end, back-end and usage of the "account surfer" tool that is a work-in-progress by Nik and myself. The challenge now is to find a way for PHP to determine whether a directory on web is empty (not a directory on Linux, note). Any ideas? We ended with our usual breakout-room session.
Mon, Apr 4, 2022
Our little "account surfer" tool has been supercharged by Nik, with some further refinements by myself, so I guess he's the one that rose to the challenge. If you have a minute, give the new version a try.
Thu, Mar 31, 2022
In today's session we started with a reminder to please fill out the survey that was mailed out recently. Then we showed how to clean up any "tmux garbage" you might have hanging around (and there seems to be quite a bit). Next we looked at a revised version of the "account surfer" PHP script and I threw out a mini-challenge related to it. Then we looked at the front-end and back-end aspects of deleting shopping cart items in the Amazing Stuff 6 website. Finally we continued, but did not finish, our discussion of the shopping cart page and script. I also pointed out once again the potential problems you have if you use the same name for a global PHP variable that is used in two different ways, in the context of my "$trying" variable. This was also a good chance to remind everyone how useful the "grep -rni" command can be. We still need to finish the shopping cart and checkout discussion.
Tue, Mar 29, 2022
In today's first session we discussed the various ways one might handle tax on customer purchases, what to store and not store in your database tables, and how important properly using image aspect ratio is if you want your images to display uniformly. Then we clarified (I hope) the distinction between an "order in progress" and an "orphan order" with purchases by two separate customers while monitoring the "behind the scenes" table activity with a mysql login and use of the paus_run script to verify that queries submitted to the MySQL database by PHP were performing properly.
In the second session we compared and contrasted the logout process in Amazing Stuff 5 and Amazing Stuff 6 (AS6 has a "cleanup" logoutProcess.php script that was not present in AS5). Then we discussed the necessary changes in the loginProcess.php script to handle the situation when the user starts to buy an item without being logged in, then logs in, and is returned to the shopping cart with the item of interest showing. Finally we had our usual breakout room session.
Thu, Mar 24, 2022
In today's session first discussed the discrepancy in the login behavior between Amazing Stuff 4 and Amazing Stuff 5 when a bad username or password is entered. We then went into depth on the shopping cart behavior, both from the user point of view and montoring what was going on "behind the scenes". I experience a weird blip when the data in my customer table suddenly disappeared, requiring me to re-register twice so that I could continue with two users. That amazing event on my Amazing Stuff 6 website has yet to be explained.
Tue, Mar 22, 2022
In today's first session the first major topic was a discussion of the recent non-credit quiz on regular expressions. Then we began our overview of what the front-end customer experience in version 6 of your website should be.
In the second session we continued our version 6 front-end discussion and ended with the (by now usual) break-out sessions.
In today's session we began a more detailed look at some of the
Thu, Mar 17, 2022
In today's session we began a more detailed look at some of the SQL script files from mysql_examples.zip. Toward the end of the session we had another breakout-room session during which the breakout-room participants worked on our second non-credit quiz exclusively on regular expressions. Also, here are some take-away notes from today's session:
Wed, Mar 16, 2022
In the files that you get when you unzip the examples_mysql.zip file, you should delete the files h33, h33a, h39, h40, and h43 because they will either not work at all, or delete something you probably don't want deleted after you get your president's table set up.
Tue, Mar 15, 2022
In today's first session we began with a reminder that when you are scaling down your images to "thumbnail" size for display on your product page (if in fact you're going to do that), be sure to specify only one dimension for your image size (width is usually best), so that your images retain the proper "aspect ratio". We then had a "sneek peek" of what is coming up in the final Submission 06, Finally, we completed our discussion of regular expression lookahead.
In the second session we completed our regular expression discussion by looking at the greedy/lazy dichotomy, and ended with our usual breakout-room session. If you missed our regular expression discussions you should check out all the sample programs ... there will be questions later ...
Thu, Mar 10, 2022
In today's session we began completing our discussion of the overview for Submission 04, but reviewing the discussion of the catalog page and corresponding catalog-processing script, and then the category page and its corresponding category-processing script. In the remaining time we returned to our examintaion of regular expressions, finishing the sample program illustrating captures and the first two examples in the lookahead sample program.
Tue, Mar 8, 2022
In today's first session we began with a brief discussion of debugging in the web context, and the use of the PHP echo statement for helping to identify PHP script problems. We then started our overview discussion of Submission 05 in which you will implement your product catalog. We compared and contrasted the catalog feature in Nature's Source Chapter 10 as well as Amazing Stuff version 4, highlighting the use of the urlencode() function. Toward the end of the session we had a breakout-room, 8-question, 10-point, 20-minute non-credit quiz.
In the second session we began by going over the quiz held in the previous session, after which we continued our discussion of Submission 05, and completed that discussion except for the page and script dealing with the individual products in a given category.
Mon, Mar 7, 2022
Another bug has shown up in Amazing Stuff version 4 ... the popups indicating to the user what is required for a valid password neglected to mention that at least one digit is also required. That has been corrected in version 4 (and also, I hope, in versions 5 and 6). The regular expression required it, but the user would not know that from the popup. [Thanks to Liyan De Silva for pointing out this discrepancy.]
Thu, Mar 3, 2022
In today's session the first major topic was a discussion of how to work with the contents of the examples_mysql.zip file, which is available for download from the u30 public directory. The second major topic was a continuation of our regular expression discussion, this time emphasizing the "capture" feature.
Tue, Mar 1, 2022
In today's first session we completed our discussion of what is needed to carry on with, and complete, Submission 04 of your website development, specifically the login and logout pages and the login script. Also noted was the change in the estore.php script to output a different message, depending on whether the user got there by choosing to "log out" without actually logging in, or choosing to log out after being logged in. It was also pointed out that a bug in the Amazing Stuff version 4 website that caused the "personalization" information in the banner to disappear when the "sorry page" was displayed, as well as when the original static pages of the earlier versions of the website were displayed, had been fixed (the required call to session_start() was missing from those pages).
In the second session we got back to our discussion of regular expressions in the PHP context, and completed our look at the examples in test_regex_general.php. And once again, we separated into breakout rooms at the end of the session for discussion of Submission 04.
Thu, Feb 17, 2022
Today's session began with a reminder that you will have to be working to get as much done as you can on Submission 04 during the break week, since there is much to be done, and you will only have one week once we get back from the break. Then we noted that both the popup problems in Amazing Stuff 4 and the error in phpMyAdmin has been solved, so we did a short overview of phpMyAdmin, which you can use to create your customer table if you prefer a GUI interface to the command-line interface to MySQL that we discussed earlier. We also illustrated (again) the very handy "grep -rni" command, and showed how to re-execute previous Linux commands (possiblyl after modification) using the Linux "history" command. Then we continued with our discussion of Submission 04, behind the scenes, starting with another look at connectToDatabase.php, the critical script for connecting PHP to your MySQL database. Note that each file in the common subdirectory has to be modified as you go from Submission 03 to Submission 04, though the changes are minor except for banner.php which now has to "personalize" the Welcome message. Then we looked at the formRegistration.php file and the associated script(s) formRegistrationResponse.php and formRegistrationProcess.php (these last two can easily be combined). Finally, we did a quick poll that seemed to indicate that the class in general is still finding the breakout rooms helpful for exachanging ideas and seeing what others are doing.
Tue, Feb 15, 2022
In today's first session we began by noting that the access problem to the MongoDB test database that some accounts were having had been rectified, and that the Brightspace grades for Submission 02 might (or might not) eventually show up as out of 40 rather than out of 100 (either way, it does not matter; we can handle the arithmetic on the final spreadsheet). We then started our discussion of MySQL, and the command-line interface to MySQL in particular, along with some of the most-used and most-ueful commands. In this context we also looked at the MySQL customer table to be used in the Submission 04 version of your websites.
In the second session we looked at the Submission 04 registration, login, and logout processes from the customer's point of view, noting the changes and new pages and corresponding scripts needed for this next version of your websites. We also discussed a standalone version of the connectToDatabase.php script for connecting PHP to the MySQL database, and ran the script from the command line as well as in the browser.
Fri, Feb 11, 2022
The grades for Submission 02 have now been posted on Brightspace, but you will note that your mark is showing as out of 100, as oppposed to out of the maximum of 40 points alloted to the rubric. This is not a major problem, since the realtive mark would still indicate how you did on the submission, and you have the rubric feedback, but for consistency the marks will probably be adjusted back relative to the 40 maximum at some point.
Thu, Feb 10, 2022
Note on today's MongoDB problem:
In the exercise at the end of today's session some
students had a problem with the mongoimport command, in that it
worked to import a JSON file into their uxx database but not into
the test database. Turns out that was a problem with the system,
which has now been fixed, I believe, by our amazing technician,
Nikita. If you were having that problem, please give it another
try and it should now work fine. The problem seemed to be with
lower account numbers, probably u08 and under.
In today's session we finished our discussion of what is necessary for the completion of Submission 03 (the MongoDB database of quotes and PHP script to access them, as well as the feedback form, its "four outputs", and the PHP script to produce them). The last part of the session was devoted to the latest exercise under Recitation/Lab Activities on the course home page, and I recommend that everyone try that exercise to make sure you are "up and running" with getting your quotes into MongoDB before trying to incorporate them into your Submission 03 website.
Tue, Feb 8, 2022
The final exam in CSCI 3829 will be held online in Brightspace on Wednesday, April 14, 2022 from 2pm to 4pm, Halifax time. Note that it will be two-hour exam, not a three-hour exam as shown in Banner.
In today's first session we started our discussion of the details necessary to complete Submssion 03. So we began by introducing the MongoDB command line and illustrated a number of commands that can be used in that context. Then we showed the required format of a JSON file (of quotes, among other things) for import into MongoDB, and the Linux command-line syntax for importing such a file.
In the second session we finished our MongoDB discussion and then moved on to discuss the Submission 03 feedeback form, a discussion that will have to continue into the next session on Thursday.
In today's session we began with a quick look at the System and Web
Thu, Feb 3, 2022
In today's session we began with a quick look at the System and Web Info group of examples on the examples_php_annotated page, noting in particular the use of the PHP getenv() function and the use of backticks in a PHP script to get the output of a Linux command in the script. Then we discussed the (revised) script illustrating the PHP $_SERVER global array, followed by a look at the various array sorting methods in PHP via test_sorting.php. Next we started our look at PHP functions for dealing with regular expressions, via test_regex_general.php. Finally, we looked at how to access mongodb on ps.cs.smu.ca, and how to access the roundcube mailer on cs.smu.ca. Both of these are critical to the upcoming Submission 03.
Tue, Feb 1, 2022
In today's first session we discussed PHP arrays in some detail and also started our discussion of regular expressions in general and in PHP in particular. The discussion centered around the last three examples in the "Core" group of the examples_php_annotated subdirectory. See the relevant links on the course website for much more on regular expressions.
In the second session we began by looking at a couple of "workflow enhancements, one for tmux (use of the mouse) and one for vim (how to define and use macros). Then we illustrated these workflow enhancements during the discussion of several of the PHP examples in the examples_php_general directory. See the readme.txt file in that directory for the files we discuss as we move along, and note as well that all the JSON/PHP examples have been gathered in the examples_php_json directory.
Thu, Jan 27, 2022
In today's session we began by looking at a simple PHP class and how to create objects of the class and access their properties. The we looked at several ways to convert JSON to PHP (and back again), and then put that knowledge into the context of the quotes for version 2 of your websites as we dissected the Amazing Stuff 2 get_quotes.php script. We saw again the conveience of using tmux in a PuTTY login to experiment with PHP files, and ended with a quick demo of the difference between == and === in the PHP context.
Tue, Jan 25, 2022
In today's first session we began with a summary of zyBook signups and progress on the term-long zyBook assignment, and a summary of uxx account logins, followed by some instructor comments about the Submission 01 submisssions. Then we began our detailed discussion of Submission 02 requirements, starting with a comparison of the directory structure and files of the sample Amazing Stuff version 1 with those of Amazing Stuff version 2. We then used the three "Welcome" examples in Chapter 8 of the Nature's Source website to introduce a number of things: the PHP date() function, actual use of \r\n, the $_SESSION global array variable and how sessions work, the PHP rand() function, if..else in PHP, the use of the hidden attribute to pass information from the server to the browser, and how to set up an AJAX communication "from scratch". The we looked at how all of that fit into the banner.php setup in Amazing Stuff version 2.
In the second session we began by looking at how Amazing Stuff 2 handles the rotating images on the home page, via the file of images and image labels in the resources subdirectory and the JavaScript "carousel" function in the carousel.js file in the scripts directory. Then we separated into breakout rooms with three students each (mostly) and those in each breakout room got to meet each other and have a look at, and comment on, each other's website.
Sun, Jan 23, 2022
I've been looking at some of the already-submitted websites, and here are a couple of comments. I am disappointed that several of you have opted to use the same quote I used on Amazing Stuff 1 ... that was certainly not the intention ... you should be finding and using your own quotes. And many are not using the "quote template". On the other hand, a number of sites are fine on both counts. Some sites occupy quite a bit more "real estate" than Amazing Stuff 1 when viewed on a desktop computer. Not a great problem, but there does seem to be a large amount of "empty space" in some cases. Finally, I have only viewed home pages so far, but I'm also seeing some very nice-looking websites.
Thu, Jan 20, 2022
In today's session we began with a reminder to those students who had not yet confirmed that they had access to their server accounts that it was way past time to have done so. Then we looked at and I commented on the tree structure of several submission01 directories. Next I discussed in detail the use of the HTML base tag href attribute value (an absolute URL) and how every other href attribute value on your website should be relative to that value. Next we reviewed the PHP REPL and introduced tmux as the best way to experiment with PHP script files on the server. Finally we returned to the sample files in the examples_php_annotated subdirectory but only had time to discuss the PHP heredoc.
Tue, Jan 18, 2022
In today's first session we began with another quick overview of the requirements of Submission 01. Then we began our discussion of the PHP programming language by referring to Section 12.2 of the zyBook while also looking in detail at the examples in the examples_php_annotated folder (the four examples in "PHP includes" and the first eight in the "Core Language Group").
In the second session we introduced interactive PHP so you can test PHP language features at the command line, and then we had a hands-on get-familiar-PHP (not-for-credit) exercise that most attendees managed to complete during the session.
Thu, Jan 13, 2022
In today's session we began by reviewing quickly last day's overview of what is required for Submission 01, the first version of your website. We then continued that discussion, emphasizing the importance of the same "look and feel" across your site (achieved by including the "common" parts of all pages from the common subdirectory), as well as the fact that your site must be "responsive" and look good whether viewed on a desktop computer, tablet or smartphone (using the CSS from W3.CSS will help you achieve this goal). We also emphasized the importance of validation of both HTML and CSS and saw a couple of ways to perform the validation. We again used the Linux tree command for one view of a website structure, and introduced the Linux grep -rni command to show the location of a search string in various files. You now have the Submission 01 description and checklist, the Brightspace rubric that will be used to evaluate your site, and version 1 of sample Amazing Stuff website to use as guides for the development of your own version 1 site (due Sunday, January 23).
Tue, Jan 11, 2022
Today's sessions were concerned with getting everyone "up and running" in the course, and on the same page, insofar as that is at all possible. If you missed one or both of those sessions, I recommend that you watch the recordings, which are available in the Cloud Recordings section under the Zoom link on the course Brightspace page.
The first session provided a course overview, including how Brightspace and the "legacy" course website fit into the picture, the grading scheme, the six-stage website development, the zyBook and its major term-long assignment, and how we will use the Zoom chat, e-mail and the One-On-One (Office Hours) Zoom link for help during the course. An important thing to note and remember is the extent to which the course will be "non-linear", which means that it will be important to know where to find the various sample programs and other material we will refer to in our discussions (under the links on the menu on the course home page, in the zyBook, and so on).
Today's second session concentrated on Submission 01, and all that will be necessary to meet the specifications of that first stage of your six-stage website development. We will review and continue that discussion next time.
Fri, Dec 31, 2021
An email was sent out this morning to all students enrolled as of the morning of December 31, 2021. If you did not receive the email (or you enrolled after that time) you should read the content of that email, which is here.
Tuesday, December 14, 2021
This course will use an online text from zybooks.com. See the link in the menu at the left (Current Course Text) for signup details, and be sure to read that document completely and carefully before signing up. You can sign up as early as December xx, 2021.
Most of your effort during the term will be devoted to the development of and "e-commerce" website, but there will also be a major assignment based on activities and labs in the zyBook. The first day's sessions will describe everything in detail.
You will get a Linux account for use in the course, so be careful not to confuse these username/password combinations:
u##
and its password), which will be an account on the
(virtual) ps.cs.smu.ca
Linux server.
The password for this account works not only for the account itself, but also for a number of other different course-and-account-related scenarios, and must not be changed, since the marker and the instructor will need access to your work in all of these scenarios.
Every Saint Mary's student should be aware of the following: