Category: Uncategorized

  • Final exam scores posted

    The final exam proved pretty challenging: Props to Laur, who got a +99XP, and to Gabe, the only perfect +100XP! Incidentally, the hardest question by far was: “a table with three attributes A, B, and C has one FD: {C}→{A}. What is the key, and is this normalized?” The correct answer is: “the key is…

  • Viewing your Demo-Day feedback

    To see what your friends (and enemies?) wrote about you and your Demo project, log on to the Redis server on cpsc and select instance #49. Then look for the key that starts with “feedback:” and has your first name. This is a list, and so the lrange command applies. All in one go: cpsc$…

  • Demo Day scheduled posted!

    Today’s Demo-Day® schedules have now been posted! Sec 01 Sec 02 You may double check your own link but DO NOT click on any of the others until I give the go-ahead! Kickoff in one hour. Get excited!

  • Earn an easy 2XP (but act soon!)

    Strong? Studly? Hungry? In the first section of the class? Well, then, this is the opportunity for you! I need to drop by Giant tomorrow to buy ice cream and such before the first final exam period. I need a friend to help me carry stuff. Ideally two friends, actually, since I’ll need two strong…

  • Assignment #9 submission instructions

    Important: you may not touch your own website after 11am on Thursday, period. This is true even during the “other section’s” demo day, and even more especially true during your own section’s Demos. Trying to stealthily work on your own last-minute bugs while your teammates are presenting their work is a sure-fire way to lose…

  • Grading assignment #8

    I’m in the middle of these this weekend. Just a note: if you feel you did something above-and-beyond, and it was not noticed or rewarded with extra credit, please do write back and tell me what you did that was above-and-beyond so I can judge and possibly rectify.

  • Cypher practice queries posted

    For some additional practice before quiz #8 and/or the final, here are some practice Cypher query challenges, and sample solutions.

  • Quiz #8 posted!

    Quiz #8 (and last) has been posted to Canvas, and is due Sunday at midnight. Good luck!

  • Today’s ballots

    If you’re curious as to the result, today’s vote counts were as follows: A — 7 votes B — 26 votes (This jibes with my own perspective.)

  • Possible exception

    If you feel that you will be unprepared for Thursday the 24’ths final exam because today’s announcement was so sudden — and you had set aside time to study for it after this week is over — I will allow students (on a case by case basis) to take the final exam instead during the…

  • Important final exam note

    As mentioned in class today, the final exam this semester will be in-person on Thursday, April 24th during regular class time. It is an open-notes, open-anything-printed-out, open-calculator, closed-computer, closed-other-humans, closed-electronic-devices (other than a calculator), closed-Python, and timed (at 1 hour 15 minutes). All materials that you use for this exam must be printed out on…

  • Class is ON for tomorrow

    I think I may have finally licked this thing. See you guys tomorrow.

  • Same diff

    Blech. See you guys Tuesday (I hope).

  • Quiz #7 posted!

    Quiz #7 has been posted to Canvas, and is due this coming Monday at midnight. You can go ahead and take the quiz now if you’d like — it doesn’t contain anything we haven’t already covered in class. “No more training do you require. Already know you, that which you need.” — Yoda

  • Assignment #8 extension

    Also, the assignment #8 deadline has been postponed until Friday at midnight.

  • Game plan

    Okay, so I feel like it’s unfair of me to expect you guys to incorporate Neo4j into your project databases by the end of the semester, considering we’ve missed so much class and I haven’t even taught you guys how to query in it yet, lol. So here’s what we’re going to do for “assignment…

  • Flu day answers

    Here are my answers to part 1 of yesterday’s extra credit activities. For part 2, I created a checker script on the cpsc server that lives at: /home/faculty/stephen/mongoActivity2check.py You should have read permissions to view this file in vim, run it yourself, etc., to see what you may have missed.

  • Just not gonna happen

    Sorry guys, I’m just not feeling any better. I’m going to try and go to the urgent care today. In the meantime, class and office hours are canceled.

  • Programming contest points

    If you attended the department programming contest on Friday, and would like your points, please send me email and tell me how many problems your team solved!

  • Importing Star Wars

    You may have noticed on the cheat sheet that if you’re importing a JSON file that contains a list of documents (rather than a single document) you have to give an additional argument to the end of the mongoimport command: –jsonArray I apparently left this off the instructions for part 2 of today’s activity, but…

  • Office hours canceled tomorrow

    Office hours will regrettably be canceled for Tuesday, April 15th.

  • Please bring your laptops to class tomorrow

    If not everybody reads this in time, that’s okay, but I’d like over half the students to have a working laptop during lecture tomorrow (Tuesday, April 15).

  • Mongo activity, and additional practice

    Here’s the activity from today’s class (the answer was “happee e-star“) and also another one from last semester to help you practice (the answer is at the bottom of this post). happea terkey day

  • Must read

    The single best computer science book ever written, in my opinion, and mandatory reading for everyone in the discipline at some point in their career. True story: when I finished the last page on my first read-through, I literally cried. ;_;

  • Galaxy explorer (console and Flask versions) posted

    So, it seems that Stephen’s git skills are not as sharp as he thought, because I have managed to thoroughly screw up and lose the early class’s Flask code. 🙁 The good news is that we had the exact same agenda in both sections, and added the same features. (The code will vary, of course,…

  • Assignment #8 posted!

    Hot on the heels of your Redis expansion will be your MongoDB expansion. It’s due next week! So why are you still reading this?!

  • Quiz #6 posted!

    Quiz #6 has been posted, and is due Friday at midnight. You can take it any time (including right now) — we’ve already covered all the material on it.

  • Aggregation pipelines from today

    Here are the more complex aggregation pipeline examples from today’s class.

  • Assignment #7 extended to Saturday night

    Just because Garrett wanted to.

  • Practicing with the Kahoot

    Here’s the Kahoot from yesterday’s class, if you’d like to practice with it.

  • Flush your Redis instance

    Btw, I believe that last semester’s students still have all their stuff in the Redis instances you guys are now using. Feel free to flush their work (the command is “FLUSHDB” at the Redis command line) before adding your stuff.

  • Fear is the mind killer

    Here’s today’s XP-bearing activity if you want to practice with it before the quiz. Btw, the full Bene Gesserit Litany Against Fear runs like this: “I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and…

  • Hobby Manager: final version

    From today’s class, here’s our final version of the “Hobby Manager” app: The 12:30pm class’s git bundle The 3:30pm class’s git bundle (To unpack a git bundle on your system, type “git clone nameOfGitBundle.git“.)

  • Quiz #5 posted!

    Quiz #5 is a 60-minute, closed-Python and closed-Redis affair that is due on April 2nd at midnight. Good luck!

  • Connecting to Redis on cpsc

    Remember that you’ll need to do two things to connect properly to Redis on cpsc: authenticate with the password I gave in class today, and select the correct instance. From the command line: $ redis-cli 127.0.0.1:6379> auth theClassPassword OK 127.0.0.1:6379> select yourInstanceNumber OK 127.0.0.1:6379[yourInstanceNumber]> From Python: import redis r = redis.Redis(password=”theClassPassword”, db=yourInstanceNumber, decode_responses=True, charset=’utf-8′)

  • Hobby Manager: in progress

    From today’s class, the first cut at our “Hobby Manager” app: The 12:30pm class’s git bundle The 3:30pm class’s git bundle (To unpack a git bundle on your system, type “git clone nameOfGitBundle.git“.)

  • Assignment #7 posted!

    As promised, assignment #7 has arrived and is due next Friday. Good luck, and happy coding!

  • Maddie’s survey

    Madelyn Maddie would appreciate it if you would take the time to complete this survey that she’s using as part of an independent study.

  • CPSC programming contest!

    This year’s CPSC Programming Contest will take place on April 11th at 6pm! It involves free pizza, snacks, music, and fun! You should definitely mark this on your calendar if you haven’t already, and be sure to sign up with or without teammates. (You can indicate on the form if you’d like to be paired…

  • sick today

    no class or office hours today (mar 20) – send email

  • Final bundles posted

    From today’s class, the “final” versions of our SQLite-backed ice cream database: The 12:30pm class’s git bundle The 3:30pm class’s git bundle (To unpack a git bundle on your system, type “git clone nameOfGitBundle.git“.)

  • The “Details” tab

    Several people have asked me questions of the form “hey Stephen, have you graded my X yet?” Note that you can check this yourself by clicking on the “Details” tab of the scoreboard and entering your info. This will show you all the XP you’ve earned so far this semester, in all their glory.

  • Therapeutic

    The scoreboard has been updated with lots of stuff, including assignments 3 through 5, quiz #3, and the latest codingbat/leetcode points. Also, a sweet surprise for Stephen: nobody in the class managed to mess up the Honor pledge for quiz #3, which requires a clumsy email back and forth to correct! As a reward for…

  • Quiz #4 posted!

    Quiz #4 has been posted, and is due on March 18th at midnight. It contains no material from today (or even anything post-spring-break, actually) so fire away!

  • DB World Tour stop 1 (a.k.a. assignment #6) posted!!

    Okay, time to get excited!! The first milestone for your most excellent DB Tour project has been posted, and is due in little over a week. Get those creative juices flowing, and get cracking!!

  • Buy ice cream here!

    From today’s class: The 12:30pm class’s git bundle The 3:30pm class’s git bundle (To unpack a git bundle on your system, type “git clone nameOfGitBundle.git“.)

  • Important: homework turn-in confusion

    Hmm. What I meant for you guys to turn in for your “assignment #4’s” was: A git repo, with these contents: Your customer_service.py program that allows the user to interactively purchase tickets Your SQLite database file that has all the stuff from galactic in it (and optionally, other rows left over from your assignment #3)…

  • To run your flask app on cpsc.umw.edu

    We’ve been working on localhost so much that I think I forgot to ever tell you guys how to get your Flask app running on the actual internet on the cpsc server. Duh. The answer is, when you start Flask, do it this way: $ flask run -h 0.0.0.0 -p yourPortNumber The 0.0.0.0 is literal.…

  • First “real” DB-powered Flask apps

    From last week’s class: The 12:30pm class’s git bundle The 3:30pm class’s git bundle (To unpack a git bundle on your system, type “git clone nameOfGitBundle.git“.)

  • Quiz #3 posted!

    Quiz #3 has been posted to Canvas, and is due after spring break. It’s a short one, timed at 30 minutes.

  • Assignment #5 posted!

    In case you want to get ahead over spring break, assignment #5 has been posted and is beckoning to you. It is actually due the Thursday after we get back.

  • Another possible workaround for connecting to Maria

    At least one student has reported that if they include the “–skip-ssl” at the end of their connnection command, like this: $ mariadb -u yourusername -pyourpassword -h cpsc.umw.edu -P 3306 galactic –skip-ssl that it worked for him. Give it a shot if nothing else is working.

  • Practice query solutions posted

    Here are my solutions to the extra credit activity that was due today.

  • Assignments 3 and 4, and spring break

    I’ve been having so much fun that I sorta forgot that next week is spring break. 😀 So, here’s some important news regarding assignments 3 and 4: Assignment 4 is now due the Sunday after spring break, not before. Organize your time however you wish. (Obviously I will still accept the assignment if it’s turned…

  • Temporary MariaDB connection woes

    If you’re having trouble reaching the galactic database, read carefully. You already have a MariaDB account, but the question is what password you’re using. The password should still be the original one that Ian sent you when you got an account on the cpsc.umw.edu server at all. So if you’ve changed your cpsc password since…

  • Homework #4 is posted!

    No rest for the weary — get ready for the impedance mismatch of the century: a bulk import assignment from mine to yours. It’s due next Sunday, and is not for the faint of heart. Happy importing!

  • Last week’s code posted

    From last week: The final versions of our B&J console programs: 12:30pm version 3:30pm version The bulk import programs: 12:30pm version 3:30pm version

  • Clarification on extra credit example tables

    The “sample answer tables” I gave for each question in the extra credit activity are only intended to give the shape of the answer, not any actual answer on any particular database. Apparently I posted a previous version of my SQLite Ben & Jerry’s database at some point, and some students were entering their queries…

  • Transaction demonstration

    From yesterday’s class, the code that used transactions so that multiple copies of it simultaneously accessing the same SQLite database didn’t interfere with each other in a destructive way.

  • Extra credit query practice

    You can earn up to +5XP by legibly writing queries to answer this set of questions. You are allowed to work in groups of up to 4 on this activity. To claim these XP, turn in your legible solutions to my “350” manila envelope no later than 5pm, Monday 24. If you worked in a…

  • SQLite command line atrocities

    For those of you following the SQLite formatting hassle, here’s today’s ChatGPT debugging session, which ended ambiguously.

  • Today’s code posted

    From today’s class: The additional practice queries (and sample solutions) The B&J console program: 12:30pm version 3:30pm version Taking the time to go through the rest of the questions on item #1 on your own would be an excellent and praiseworthy idea.

  • Assignment #3 posted!

    Assignment #3 has been posted, and is due next Sunday Feb. 23rd at midnight. Good luck!

  • Beet it!

    A quick shout out to John Database and GoldCannon for being the first to reach the “Beet It” level! Trivia question for the masses: what’s different about “Beet it” than any of the other semester’s levels?

  • Question 9 on quiz #2: explanation

    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 |…

  • Please tell me about incorrectly scored quiz items

    If you miss points on a quiz question that you clearly had correct, but simply entered in a different format than I was expecting, please don’t just accept the loss and sulk. Instead, tell me about it. For example, suppose the answer to some question was: stephen but for your answer you entered: “stephen” Depending…

  • No, SQLite is not allowed on the quiz

    I thought this would have been obvious, I guess, but in case not: no, you are not permitted to use the SQLite command line while taking the quiz. (If you think about it, the quiz would be pointless if you could do that, since anyone who knew how to type could get the questions right,…

  • Office hours partially canceled next Tuesday

    Unfortunately, I won’t be able to make my usual 11:30am-12:30pm office hours on Tuesday, Feb. 18th. I will be there for the 2-3:30pm block, though.

  • Clarification on “open-notes” quizzes

    For quizzes, you are allowed to use all handouts from class, any “cheat sheets” or other things posted on the class website, etc. Basically, anything written down that you want to use is okay. The only things that are not okay are programs (like the Python command line, or ChatGPT.)

  • From today’s class

    From today’s class: Sample solutions to the first nine queries on the page I handed out the beginnings of the ice cream purchasing console app we started on

  • Today’s queries posted

    From today’s class, the queries against the B&J database that (1) reviewed selects, wheres, froms, Cartesian products, and joins, and (2) introduced group bys, havings, order bys, limits, and offsets. (Whew!)

  • Office hours on Zoom today

    At the usual time, at the same link we’ll be using for class (see Canvas announcement).

  • Questions (and answers) about class tomorrow

    Will we have class tomorrow? Yes! See Zoom link in Canvas announcement. Is class mandatory? No, class is never mandatory. You are big boys and girls, and can come and go whenever you choose. If you don’t think you will benefit from being there, you are free to skip any class at all, including tomorrow’s.…

  • Quiz #2 posted!

    Quiz #2 has been posted, and is due Saturday, Feb 15th at midnight. It’s timed at 45 minutes, and covers all the material from class and readings up through and including Tuesday Feb 11th’s class. Good luck!

  • Virginians and snow *eye-roll*

    Really? Where I come from there at least have to be a few flakes falling first. Anyway, we’re holding to a good pace so far this semester, and I do not want to fall behind. And given past UMW history, my bet is that class is canceled for more than just tomorrow. So here’s the…

  • Today’s code posted

    From today’s class, the SQL code to recreate our bootstrapped database: early class version late class version

  • Code and handout posted

    From today’s classes: The SQL code (first section) The SQL code (second section) The handout for which I ran out of copies

  • Assignment #2 posted!

    Assignment #2 has been posted, and is due next Thursday at midnight. Note carefully: this assignment will probably take a medium amount of time if your assignment #1 was pretty clean, but a large amount of time if your assignment #1 had lots of mistakes. (This is because you’ll need to fix all those mistakes…

  • Stephen’s assignment #1 solution

    Here’s my solution to assignment #1. If you got less than 35XP or so for this assignment, I strongly suggest you carefully look over my solution, and perhaps use it instead of your own as a basis for assignment #2.

  • Quiz #1 posted!

    Quiz #1 has been posted to Canvas, and is due on Friday at midnight. It is open-book and open-notes, closed-other-humans and closed-AI-assistants-such-as-ChatGPT, and timed at 60 minutes. Good luck!

  • “Tail numbers”

    Abe, a pilot in our class, just now told me that there is in fact an “AID-type thing,” which is called a tail number, and it’s written on the fuselage. Call it what you wish on your homework!

  • Walk-in tutoring

    Walk-in tutoring is available for this class (and others)! Kenzie: Wednesdays, 6-8pm, Farmer 025 Matt: Thursdays, 6-8pm, Farmer 026

  • The present and the past

    This may seem inconsistent, but it’s the law in Stephenworld: your database does need to know who flew last October 29th’s United 277, but it does not need to know what runway United 277 might have had reserved on that date — all that it needs to know about runway reservations is what runways are…

  • On pilots and copilots

    Clarifications around crew members: Crew assignments are not normally the same from day to day. (If Charlie/Julie were the pilot/co-pilot on this morning’s United 678, they are very likely not going to be the pilot/co-pilot on tomorrow’s United 678.) All crew members who are certified to fly a type of plane can be either the…

  • AID

    I don’t know if there is something like this in reality (I’m sure there is, though) but we’re going to say that all physical airplanes have an “AID” (“airplane ID”) which is globally unique.

  • Email means email

    Clarification: when I say to “email me” (with questions, to turn in an assignment, etc.) I really do mean “email me” (to stephen _AT_ umw _DOT_ edu), not “send me a Canvas message” (which I normally do not see and do not read).

  • Assignment #1 posted!

    Assignment #1 has been posted, and is due a week from today at 5pm (not midnight) to the “350” manila folder hanging outside my office door. If you have any uncertainty about what any of the requirements mean, please be sure to ask! If you don’t ask, and misinterpret a requirement as a result, you’ll…

  • 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 — getting used to Python or brushing out the cobwebs — has been posted, and is due Tuesday, Jan 21st 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 spring 2025 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!