The solutions to the B&J example SQL queries we did in class today.
-
B&J query solutions
-
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 reserve a specific runway at a time; otherwise there would be a collision when two airplanes tried to simultaneously land/takeoff. If there’s heavy traffic at the airport, it’s possible for several airborne flights to be “queued up” (not represented in the database) waiting to be given the reservation to land, but only one would have the reservation at any given time. Same thing for departures — there can be lots of airplanes waiting on the tarmac full of passengers and ready to take off, but who have to wait their turn to get a runway reservation so they can do so.
As for why a flight can’t reserve multiple runways, my assumption is that runway reservations are a pretty quick thing (on the order of minutes for waiting for one, and then using it and getting off the runway so other flights can use it) and therefore a flight wouldn’t “reserve in advance” a runway at its destination airport that it’s not even going to reach for several hours.
-
.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 directory called literally .sqliterc and put this line in it:
.mode table
-
Assignment #2 posted!
Assignment #2 has been posted, and is due next Thursday. Happy flying!
-
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 half) showed up
I have no explanation for why this would be, but it is troubling, because as most of you are aware, we covered a loooot of theoretical ground this week. Those in either section who didn’t come to class (and who I haven’t heard from any other way) are in danger of not only bombing the first couple quizzes, but also getting stuck in a can’t-get-caught-up loop.
So. If you missed class this week, I strongly urge you to (1) get the notes from a classmate, and (2) ask questions about those notes in office hours. Like most Computer/Data Science classes, everything in here builds and builds and builds, so you don’t want an incomplete foundation!
Just a word to the wise. See you guys one way or the other on Monday!
- Morning section (10am):
-
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 extra time added! Canvas will not do it automatically.
-
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 a many-to-many association, where “many” is “exactly 2,” use two different many-to-one associations, one for the pilot, and one for the co-pilot.)
The same thing is true for departure and arrival airports. It’s not enough for your database to know “Frontier Airlines 77 connects Boston and Detroit, but I’m not sure whether it goes from Boston to Detroit or from Detroit to Boston.” It must know that the origin airport is Detroit, and the destination airport is Boston.
-
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, note: unlike most assignments for this class, which are due at midnight, this one is due at 5pm since you’ll be turning in a hardcopy, and the building may close.
Good luck, start early, and ask questions!

-
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 that you will never share with anyone.
You get your first XP for doing this!
-
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!

