Category: Uncategorized

  • Demo Day rosters finalized!

    Here are the pages we will be using during the two Demo Day™ sections today: Sec 01 (noon today, room 025) Sec 02 (3:30pm today, room 036) Important: the order of these names will be randomly shuffled immediately prior to festivities beginning (at 12:01pm, and 3:31pm, respectively). If you are not present in the room…

  • Demo Day: IMPORTANT PLEASE READ

    Happy Demo Day Eve, everybody! (or “Demo Eve?”…) To participate in Demo Day, you must do the following things by midnight tonight: Send me an email with subject line “CPSC/DATA 350 Demo Day turnin“. In the email, give me your actual final working URL to the final database product that you will demo. Note: sending…

  • Stephen’s solutions to Star Wars Cypher queries

    Here are my solutions to the extra credit Star Wars Cypher activity that was due yesterday. Enjoy!

  • Quizzes #7 and #8 (bonus!) posted

    Quiz #7 has been posted, and is due midnight April 24th. I’ve also posted a bonus (i.e., not on the syllabus) quiz #8, which, if you’d like to take it, is due midnight April 26th. They are both open-cheat-sheets and open-notes, but closed Python, closed Mongo, closed Cypher, and closed AI. A warning on quiz…

  • Totally optional

    A couple ambitious folks have asked me whether it’s still possible to sneak in something Neo4j-related for their database project. The answer is “with enough enthusiasm and self-starter-ism, yes!” And I’ll reward such efforts with generous XP. The best way to start this is (1) wait until Monday’s class, during which I’ll be giving my…

  • Quiz #6 posted!

    Quiz #6 has been posted, and is due by midnight April 22nd. If you’re someone prone to forgetting about quizzes and other action items, be sure to write a reminder, make a calendar entry, set an alarm, tell your Mom to text you, or whatever you need to do not to forget!

  • Mongo practice (and XP activity)

    You and up to two friends can complete this activity together no later than class time Monday, April 20 and earn up to +5XP if you are correct. (The problem to solve, as usual, is “what does this program print to the screen when it is run?” To be eligible for these points, you must:…

  • Galaxy explorer code posted

    Here’s the cloneable git repos for: galaxy_10am.git galaxy_2pm.git Also, if you actually want to run this, you’ll need to download this database dump and run this command on it: $ mongoimport –db starwars –collection c –file starwars.json

  • Assignment #8 posted!

    Assignment #8 has been posted, and is due the day after the end of classes. As discussed in class today, your demo of your entire website will take place on April 29th, during the final exam time, and will make up the remaining points for your Database Tour project.

  • How I’m feeling

    My recovery is going quite well so far, but all the same I think I need another slow day before I’m ready to re-enter the rat race which is UMW campus. So class and office hours are canceled for Monday, April 13th, but I plan on resuming office hours as scheduled on Tuesday, April 14th…

  • Surgery success

    For anybody following this developing story, my surgery seems to have gone well and the doctor is pleased. He did think, however, that Monday might be too aggressive to plan on a return to the classroom. I’m going to see how I feel. I might come in that day if I feel good enough (and…

  • Praise God!

    Aetna came through at the eleventh hour today, and said they would cover my surgery. So I’ll be under the knife tomorrow morning bright and early, and will be canceling all my campus appointments (including class and office hours) for this week. If all goes well, I’ll be back in the saddle on Monday. Stay…

  • Old stuff in your Redis instance

    If you see a bunch of old stuff in your Redis instance that you don’t recognize, it’s probably from whichever student had that instance number last semester, and they didn’t empty their trash before they left that course. Basically: nuke it. You can either systematically DEL the stuff you see when you do KEYS *,…

  • Quiz #5 posted!

    Quiz #5 has been posted, and is due Wednesday at midnight. It is open-book and open-notes, closed-Python and closed-Redis, closed-AI and closed-other-humans, and closed-notes-or-materials-from-students-who-have-previously-taken-this-class. It is timed at 60 minutes. Good luck!

  • Today’s code (Redis-backed hobby manager) posted

    Today’s code is in these bundles: hobbies_10am.git hobbies_2pm.git If you want to run them (as opposed to just perusing the code), be sure to unpack them this way: $ git clone hobbies_10am.git surgery …or… $ git clone hobbies_2pm.git surgery

  • Assignment #7 posted!

    Assignment #7 has been posted, and is due next Tuesday at midnight. We haven’t covered Redis’s “sorted sets” data structure yet, but we will on Wednesday. In the meantime, you already know the deets on the other data structure options, and I’m confident you can already choose how to architect most of your data. Please…

  • Office hours tweak for Tues 3/31

    On Tuesday (tomorrow), office hours will be: Online, instead of in person (see Canvas for the usual Zoom link), and 10:30-11:30am instead of the usual 10-11am.

  • Bonus points

    I attempted to dutifully award all the +5XP bonus points to those who turned in assignment #4 and/or assignment #5 by the original March 12 due dates. Microsoft email actually doesn’t make that very easy, though, so it’s possible I missed some people. If I missed you, just send me an email reminder and I’m…

  • I really hope you guys can forgive me

    I’m super behind on grading, and am in danger of falling even further behind. So to try and dig out of my hole, I’m going to just give everybody the full points for assignment #4 as long as they turned it in on time. Whatever hard and tenacious work you put into this was still…

  • Updated code examples posted

    From yesterday’s class, the git bundles for: 10am.git 2pm.git

  • Virginia Tech masters: info session

    If you’re interested in pursuing a masters degree at Virginia Tech, consider checking out this information session about the program.

  • Important: git version on cpsc

    So, it appears that the version of git on the cpsc server is super old, and still defaults to looking for a branch named “master” instead of “main“. Ian told me he’s going to update the OS on cpsc this summer, but it’s too intrusive a change to do mid-semester. What this means for you…

  • Code examples posted

    From today’s class, the git bundles for: 10am.git 2pm.git

  • House Davies: the next generation

    Click for a close-up! What do people think Samuel is doing in the picture? Here are the results:

  • Please check this immediately

    Before any more time expires, if you have not successfully connected to your MariaDB database on the cpsc server (I’m talking about your database, named the same as your username, not the “galactic” database from previous homeworks) please make sure you can do so NOW. Some students evidently didn’t have their database password set correctly,…

  • Code examples from yesterday posted

    From yesterday’s class, the git bundles for: 10am.git 2pm.git

  • Your MariaDB password

    Your MariaDB password on the cpsc server (not to be confused with your Unix/Linux password to that system) has been set to a secret value which I will reveal in person during class tomorrow. If you’d like it before then (good for you!) drop by office hours and I’ll whisper it in your ear.

  • Today’s code posted

    From today’s class, git bundles for the following websites: backfrombreak.git (10am section) umm.git (2pm section) To access these, download them to your machine (or put them on the cpsc server if you’d rather, using scp, PuTTy, or directly with wget) and then executing: $ git clone backfrombreak.git backfrombreak or $ git clone umm.git umm You…

  • Assignment #6 posted!

    Assignment #6, the first of four stops on your Database World Tour®, has been posted, and is due next Thursday. Give yourself enough unrushed time to complete this assignment well — not only does it require creativity and panache, but it will serve as the basis for all the rest of your homework assignments moving…

  • Class on Zoom tomorrow (Monday)

    Okay, UMW just called it. See everybody on Zoom tomorrow at the usual time! The Canvas announcements have the Zoom link, which is the same as it’s always been for this class.

  • Class tomorrow (Monday)

    Just a quick note to affirm that we will have class on Monday at the usual time, hopefully in person. However, if the university closes due to the coming storms — for either the morning section, or the afternoon section, or both — we will have class on Zoom during the affected sections, using the…

  • Quiz #4 posted!

    Quiz #4 has been posted to Canvas, and is due Thursday at midnight. It is open-book and open-notes, but closed-AI, closed-other-humans, closed-Python, closed-SQLite, closed-MariaDB, and timed at 60 minutes. Good luck!

  • Assignments 4 & 5 extension

    Assignments #4 and #5 have now been extended to Tuesday, March 17th. Anyone who submits them by the original deadline (tonight, March 12th) will get an extra +5XP!

  • Class canceled; office hours virtual today

    Sorry guys! I just got back from Richmond. Plan B it is. Today’s class (both sections) is canceled, and I will be having Office Hours virtually (over Zoom) at the usual time (12-2pm). See the Canvas page for the Zoom link (which is the same Zoom link as always). See everybody in person on Wednesday!

  • Monday’s class

    Plan A is to have class on time on Monday morning as usual (10am). There’s a 30% chance that I’ll be running late, since I have an early morning doctors appointment in Richmond. I think I’ve allowed enough time for it, but just in case traffic or other woes come into play, I might be…

  • Accessing the galactic database

    Just to be clear, for assignment #4 you do not have to have MariaDB client running on your laptop. And you certainly do not (and should not) have an instance of the MariaDB DBMS server running on your laptop! Instead, you should follow this two-step process to poke around and inspect the galactic database: Log…

  • Spot checking assignment #4

    Here are some checks to confirm that you did assignment #4 correctly: You should have exactly 42 pilots in your database (this includes the five from assignment #2). Exactly nine of these pilots should be certified to fly the Millenium Falcon. Four pilots should be certified to fly a colonial Viper. Only two pilots should…

  • Intergalactic airport abbreviations

    The flightplans table only has names of planets, not airports. You can overcome this mismatch by assigning your own reasonable three-letter airport codes to planets. (For example, using “DGB” for “Dagobah airport” would be acceptable.)

  • Quiz #3 posted!

    Quiz #3 has been posted to Canvas, and is due Tuesday, March 10th at midnight. It is open book, open notes, closed other humans, closed AI, closed SQL, closed Python, and timed at 60 minutes. Good luck!

  • Bulk import example code posted

    From today’s (and Monday’s) class, the bulk import example code for: the 10am’ers the 2pm’ers

  • Assignments 4 and 5 posted!

    Assignments #4 and #5 have been posted! They are both due Thursday March 12th at midnight. You can do them in either order, but be advised that procrastination is doubly important in this case! Start both of them early and often.

  • XP ca$h out

    If you’d like to cash in your XP cards mid-semester, there will be one opportunity to do so: Wednesday’s class (2/25). To redeem these, your XP cash must be: Stapled together with a staple, using a stapler. Have your name clearly printed on the back of the bottom-most card in the stack. Have the sum…

  • Halloween query solutions posted

    Here are my solutions to the Halloween activity.

  • Tuesday’s (tomorrow’s) office hours

    I’m going to see a specialist tomorrow morning about my back pain, and so might be late to my office hours. I’ll get there as soon as I can!

  • All systems go!

    Class will be in person, on campus, at the usual time tomorrow. Dress warm!

  • “the current date”

    To get the current date in Python, the best tool is the datetime package. Here’s a demo: from datetime import date today = date.today() valentines_day = date(2026, 2, 14) if valentines_day < today: print("Valentine's Day already happened.") elif valentines_day > today: print(“Valentine’s Day is coming up!”) else: print(“Valentine’s Day is TODAY!!! (Hope you remembered!)”)

  • B&J console app posted

    From class yesterday, here are: The 10am version of the console app The 2pm version of the console app The SQLite database itself

  • Not necessarily bullet-proof

    For assignment #3, you don’t have to worry too much about things like “what if they enter an invalid formatted date?” “What if they type ‘bob‘ for the number of tickets to purchase?” Etc. You do need to make sure to properly handle these two errors, though: attempts to (1) an attempt to purchase a…

  • Answers to in-class B&J practice queries

    Here are Stephen’s solutions to the practice Ben & Jerry’s queries from this week’s class.

  • Assignment #3 posted!

    Assignment #3 has been posted, and is due next Wednesday at midnight. Happy Python coding!

  • B&J query solutions

    The solutions to the B&J example SQL queries we did in class today.

  • Assignment #2 rubric

    I’ve started grading the assignment #2’s, and if you’re interested in this level of detail, I’m using this rubric to assign points.

  • Quiz #2 posted!

    Quiz #2 has been posted to Canvas, and is due this Friday by midnight. It is open-book, open-notes, closed-other-humans, closed-AI, and timed at 45 minutes. Good luck!

  • B&J schema handout

    Here’s today’s handout if you had to miss class.

  • Runways and reservations

    I got a good question about runways and reservations today, specifically about why I’m saying that a flight can only have one runway reserved at a time. Here’s my justification. Admittedly I’m making up stuff about runways here, since I’m not in the airline industry. But my idea was as follows: only one aircraft can…

  • .mode table

    If you’d like your SQLite terminal to show tables in the “prettier” format I demo’d in class yesterday, type this command before running your select * from tablename command: sqlite> .mode table If you like the way this displays, and want it to permanently be that way for you, create a file in your home…

  • Assignment #2 posted!

    Assignment #2 has been posted, and is due next Thursday. Happy flying!

  • Stephen’s assignment #1 solution posted

    For your reference, here’s my own solution to assignment #1 (click on the figure to enlarge):

  • Campus open tomorrow; assignment #1 due tomorrow

    They’ve just announced that UMW campus will be open as usual tomorrow (Monday, Feb. 2nd) and so as promised, assignment #1 will be due tomorrow by 5pm.

  • Office hours tweak next Tuesday

    I have a short meeting at 10am next Tuesday (2/3), so office hours will be 10:30am-11:30am that day.

  • Weirdly imbalanced attendance issues

    So, our first week of Zoom is now done. (Hopefully it’s our only week of Zoom, but who knows.) Here’s what I observed: Morning section (10am): Monday ‐ near perfect attendance today ‐ near perfect attendance Afternoon section (2pm): Monday ‐ about half the students showed up today ‐ about half the students (the same…

  • Campus closed all week (!!)

    Apparently, they just closed campus for the rest of the week. For us, this means: Class will be on Zoom tomorrow, just as it was yesterday (same Zoom link). Office hours will be at the usual times, but on Zoom (same Zoom link). Assignment #1 is now due Monday, Feb. 2nd, at 5pm. Stay warm!

  • Quiz #1 posted!

    Quiz #1 has been posted to Canvas, and must be taken before midnight on Friday, Jan. 30th. It is open book, open notes, closed AI, closed other humans, and timed at 30 minutes. Good luck! Reminder to those with accommodations: you must remind me before you take each and every quiz that you need your…

  • Assignment #1 hint

    Remember that your database must know who the pilot was, and who the co-pilot was, for each individual flight. It is not sufficient for it to know that “these two people were the crew members, but I don’t know which one was the pilot and which one was the co-pilot that day.” (Hint: instead of…

  • Virtual office hours Tuesday

    I just saw that campus was closed again for tomorrow (Tues), so office hours will be over Zoom tomorrow (at the usual time).

  • B&J conceptual model

    Here’s the UML diagram for reference during today’s Zoom class.

  • Virtual office hours Monday

    I’ll be available via Zoom on Monday at the usual office hours time. (See the “Office” tab, above.) My Zoom link is the same one we use for class tomorrow (and the only link I ever use), and is in a Canvas announcement.

  • *Possible* extension to assignment #1

    If campus is open on Wednesday (Jan 28), assignment #1 will be due 5pm that day, as scheduled. If campus remains closed through Wednesday, it will instead be due at 5pm the next day after that that campus is re-opened.

  • Monday class reminder

    Just a friendly reminder: we WILL have class on Monday, at the usual time, and it will be on Zoom. (The Zoom meeting ID and link are in Canvas, in the Announcements section.)

  • Assignment #1 posted!

    Assignment #1 has been posted, and is due next Wednesday (Jan 28). Note that this is earlier than assignment #0 is due! That’s because assignment #0 is the Python practice stuff, which isn’t as urgent, since we won’t be actually touching Python for a couple more weeks. Assignment #1, however, is due next week. Also,…

  • Lab aide / tutor hours posted

    I’ve added this semester’s lab aide / tutor hours to the “Office” link on this website. Feel free to drop-in and take advantage of these excellent 350 alumni!

  • Get on the scoreboard!

    To earn any points for anything this semester, you first have to be on the class scoreboard! Click on the “New Student” tab, and provide: Your real full name (do use any nickname you’re commonly known by — i.e., put “Lizzie Bennet” not “Elizabeth Bennet” if you go by Lizzie) A super secret screen name…

  • Welcome!

    Hey everybody, welcome back from winter break, and welcome to the spring 2026 edition of DATA/CPSC 350: Applications of Databases! This site is gonna be hip-hoppin’ with all kinds of great stuff real soon, so stay tuned!