Spring '23 Week 4

Resources

Edited Transcript

Hello, and welcome to the week for announcements video for cc 410 in spring 2023. This week, you should have wrapped up the module on documentation unit testing and creating UML diagrams for your project. There’s also an example and then the second restaurant milestone that’s all about adding testing and documentation to your restaurant project. Hopefully, you’ve got all of those turned in by now, and I’ll work on getting them graded later this week. But as always, if you have any questions, feel free to let me know. So this week, we’re going to dive more deeply into some object oriented programming concepts. Specifically, we’re going to talk about inheritance and polymorphism. It’s a topic you’ve learned about once before, but now we’re going to approach it from a more advanced perspective and see how we can add that into our project to make things work a little bit better. There’s an example that you’ll go through to add inheritance to your project. But there is not a restaurant milestone due this week. Instead, you’ve got two weeks to work on this milestone, because it is a little bit bigger. And it does require some thought. The one thing I will have you do this week is a start stop continuous survey, it’s a short survey that tells you basically gives you the opportunity to give me some anonymous mid semester feedback by telling me if there’s anything you’d like me to start doing anything I’m currently doing, you’d like me to stop doing, or anything that I’m doing that you’d like me to make sure I continue doing. I try and read this feedback as closely as I can. And I will let you know if I make any changes to the course based on that feedback. And then of course, since you don’t have a restaurant milestone this week, you may want to take some time to work on your final project and be thinking about ideas of things that you want to do at the end of the semester.

After this week, next week, we’ll have a module on doing some debugging and logging. We’ll talk a little bit about Lambda expressions, which are part of what we need to do for some of this. We’ll have a small example on doing debugging logging. And then next week, you’ll have your third restaurant milestone do as well as a check in for the final project. It’s due by the end of February. So for milestone three in the restaurant project, this is the first milestone where we are enforcing all general requirements. So make sure that your project passes all of the style checkers, it has all the documentation for Python and should also pass the type checkers. So make sure you have all that taken care of I will be going through your code pretty closely for milestone three, and making sure that it meets all those coding requirements. From here on out if you don’t meet those general requirements, there will be pretty significant point deductions, just like in a professional programming shop, you need to turn in code that is working is documented correctly and is styled correctly, otherwise, they won’t accept it. So make sure you work on that. The big thing you’re working on in this milestone is adding inheritance to your classes. So you’ll end up refactoring some of your code to deal with new interfaces and new parent classes. So you’ll need to work on that you’ll also update a lot of your unit tests to deal with the new structure, you may also need to update your UML diagram and make some changes there. It’s a lot of changes in your code. But really, there’s only about 1500 lines of code that you’ll actually end up touching. The rest of it carries forward pretty easily. But it does require some more advanced thought and being a little bit careful on how this milestone works. And then of course, as always, if there’s something unclear about the milestone, feedback is always welcome.

So some quick hints for working in milestone three, the biggest thing I can tell you is to try and work in very small chunks, pick one particular thing that you’re going to do and try and get that working before you work on something else. Don’t tear the whole project apart and try and make all of the changes at once. That’s really, really difficult to do. The other thing about milestone three is you have Git Git is your friends. So as soon as you get something working, commit that so that you have it. So commit early and commit often. And that way, if something doesn’t work, you can always roll back to a previous commit, instead of trying to manually undo your changes. This always trips student up students out that they break something and they don’t know how to fix it. And then they have to roll all the way back to Milestone Two and start over. So commit early and commit often as you make changes. This is also a good opportunity to try test driven development. We talked a little bit about this in the last chapter. So you can actually go through and write some of your unit tests before actually changing the code and then work on changing your code. So that meets the unit tests. It’s something you can try if you want this time. The one big thing I will tell you there is an item or an Order Item class, I can’t remember what I called it this semester. But I highly recommend inheriting that class on your base classes. So your base class for the entree, the side and the drink instead of inheriting it on each of the subclasses. So that item interface will carry through as you inherit that, so make sure you work on that. And if you have any questions on any of the syntax for anything that we’re doing, feel free to ask me questions. There is some strange syntax with some of the unit tests and lambda expressions that we’ll do. So if you have any questions or get stuck, feel free to ask me when you get to that point.

So looking ahead from here, we’re working on inheritance and debugging in the next couple of milestones. Then we’ll go to milestone six and seven, which are the two new ones for this semester on design patterns and test doubles. So be worth watching out for that. And then after those modules will go into GUIs, web API’s etc. So hopefully it doesn’t feel like everything’s on fire but I’m sure at some point when you’re working on this project it will feel like everything has come apart. Because adding inheritance after the fact is kind of tricky, but that’s why we’re doing it is we really want you to see that experience of adding it after the fact instead of coming in with that design. So hopefully you see the value in thinking about inheritance in future designs. As always, if you have any questions, let me know and I will look forward to seeing you all again next week.