Fall '21 Week 4

YouTube Video

Resources

Edited Transcript

Hello, and welcome to the week 4 announcements for CC 410 in Fall 2021. So this week, you should be wrapping up the second restaurant milestone, which is all about documentation, unit testing and using UML diagrams to show us the structure of your program. Hopefully, that’s all going well, it’s all due tonight. So make sure you get that submitted online. As always, I’ll try and go through and grade it sometime tomorrow and give you really good feedback on canvas and GitHub. And hopefully you can use that to work towards your next restaurant milestone.

So this week, we’re going to be discussing inheritance and polymorphism. It’s one of the most important topics in object oriented programming. And we’re going to look at how we can use use inheritance to improve the structure of our programs by taking advantage of shared attributes and methods between classes that are related. Also, this week, I’d like you to fill out a quick survey called a start, stop continue survey. It’s completely anonymous, it doesn’t track anything about you. It’s in Qualtrics. Basically just asks you if there’s something you’d like me to start doing as your instructor, something you’d like me to consider stopping doing, or something that you see that I do that you’d like me to make sure I continue to do, I try and use this as kind of an informal tea Val at about a third of the way through the semester just to see if there’s anything I should change or do differently in my projects. And this week, you also get some time to start thinking about and working on your final project. And also the next restaurant milestone, which is actually due not next Monday, but the Monday after that.

So the following week, you’ll be working on debugging and logging, and lambda expressions, and all of those different things. And that’s when your third restaurant milestone will be due on September the 27th. So you’ve got two weeks to work on the upcoming milestone, where we’re going to do a lot of refactoring of your code. Also, that week, I’d like you to schedule your final project presentation. The second final project meeting with me. So it’s really important that you take some time over these next couple of weeks to think not only about your restaurant project, but your final project. So for the third restaurant milestone, this is where we will enforce all of the general requirements. So your code needs to have documentation it needs to have unit testing, it needs to have passed the style checker. For Python developers, it also needs to pass all of the type checking as well. So make sure you get that all in there. You’re going to be adding inheritance to your classes, we’re going to add a couple of new classes and refactor a lot of our existing classes to take advantage of those inheritance… relationships, you’ll also add some new unit tests, you’ll update your diagram. The nice thing is this is really only about a 1500 new lines of code. But there’s a lot of code that’s going to be changed and updated. And so this one is much more thinking about the structure of your program than actually writing tons of code. And then of course, as always, the feedback is always welcome on these restaurant milestones. If you have any questions or anything that’s unclear in the restaurant design itself.

So some hints for this milestone, big thing is to work in small chunks, try not to make all of the changes at once. But make a small change, like change one class, get all of the classes that should inherit that class changed, and then see if that works. You’re using Git, so make sure you keep that in mind. You can commit early, you can commit often. And if you make a mistake, you can always roll back to an earlier commit. There’s some really good guides online for how to do that. This time, you could also try test driven development. Now that you know how to use unit tests, you can write some unit tests of things that your code should do, and then refactor your code and see if you can pass those unit tests. The other big hint I give is, in this milestone, we’ll create an order item class. I really encourage you to inherit that on your base classes, not the individual entree and side and drink item classes. It’ll make sense when you get into it. But I really encourage you to do it that way. And then don’t be afraid to ask questions on syntax, especially when we start working on inheritance and polymorphism. There are some strange syntax that you might run into.

In the next module you’ll also learn about lambda expressions which have some strange syntax, so don’t be afraid to ask questions if you’re unsure. Looking ahead from here, module four, we’ll start we’re talking about inheritance this time. The next module Next week, we’ll talk about debugging lambda expressions. And you’ll also have a final project milestone due. Then we’ll get into the graphical user interfaces, we’ll spend a couple of modules talking about GUIs and Event Driven Programming, and how we can build a graphical user interface for our program. And then towards the end of the end of the semester, we’ll talk a little bit about web and web API’s and how we can build a web interface for our program as well.

One quick announcement I want to give you that’s important to this class. I will be going on vacation the first week of October so I leave on Friday, October the first and I’ll get back Saturday October the ninth. During that time, I may have some times where I have limited email and discord access, especially during the day as we’re traveling. So because of that if you have questions, please use the cc410-help email address that goes to me and it can also be forwarded to any of our other faculty that might be helping me out especially while I’m out on the road. I will be watching email and discord, I will try and respond, it will probably be very late in the evenings most days when I get to respond to you, but I will do my best to keep up. And so because I’m going to be out of the office, your responses may be delayed a little bit, I may not reach my 24 hour, or my one business day response time. And because of that, if there are a lot of questions on these projects, I may shift some due dates around to give you enough time and give me enough time to make sure that we’ve got everything covered. I don’t think this will be a big problem. That’s the week we’re introducing GUIs. And that project is generally pretty easy to follow based on the example project I give you. So I’m not anticipating a bunch of questions that week, but we’ll see how things go.

So other than that, hopefully your code is not on fire at this point. And hopefully it doesn’t get any worse as you’re trying to do all this refactoring with inheritance and polymorphism. But as always, good luck on this restaurant milestone. If you have any questions, let me know and otherwise you’ll hear from me again next week.