Spring '21 Week 8

YouTube Video

Resources

Edited Transcript

Hello, and welcome to the CC 410 video for week eight in spring 2021. So this point you should be wrapping up restaurant milestone five, which is where you add a lot of event based programming into your GUIs. And so hopefully it’s been going well, I realize I’m a little bit behind on grading, but I will be getting caught up this week, as we’ll talk about here in just a second because I have something to do this week.

This coming week, week eight, we’re going to be focusing on two really interesting topics. These are two of the topics I was really excited to teach in CC 410. Because a lot of students don’t see them this early in their curriculum. The first one we’re going to cover is design patterns. These are ways that we can structure programs in a way that is familiar to other developers. And I think it will really open your eyes to some of the ways that we can improve the code structure of our programs a little bit and make things a little bit easier to work with. I know for me, it was really enlightening when I really learned how to use design patterns correctly. So I hope you get the same result there. We’re also going to look at test doubles. Sometimes these are referred to as mocks or stubs or fakes. But there are ways that we can build unit tests that use fake objects instead of the real one so that we can control what we’re actually testing in our unit tests. And so to go along with that, we’re going to create a couple of classes in our restaurant called order and combo that we can use test doubles to actually mock the rest of the functionality and test just those two classes themselves. So we’ll have a short example where you’ll do some design patterns and work with some test mocks in a really quick little example projects. And then for restaurant milestone six, as we’ll talk about the second you’ll implement those orders and combos. One thing for me this week this week is the computer science educators conference is a virtual conference, but it’s every day from like noon to 8pm. And so because of that, I’m going to have some limited availability this week, mainly because I’m focused on keeping up on the conference. The nice thing is I can usually get grading done behind the scenes while I’m listening to the different conference presentations and interacting there. So I will be getting caught up on grading, but I won’t be doing a whole lot else this week. But I will do my best to keep up with email. So if you email me, you might get responses at weird hours as I try and catch up with email. But otherwise, I may have kind of limited availability this week.

So for milestone six, you’re going to be doing a couple of different things, the big thing you’re going to be doing is adding orders and combos into your restaurant projects. So those two classes allow us to exercise some design patterns, we’re going to go back into the data package a little bit and add some more features there. Specifically, we’re going to focus on a few of the design patterns that you’ll learn about this week, which are the factory method pattern, the builder pattern, the singleton pattern and the iterator pattern. And so you’ll build those two new classes, you’ll also build some quick adaptations so we can use them. And the main focus is on building those orders and combos and building all the unit tests to make sure that they work properly. This milestone has few changes to the UI, there’s just a couple of things I’ll have you add to set up for the next milestone, which is milestone seven. Milestone seven is a pretty large milestone, there’s two major parts to it. But it will be spread across two weeks, just like we did milestones, I think it was four, three and four. Early on, we spread one milestone over weeks three and four.

So we’re continuing to have some testing issues and Codio. If you’re using Java, you’re probably having Gradle die every once in a while, as I talked about before you can get it to work, you just have to restart the box, refresh the browser and try again several times, but it will eventually work. For Python, we found that the best method is to run these tests in batches. And so at the bottom of milestone six, I provided an updated tox.ini file that you can use for Python. If you really run into issues, I have started the work of taking these projects outside of Codio. I do have them set up on my desktop, I have my restaurant model solution set up in Windows subsystem for Linux, it seems to work really well. I think you could also do it without windows subsystem for Linux. If you have a Mac or if you run Linux, it should be really easy to install tools like Python and Gradle and Java, and do these tests outside of Codio. So if you’re interested in that, it’s something that I’ve intended to do and CC 410. But I do like the features of Codio, especially when I have to help with different questions that you have, I can go look through your code. But if you do run into big issues, let me know and I can help you pull these outside of Codio to run some of those tests.

So looking ahead, this is week eight. Next week, we’ll have week nine and week 10. We’re going to do those as combined. So there will be one milestone across week nine and week 10. But there will be two different lab modules that you’ll go through. Module nine will cover external libraries for you’ll add a library to represent a cash register for your projects that will be a lot of fun and that will be the major milestone is incorporating that cash register into your project and also incorporating the orders and combos that we built in the previous month. milestone module 10 is kind of a quick milestone where we’ll look at what it takes to actually actually package your project and make it available as a release. This is something we won’t actually do. But you’ll do it as part of an example just to see what that looks like. And then, of course, because this is one of those combined weeks, sometime before week 10, you’ll need to schedule a time to meet with me for your final project. Again, hopefully, by this time, your final project is starting to take shape, or at least you have a pretty solid idea of where you’re going. As we move into April, the milestones for the restaurant project should get a little bit smaller. And that’s supposed to give you more time to work on the final project as we go forward in April. So that by early May, you’ve got a pretty good final project that you’re ready to present. And then of course, as we go through April, like always, we’re going to talk about web API’s probably look at some serialization, things like that.

So as I said, we’re at week eight, we’re finally at the halfway mark of the semester, it’s going to be a very long semester, because we don’t have spring break this week. If we do reach a point where we feel like everybody’s getting a little overwhelmed, we can kind of back things off a little bit, but so far, I think everybody’s keeping up there’s just a small group, but if things are getting a little overwhelming, let me know and we can adjust things as needed. But otherwise, keep up the good work. Keep pushing at it, and we will see you next week.