-
Extension clarification
I guess I thought that the assignment was due tonight, which is why I gave the extension ’til tomorrow night…but now that I learn it was already due tomorrow night, I guess I’m now saying it’s due Saturday night, the 23rd. Sorry for the confusion!
-
Last-minute stay of execution
A couple of students are dealing with some pretty gnarly bugs that aren’t their fault, and I’m troubleshooting. I’m going to extend the homework #8 deadline until tomorrow, Nov 22, at midnight.
-
Quiz #6 (of 7) posted!
Quiz #6 has been posted to Canvas, and is due midnight Monday Dec 2nd. Please note that it is absolutely closed-Python, and timed at 55 minutes. Quiz #7 will be released over Thanksgiving break sometime, and will be due the last day of the semester (Friday, Dec 6th). There will be only 7 quizzes, not…
-
The “no such package pymongo” problem
Do be very sure that in your virtual environment, you have run: $ pip install flask at some point. If you have not, then typing “flask run” will run the system-wide flask (in /bin) which uses the system-wide Python installation (without pymongo installed), not your venv at all.
-
Final Galaxy Explorer example(s) posted
Here’s the completed Galaxy Explorer example. Note that the first class chose Redis lists (Riley’s choice) to store each user’s favs, whereas the second class chose Mongo (Dylan’s choice). Both are fine alternatives, and if you’d like to see the code for either one, feel free to snoop on either version: 12:30pm version 3:30pm version
-
Seeing the correct answers after taking a quiz
I was astonished just now to learn that apparently, my Canvas settings were set so that students cannot see the correct answers after the quiz! :-O That seems like the dumbest thing in the world — you give an answer to some multiple choice question, and then discover you were wrong, but not what the…
-
Programming contest props
Congratulations to Bethanie Hackett, Sully Smith, and Matt Vierow for their outstanding showings at the ACM regional programming contest at CNU this weekend! Sully’s team chose to compete at the daunting Division I level, and got four of those uber-hard problems correct! Bethanie’s and Matt’s team, on the other hand, chose to enter the Division…
-
Steps to create a new Mongo database and collection
There aren’t any. Really. Like many things in NoSQL, you just “use it as if it exists, and then it magically does exist.” Try typing some variant of this into the Python shell: >>> import pymongo >>> mc = pymongo.MongoClient(“mongodb://localhost:27017”) >>> db = mc[‘randomName1’] >>> db.randomName2.insert_one({‘someKey’:’someValue’}) You will discover if you then log in to…
-
The Galaxy Explorer example (so far): 12:30pm version 3:30pm version
-
Assignment #8 posted!
Assignment #8 has been posted, and is due a week from tomorrow. Feel free to think creatively about how you might use Mongo to augment your database tour. You don’t have to religiously follow what I’ve done!
-
Office hour switch
My car needs an oil change. For today only (Nov 14) I’ll have office hours 2:30-3:30pm instead of the usual 11:30am-12:30pm. Sorry for any inconvenience!
-
Quiz #5 posted!
Quiz #5 has been posted to Canvas, and is due Friday at midnight. It is open-notes, closed-Python, open-class-cheat-sheets, timed at 45 minutes, and must be completely entirely on your own, with no help from others (even others not currently at UMW). Good luck!
-
Back to our regularly scheduled program
As of this week, I’ll be returning to the O.G. office hours I established at the start of the semester.
-
Assignment #7 on the board
Assignment #7 (and its rubric) are in the books and on the scoreboard. Hey let’s give a big hand to Sushi, VeryCuteIRL and Demarcus Cousins as they devour their pints of Strawberry Cheesecake ice cream — yummm!!
-
No class on Thursday (11/7)
Sorry to have to cancel class right after the Election Day cancellation, but it can’t be helped. Work on your Mongo Star Wars activity, and read up on aggregation pipelines in preparation for next week!
-
No office hours tonight (Tue Nov 5)
I’ll be on email, though, so please do send questions! Depending on the timing, I might also be able to hop on Zoom.
-
Gah! Forgot about office hours tonight
I simply forgot all about office hours tonight (Mon the 4th) — sorry, guys! I can meet on Zoom between now and 9 if you’d like. Just drop me a line.
-
Practicing with Mongo
If you’d like to actually use the Mongo command line (mongosh) to work on last Thursday’s activity, log on to cpsc and then type: $ mongoimport –db yourusername_sw \ –collection characters \ –file /srv/cpsc350/starwars_pre_mongoActivity.json \ –jsonArray where yourusername is your user name. Then, you can do: $ mongosh test> use yourusername_sw switched to db yourusername_sw…
-
Assignment #6 graded
Great job on your first “real” websites, everybody! Wow, there were some eye-popping ones, some snazzily-functional ones, and some of both! Here’s the rubric I loosely used. Also, in a striking coincidence, would you believe I was actually working on a pint of Americone Dream® as I was grading this. :-O What are the chances?…
-
MongoDB cheat sheet
Here’s the electronic version of today’s cheat sheet.
-
issue solved
Okay, I believe the Redis installation has now been configured correctly and won’t lose any more data. Still follow the advice I gave in the previous post, though, and put your bulk import work in a file rather than entering it interactively.
-
Warning: Redis possibly acting flaky
Ian and I are on the trail of a possible misconfiguration of the Redis installation on cpsc. While we diagnose that, let me give you this piece of advice (which is sensible anyway, regardless of this problem): if you’re going to be entering data in bulk (say, by typing lots of Pokémon stats, or lots…
-
Final hobbies app versions posted
And finally, the finishing touches on our hobbies example, which allows for multiple non-conflicting users by means of the session object: 12:30pm version 3:30pm version
-
Instructions for setting up separate dev/prod installations
Here are the instructions for getting a second Flask instance up and running on your other port, for use in development.
-
Redis password on cpsc
A Redis installation has — get this — a single password, shared among all users for all logical instances. This seems comically insecure, but hey I just work here. Ian and I have turned on this minuscule authentication mechanism on the cpsc server. In order to access Redis from the command line, you’ll have to…
-
Ignore my parting comment
At the end of class Thursday, I told the 3:30pm class that I had mistakenly put a couple questions on quiz #4 that we hadn’t covered in class. Since no one has taken the quiz yet, though, I just now safely removed these two questions. So now the entire quiz has fair-game questions and you…
-
Assignment #7 posted!
I went ahead and posted assignment #7 so you can take a look at it and get your creative juices flowing. However, don’t actually do anything to your flask instance that’s running your assignment #6 for me to grade, until Tuesday’s lecture when I explain how to use Docker to maintain separate versions of your…
-
You and your hobbies
Here’s the git bundles for our hobbies example so far: 12:30pm version 3:30pm version
-
“Open notes”
To be clear, “open notes” (on the quiz) includes cheat sheets I’ve posted, the in-class activities we’ve done, and anything else posted to this website.
-
Quiz #4 posted!
Quiz #4 has been posted to Canvas, and is due next Wednesday at midnight. It is open-notes, closed-Python, closed-Redis, timed at 60 minutes, and must be completely entirely on your own, with no help from others (even others not currently at UMW). Hint: reviewing Tuesday’s Redis example, as well as Thursday’s XP-bearing activity, would be…
-
Tuesday’s example, and solutions
The example Python/Redis program we did in Tuesday’s lecture is now posted. The output was: D 0 1 5 4 2 0 1, 4, 2, 3 SLIME GO mary wash
-
Redis cheat sheet posted
Here’s the first version of our Redis cheat sheet.
-
Assignment #5 graded
The Filbert assignment has been posted to the scoreboard, and with that, I am (at least temporarily) caught up with grading! :-O And speaking of the scoreboard, a big shout out for Russell Goplethane, buzzlightyear, Demarcus Cousins and everyone else working out their issues in Chocolate Therapy!
-
Assignment #3 grading: special case
Several students (mis-)interpreted the assignment in the same way, which leads me to believe my directions weren’t clear on a certain point. If you were one of these students whose program messed up on this specific issue, you have a chance to update and resubmit it to me and I’ll regrade it. The specific issue…
-
Assignment #3 (finally!) graded
Assignment #3 has finally arrived at the scoreboard, and pulled into the gate. Here’s the rubric, which I stuck fairly closely to but not religiously. Again, I only checked a subset of things. Let’s hear it for daveeCroket, ColmTheGOAT, smallcadenza and our other Everything But the‘s!
-
Final git bundles for B&J website
The final versions of the git bundles for our Ben & Jerry’s website example are now available: The 12:30pm version The 3:30pm version
-
Assignment #6 posted!
Assignment #6 has been posted, and is due a week from tomorrow! Get those creative juices flowing, and give yourself plenty of time to succeed on this complex undertaking!
-
url_for()
Some questions have arisen about the url_for() function. Basically all this does is cobble together a string of text which will be the legitimate URL of some page on your website. To call it, you pass it two things: A string with the function name that you want Flask to call when this URL is…
-
git bundles updated
The git bundles for our Ben & Jerry’s website have now been updated with Thursday’s contents: The 12:30pm version The 3:30pm version
-
codingbat → leetcode
Happily, several students are telling me that they have reached the end of all the codingbat problems! Yay, I consider this an awesome accomplishment! It’s kind of like finishing all of Netflix, but better. Can you still practice your Python for XP after you’ve reached this point? Yes! For students that finish all of the…
-
Quiz #3 posted!
Quiz #3 has been posted to Canvas, and is due by midnight, Oct. 16th. It is open-all-the-usual-stuff, closed-other-humans, and is timed at 30 minutes. Good luck!
-
New homework posted!
As mentioned in class, we’re a little behind where I’d like to be at this point, material-wise, so we’re skipping assignment #4. (I gave everybody full points for it.) Instead, we’re ready for assignment #5, due next Friday! Lean heavily on any internet cheat sheets you like for this, in order to look up HTML…
-
Class examples posted
Here are bundled git repos from today’s class: 12:30pm section 3:30pm section How to use these: first, download the one you want (to download to the cpsc server, the command is “wget http://stephendavies.org/cpsc350/YOURSECTIONTIME.git“) and then type: $ git clone YOURSECTIONTIME.git aNewDirectoryName to unpack it.
-
“the current cheat sheet”
The most up-to-date version of my “Flask cheat sheet” has now been posted.
-
Assignment #2 graded
Assignment #2 is finally in the books — sorry for it taking so long! Here’s the rubric I used, for those who are interested. Note that this was a “spot check” grading process (although it sure didn’t feel like it!) meaning that just because you didn’t lose points for something doesn’t mean it’s 100% correct.…
-
“the current date”
You should consider any attempt to book airline tickets for a flight “before the actual current date” as an attempt to book airline tickets “in the past” and therefore reject it. Do not use any specific, hardcoded date mentioned in the assignment (or anywhere else) as “the current date.” How do you find out what…
-
Homework #3 clarifications and extension
Lots of email questions today and yesterday when I was recovering from my Covid shot and offline, so let me try to answer some of them, and also give you guys a couple more days on this. (Homework #3 is now due midnight Tuesday, Oct 8th.) I’m getting several questions of the form, “hey Stephen,…
-
UGH quiz question 2
Because question 2 of quiz 2 involved something I had forgotten to talk about in class, I tried to tell Canvas to give everyone the point for that item regardless of what they answered. However, for at least one student, that extra point did not go through. It definitely looks like a Canvas bug to…
-
Happy to regrade formatting-related issues
If you missed points on this (or any) quiz because your answer was conceptually correct but not formatted like any of my answer choices (like if you put “K9 | 12” with spaces instead of “K9|12” on question 9) please do speak up! I’m happy to give you the points back in these cases!
-
shinko.py and colby.py posted
From today’s class, the 12:30 version and the 3:30 version of the Ben & Jerry’s interactive ordering program (and the database itself, too).
-
Zoom link
Just a reminder that the link for today’s Zoom session is in the announcement I posted in Canvas at the very beginning of the semester.
-
Assignment #3 posted!
Assignment #3 (console interfaces) has been posted, and is due on Sunday. Imagine that: a programming assignment! :-O
-
All-virtual office hours
If you hadn’t already guessed, office hours will be on Zoom only this week. Just drop me an email if you’d like to hook up!
-
Quiz #2 clarification
A couple students asked a question about Item 9 on the quiz: why is the answer 5, not 4? The tables in question were PETS: +———————-+———-+———-+ | owner | dog | numYears | +———————-+———-+———-+ | Laura Ingalls Wilder | Jack | 5 | | Veronica Mars | Backup | 3 | | Robert Barone |…
-
It’s the little things in life
I just finished grading quiz #2, and believe it or not, every single student who took it managed to type and sign the Honor Pledge correctly! That puts me in such a good mood that I just awarded all quiz #2 takers with a free XP. Keep up the attention to detail! Also — a…
-
Turning in physical things next week
I’m planning on avoiding campus entirely next week, so nothing you put in my “350” manila folder (or anywhere else) will actually make it into my hands before the week following. This is okay, and all such items will be considered on-time as long as it’s in my folder by Monday morning Oct. 7th. (Oct.…
-
IMPORTANT: please read
The bevy of Covid cases sweeping through CPSC is scaring me enough that I want to take some evasive action. For this reason, class will be online this coming week (Oct 1 and 3). The Zoom link is in the Canvas announcement I made before the beginning of the semester. If you have trouble finding…
-
If you’re not on campus
You can send me a scan of your Halloween SQL queries today, and I will count it as “on time.” Then, give me the hardcopy on Tuesday.
-
Stephen’s Halloween solutions
Here are my solutions (and the SQLite database) to Tuesday’s Halloween-themed activity. Do not look at these until your team has turned in your answers to my “350” manila folder!
-
More SQL practice
For Maddy, Bill, and others who have requested more SQL practice, here are some other practice queries that you can run on the Ben & Jerry’s database, and their solutions.
-
Halloween XP activity
Please turn in your team’s legible Halloween-themed XP activity solutions to the “350” manilla folder hanging outside my office by midnight tonight.
-
Class canceled today
I’ve just had the seventh email from a student saying they won’t be in class today because they’re sick. This poses two problems: (1) I was going to start something important and new today, and all those students are going to be lost in the sauce, and (2) it sounds like there’s an outbreak going…
-
Stephen’s B&J query solutions
Here are my answers to the Ben & Jerry’s sample queries we did in class last Thursday and today. Studying these would be well worthwhile!
-
NULLs are okay if there’s missing information
Is it okay to have NULL values in your airline database? Yes! There are plenty of places where I incompletely specified things, and for any cell of any table that the answer was not specified for, a NULL is the right thing!
-
Quiz #2 posted!
Quiz #2 has been posted to Canvas, and is due Saturday at midnight. Happy querying!
-
Stephen’s homework #1 solution posted
For what it’s worth, here’s my solution to the first homework:
-
Office hours zooming
My Zoom is taking up more CPU cycles than I’d like, so I’m going to shut it off when not in use. If you’d like to Zoom during office hours, please just send me an email, and I’ll be happy to open up!
-
Assignment #2 posted!
Assignment #2 (SQLite) has been posted, and is due in a week. Don’t delay getting SQLite downloaded (or refreshing yourself on the process of accessing the cpsc server) and on scrutinizing your graded assignment #1!
-
SQLite cheat sheet posted!
For your pleasure!
-
Massive office hours overhaul
For various reasons, I’m going to be radically switching my office hours around between now and Thanksgiving to be in the evening. The new office hours, starting this week, are in James Farmer Hall 044, or on Zoom, at the following times: Mondays 7-9pm Tuesdays 7-8pm Wednesdays 7-9pm or by appointment. As always I’m willing…
-
Assignment #1 graded
Assignment #1 has been graded, and grades have been posted on the scoreboard. Here’s the rubric I used if you’re interested in how your score breaks down. Also: if you’d ever like a breakdown of your XP so far (so you can see how many points you got on a given assignment) check out the…
-
LOL breaking news
This just in.
-
Thursday afternoon, 9/12
It is with great reluctance and a heavy heart that I announce the cancellation of Thursday’s lecture. However, you and up to two partners of your choice can still earn +5XP by legibly completing this activity together and putting your solutions in my manila envelope by Thursday night at midnight. If you already know of…
-
Missing from Canvas?
At least one student in the class — who has been enrolled the entire semester, is on the Banner roster, etc — was mysteriously not in the Canvas course (and hence couldn’t take the quiz). No idea why this occurred, but you might just double-check that the same isn’t true for you. This has been…
-
Office hours virtual today
Hit me up at the usual link.
-
Running very slightly late…
…we do have class today — wait for me!
-
About those XP cards…
I don’t think I ever managed to tell the second class exactly what the sitch is regarding XP cards. So: those cards that I hand you as a reward for in-class exercises should be treated as cash. They are each good for the number of XP it says on the card. They cannot be traded…
-
Office hours virtual next Monday
FYI, Monday’s office hours will be virtual (over Zoom). You can find the link in the opening semester Canvas announcement.
-
Runway length == takeoff length
You should assume that the number of feet it takes a particular aircraft to take off is the same number of feet that it takes it to land. (Not actually sure whether this is true, or which length would be longer if not. But we’re in Stephenworld, so that’s the rule we’ll use.)
-
Quiz #1 posted!
Quiz #1 has been posted to Canvas, and is due by midnight, Thursday Sep 12th. You’ll know everything you need to know by the end of class on Thursday the 5th, however, so feel free to take it any time after that. The quiz is open-book, open-notes, closed-other-humans, closed-other-Websites, closed-ChatGPT-and-other-AIs, and timed at 40 minutes.
-
Assignment #1 posted!
Assignment #1, involving conceptual schemas, has been posted. Weirdly, I made it due before Assignment #0 is due (and scooched the assignment #0 deadline forward a couple days). Yes, I agree that ordering is weird. Just worked out that way. Start early and ask questions!!
-
codingbat.com practice
You can earn up to +2XP per week by spending 30 minutes (per week) completing codingbat.com problems. All you need to do to claim these points each week is send me an email on Friday of the given week with subject line “CPSC/DATA 350 codingbat XP“. In the body of the email, you should type…
-
Assignment #0 posted!
Your first graded assignment of the semester — shaking out your Python cobwebs — has been posted, and is due Monday, Sep 9th at midnight. Send questions!
-
Scoreboard sign-up!
Okay everybody, it’s time to earn your very first XP (experience point) of the semester, which is not only admirable in itself but is also required in order to earn any other XP at all! All you need to do is head over to the Scoreboard (see link at top of page) and add yourself…
-
Welcome!
Greetings, Earthlings, and welcome to the fall 2024 version of CPSC/DATA 350: Applications of Databases with Stephen! This site is gonna be hip-hoppin’ with all kinds of great stuff real soon, so stay tuned!