Fall '25 Week 3
Resources
Edited Transcript
Hello, and welcome to the week three announcements for CC410 in fall 2025. So, this week you should be wrapping up the second module, which I believe the milestone for that is due pretty soon. So, make sure you get that turned in. You’ll be doing the example for that, and you’ll be doing the first restaurant milestone. For this first restaurant milestone, I will try and give pretty detailed feedback, usually within a day or two of getting it submitted. So I’m hoping to work on that either today or tomorrow of this week. I also will give you feedback on your Hello Real World project. I haven’t had time to get to that yet because we had some other things going on this semester, but I will get you feedback pretty quickly for your first restaurant milestone so you can roll that into your second milestone, which will be new next week.
So this week, we’re going to introduce some new concepts around documenting your code, doing unit testing, and developing some UML diagrams for your code. You’re going to do a quick documentation and testing example. Make sure you finish that example completely. Read the instructions, make sure you get everything done. And then for the second restaurant milestone, you’ll be adding documentation comments and unit testing to your code. So for this milestone, you’re going to write around 400 unit tests. That’s including all of the parameterized unit tests. It depends a little bit on the approach that you take, but my model solution had around 400 tests. You’re also going to write some documentation comments, and you’re going to include a UML class diagram in the root of your GitHub repo. Make sure you put that in the correct place. Generally, you need to put that inside of your repository folder, not at the top level, because then it won’t get included in your GitHub repository.
Again, this milestone should take you anywhere from three to eight hours to complete. This will be around 3,500 to 4,000 lines of code, including the documentation comments that you’re going to add. And as always, feedback is welcome. So one big hint I will give you for this milestone, do not look at your original source code when writing the unit tests. Instead, go back to the original documentation for the project and make sure your unit tests are checking against that, not your source code. A great example is the price for every item. Instead of looking at your source code for the price of an item, go back and look at the milestone one requirements for the price of that item and write the unit test based on that. The reason you should do that is if you mistype the price in your source code, your unit test is also going to have the wrong price in it. So make sure your unit test is testing the specification, not the code. Another thing you can do is use globalized attributes and generalize things, but you have to be careful. You can’t necessarily generalize the individual ingredients, but you can generalize things like the toppings, the sizes, things like that. And so look at using parameterized tests.
Here’s a great example in Python of using parameterized tests and some global variables. For example, here you can see that I have globalized the price and calories. And so then in my code, I’m just checking against those variables instead of having the values put in. That way, if I want to copy paste this entire block of code, all I have to do is change the variables at the top and do a control F for the item and change it to a different item, and then you’re good to go.
So another big thing to keep in mind in this class is a growth mindset. The milestones in this class are challenging. They are meant to be challenging. You don’t learn anything and you don’t grow as a programmer if you are not challenged. So make sure you read the milestones carefully. Ask me if you have any clarifications and start early on these milestones so you can work methodically. Generally, a method for not succeeding in this class is to wait until Sunday or Monday and starting on the milestone the day before it’s due. You generally won’t have enough time. And if you run into any problems, it may take a while for me to have time to get back to your questions. So the earlier you start, the earlier you have questions, the better off you are. And then, of course, we are using Git and GitHub. So commit early and commit often. That way, if you make a mistake, you can always roll back to a previous commit instead of having to carefully undo your changes. That’s what that tool is there for.
So looking ahead after this milestone, the next big module is on inheritance. We’re going to refactor our code a little bit to add some more object-oriented inheritance in it. Then we’re going to spend a little bit of time doing some debugging. And that will get us to about the end of September where we’re going to have our second final project meeting. Then we’re going to talk about design patterns and test doubles. If I had to pick, I think modules six and seven are probably the most useful new content we’re going to cover in this entire class. So please be aware of that. And then after module seven, we’ll start introducing graphical user interfaces, web interfaces, etc.
One other thing to be aware of, tomorrow is the ACM Back to School Bash for Computer Science. So for those of you that are on campus or near campus and want to check out all of the cool student activities and organizations that are going on in computer science, I highly encourage you to attend the ACM Back to School Bash. This is open to everybody, including ICS students, including online computer science certificate students. Anybody in this class is welcome to attend. There will be free food, fun, and events. It is Wednesday, September 10th, which is tomorrow from 5 to 7 p.m. in the engineering building atrium on campus. So please be aware of that. If you want to come join us, I encourage you to do that. It’s a really great way to see what’s going on in computer science and all of the student organizations.
So other than that, that’s all I got for you this week. Hopefully, going through all the process of writing these unit tests is very valuable to you. If you have any questions or concerns, let me know. Otherwise, best of luck, and I will see you all next week.