Fall '23 Week 4
Hello, and welcome to the week for announcements video for CC410 in fall 2023. This week you should be wrapping up the second restaurant milestone, which is all on documentation testing in UML. You’ll be adding documentation and testing to your code, so this is a lot of code to add to the restaurant project, and it’s really the first time you get to work with unit tests. Hopefully you’re able to figure that out and get that working, but if not, let me know. And so you should be turning in the second restaurant milestone pretty soon, and I’ll work on getting those graded later this week, but hopefully that module goes well, and you’ll be able to move on to the next stuff.
This week we’re going back to some of the concepts in object -oriented programming. We’re going to spend some time talking about inheritance and polymorphism, which is a topic you’ve seen before, but we’re going to go at it a little bit different in this class, coming at it from more of a theory perspective of why we do this. You’ll have an example of how we use inheritance and code, and then you’ll have some time to work on the final project as well as fill out a start, stop, and continue survey. Really briefly on the start, stop, continue survey, what that is is it’s a very quick survey that I ask throughout the semester in a basically last three questions. It asks you if there’s anything you want me to start doing that I’m not doing, if there’s anything you want me to stop doing that I’m currently doing, and if there’s anything you want me to continue doing if I’m currently doing it. It’s completely anonymous. It’s kind of meant to be a mid -semester T -val, but at this point it’s a good chance to check in and see if there’s anything I can do differently or anything I should make sure I keep doing for you. So feel free to fill out that survey if you have any comments or feedback on the way this class is going.
So next week we’re going to add some additional new content. We’ll talk about debugging, logging, and Lambda expressions, and you’ll do an example around that, and this is where the third restaurant milestone is. So this is one of the couple of times in this class where I actually give you two weeks to work on a restaurant milestone just because it’s new and it’s different content, and so I really want you to take some time over the next couple of weeks to go through that restaurant project. Don’t save it until the last minute. Please take a look at the restaurant milestone as soon as you get there so that you know where you’re going. Also by the end of next week I want you to schedule the second final project meeting. This is a chance for us to check in. chat a little bit more about your final project ideas, see kind of where you’re going, and if you need any help or assistance getting started on that.
So, like I said, milestone three is gonna be doing two weeks. This is the first milestone where I’m enforcing all of the general requirements. So your milestone must pass the style checker, the type checker, it must have documentation comments for everything, it must have unit tests for everything. So it’s a really big milestone. You’re going to add some inheritance and refactor some of your existing classes. So we’re gonna take everything apart and kind of put it back together in different ways. You’re gonna have to add some new unit tests to enforce that. You’re also going to be updating your UML diagram. And so overall, I think milestone three, you really end up touching only about 1500 lines of code. So it’s less lines of code than the previous milestones, but it’s much more complex because you have to be pretty selective about the lines of code that you’re updating. And then of course, as always, feedback is welcome on these milestones if anything doesn’t make sense.
So some quick hints for milestone three. First and foremost, really try and work in small chunks. One of the things I see a lot of students do on this milestone is they take apart their entire project and try and do all of the inheritance refactoring in one shot. And that can work, but if you break something, it’s really hard to tell exactly what you broke. So try and work in small chunks. Try and do inheritance for the entrees first. Try and do inheritance for the drinks first, something like that. As you’re working, anytime you get something working, commit to get. So commit early, commit often. That way, if you do make a mistake, you can roll back to a previous commit instead of trying to figure out how to undo what you did. This is also a good chance where you can try test driven development. Now that you know how to write unit tests, you can actually try and write your unit tests and then write your code to match the unit test. It’s kind of an interesting concept. One big hint that’s not clear in the milestone itself is that order item class that you’re going to make. I think I call it item or order item this semester. You’ll want to inherit that on your base classes. You’re going to make a new base class for drinks side and entrees. That’s where you want to inherit the order item. If you try and inherit order item on the actual entrees themselves, like the Riker or the Picard, it gets a little complex. You really want that hierarchical inheritance, so make sure you do that. Then, of course, if you have any questions on syntax, let me know. We’re doing some new things in both Python and Java, so you may not have seen all of this syntax before. If you have any questions, just let me know and I’d be happy to help.
Finally, after this looking ahead, we’re talking about inheritance in this module. Then we’ll talk about debugging. We’ll have some time for design patterns and test doubles going forward. Hopefully, everything’s not on fire, but sometimes that’s how this module can feel. Do the best you can to take your module apart and refactor it and make sure that you keep things under control. As always, if you have any questions, let me know and I will see you again next week.