Fall '25 Week 1

Resources

Edited Transcript

Hello, and welcome to the week one announcements video for CC410 in fall 2025. Welcome to a new semester. My name is Russ Feldhausen. I’ll be your instructor this semester. My contact information is here. It’s on the syllabus. It’s on the Canvas homepage. It’s in the introductory video. Hopefully you can easily find a way to get a hold of me. Please be aware that I work remotely out of Kansas City most of the week, so I won’t be available on campus. I do come to campus on Mondays. So if you want to meet with me in person, Mondays in the morning is probably your best bet to do that. But since this is an online course, I’m guessing most of you might be online as well. And so I should actually be really easy to reach either via email, Ed Discussion, Teams, Discord, whatever you want to use.

So in this course, the big picture is we’re going to do advanced programming. We’re going to reinforce a lot of the object-oriented programming principles you have learned earlier in this program. We’re going to introduce things such as unit testing and design patterns and really give you a lot of practice to become a better, more well-rounded programmer in this program. We’re also going to introduce a lot of new content such as building graphical user interfaces or GUIs, web interfaces, data serialization, interacting with web APIs, all sorts of stuff like that. The way we’re going to do this is we’re going to do several large example projects, which are guided examples that I walk you through step by step on a video. These will probably be the longest videos you’ll come across in this class where some of the examples are going to be 30, 45 minutes long. The nice thing is having it in a video, you can pause, rewind, go fast, whatever you need to do to get through that example. But I take you through the example step by step by step so that you can get that put together. And then, of course, we’re going to do a restaurant project, which is basically the same idea, but you’re going to do the work yourself. So whatever we do in the examples, you’ll then apply that to a restaurant project. We’re going to build a point of sale system for a fictional restaurant, which I think is a really fun project to do. And then throughout the semester, you’ll also be working on your own final project. The final project is going to be smaller in scale than the restaurant project and probably related in structure and outcomes. And we’ll talk more about that final project as we go throughout the semester. But just be aware that that’s coming.

So in this class, we’re going to introduce you to a lot of new technologies. First and foremost, we’re going to use Git and GitHub Classroom. Git is the code management tool that most professionals use in industry. It’s a great way to keep track of your code and integrate with others. So we’re going to start learning how to use Git and GitHub. We’re going to use automation tools in Python such as TOX so that we can automatically run our unit tests, run our style checkers, run our type checkers, anything like that. So we’re going to do some automation. We’re going to introduce type checking in Python. Python is a strongly typed language, but it is a dynamically typed language. And so we’re going to introduce type checking to make it closer to a statically typed language. I think this really helps as your projects get bigger. It helps you keep track of what your actual data types are and how they interact with each other. So we’re going to introduce some of that. We’re going to introduce unit testing so we can actually test our code and make sure it works. Unit testing is super important. I’m working on a side project right now and wrote about a thousand unit tests for it over the course of the summer. And those unit tests helped me fix dozens of bugs in my code that I probably would not have caught without going through unit testing. We’re also going to enforce a programming style guide. So we want you to start writing your programs following the PEP8 style, which is the standard Python style for programming. So this is things like spacing, the length of your lines, the order of your imports, things like that, to make your code fit a little bit better with a professional coding style. We’re also going to learn how to write some documentation for our code using some comment strings that go at the beginning of each function and each class in your code. So lots of new stuff that we’re going to do in Python this semester.

So like I said, final project, you get to choose the topic for your final project. It will roughly align with some of the skills we’ve used in this class, but this is really where we get to take the training wheels off and let you run with a project that is your idea, your own topic. I really encourage you to align it with things you’re interested in. I usually work with students throughout the semester to help you find a final project topic and kind of fit it into the scope and scale of what’s actually achievable within this class. So don’t worry too much if you don’t have an idea right now. I will work with you throughout the semester to come up with an idea. You’ll go through a few milestones with that. And then at the end, you’ll give a presentation. With this class, we usually just do recorded video presentations to make it a little bit easier since we’re teaching online.

So we are looking down the barrel of week one. Week one is mostly the administrivia week where we just introduce the class. But the big thing we do is we do a project called Hello Real World. If you remember the Hello World project, which is probably the first programming project you ever did, we’re going to do that again, but this time we’re going to do it as if we are a professional software engineer. So we’re going to have unit testing. We’re going to have style guides. We’re going to have type checking. We’re going to have all those cool stuff in a Hello World program. I think it’s kind of cool. You’ll probably also schedule your first final project with me to meet with me probably next week, the week of Labor Day, just so we can chat and get to know each other a little bit and start talking about ideas for your final project. Yes, we’re going to start talking about your final project’s first week of class. You only got 16 weeks. We got to get going on it. So be aware of that. Also, please take note of office hours. I don’t typically hold formal office hours, but I have a schedule link on Canvas, on the syllabus, on Zoom. And it’s also in the email signature of every email you’ll ever receive from me. You can click that, schedule a one-on-one office hour time anytime that I’m available. I’m happy to do that. In this course, like I discussed in the intro video, we use the CC410-help email address. We also have an Ed discussion platform. And so you’ll see posts on there. I’ll make some mega threads for each milestone, for each, I’ll make one for the bug bounty. We’ll have an introductions post, things like that. So Ed Discussion is a great place to chat with me and other students. I will also use that to post hints and tips and tricks for the assignments as students are going through them. So please keep an eye on Ed Discussion. Maybe bookmark that and check that once in a while, just so you see all the discussion that’s going on there as well.

Then we’ll switch over to week two. Week two, the first week where we really do a big project where we’re going to start building an open, an object-oriented programming class library that is the basis for our restaurant project. We’re going to build the menu as all of these different classes representing the entrees, sides, and drinks available on the menu. This project is huge. It’s going to be about 2,000 to 2,500 lines of code, depending on how you write it. However, it is mostly boilerplate. Once you write one entree, the other entrees are very similar. So it’s not like you’re writing 2,000 new lines of code, but the end result is you’re going to submit a project that is 2,000 lines of code. This is already way bigger than anything you’ve done in this course, so in this program so far. So just to give you an idea of the scope and scale of what we’re doing, your first week, you’re going to write about 2,000 lines of code. It’s big. Best advice I can give you is to be thoughtful, take some time, think about what you’re doing. Be careful as you copy paste. It can make things go better, but it can also cause a lot of problems. As a quick side note, in earlier CC courses, you were discouraged from using copy paste. I encourage you to use copy paste in this course. I discourage using any online tools such as ChatGPT, Claude, any of those tools. You really need to learn how to do this yourself. Especially a lot of those AI coding tools will cause several mistakes in this program. I have used those tools to try and do these assignments and they create a lot of bugs. And usually you spend more time fixing the bugs than if you just learned how to do it yourself. So be aware. I’m warning you now.

Then week three, we’re going to go into unit testing and documentation. We’re going to take all the code we wrote in week two. We’re going to write unit tests for that. That balloons the size of your project to about 4,000 lines of code. When I did my model solution a couple years ago, I ended up with 423 unit tests. Your mileage may vary. Your number might be a little bit different out of that. But again, the code for the unit test has a lot of repeats. So again, you’re not writing that many lines of code. It’s just a big project.

And then from there, we’ll introduce some more concepts around inheritance, polymorphism. We’ll refactor some of your old code to simplify the structure of the project. And then by the end of September, which is week five, we’ll be talking about your second final project milestone already at that point. And then after that, the rest of the semester, like I promised, we’ll introduce graphical user interfaces, interfacing with external libraries, working on the web, doing data serialization, and so much more. This is one of my favorite classes to go through.

So one thing that you can do is you do have an option of choosing which restaurant you want to work with. I have two different restaurant projects that I’ve written over the years. The first one is called Game Grub. Game Grub is the one that I used for the last couple of semesters. It is linked in Canvas. It’s the easy one to get to. Game Grub is based on video games and board games and things like that. So be aware of that. You can also do one that I call Starfleet Subs, where it’s a sub-sandwich restaurant that is based on Star Trek. That is from a prior semester. It’s available online. So if you’re interested in doing Starfleet Subs instead of the Game Grub project, just let me know and I can show you how to switch around and find those milestones online. Both of those are completely available. I don’t intend to make a whole lot of changes this semester. I think the only change I’m going to make is a couple of bug fixes in the checkout library that we use way down the line in like milestone 8 or 9. So I will talk about that when I get there.

So some big advice for this class. This class is a four credit hour class. I cannot stress that enough. It is four credit hours. That means the expectation is that you’re spending 12 to 15 or 16 hours each week on this course. So take a good hard look at your schedule and make sure that you have 12 to 16 hours available on your schedule. If you’re working 40 hours a week and you have kids, it’s going to be tough. I cannot stress that enough. I have had so many students that are wonderful programmers in this class that do not set aside enough time and they get behind and this class gets on top of them real quick. So schedule your time wisely. Make sure you’re setting aside enough time to work on this. Start early and leave time for questions. Most of the milestones are going to be due on a Monday or Tuesday. If you’re starting the milestone on Saturday, that means you can’t even get an answer from me sometimes until Monday or Monday afternoon. And that does not leave you a lot of time to finish the milestone, especially because I’m on campus on Monday and I teach Monday afternoons. So it takes me a while to catch up from the email backlog over the weekend. So start early. I encourage you to start working on a project like Wednesday during the week if you can. So you’ve got time to get your questions answered. Ask questions, get feedback. If you’re not sure on something, commit it to GitHub, send me your link and say, hey, I just did this. Does this work? I can take a look at stuff and get you on track before you get too deep into the weeds.

Like I warned earlier, use copy-paste carefully. Make sure that you’re not adding more issues by just blanketly copy-pasting code without thinking about it. But once you get one entree written or one side or one drink written, a lot of that code is boilerplate that you can copy over and very carefully modify to match the other different setups. As said, commit to Git frequently, commit early, commit often. The more you commit to Git, the better off you are, because then if anything happens, if you make a mistake, if Kodio crashes, if you accidentally delete a file, you’ve already committed it to Git. You don’t have to worry about that. Every semester, I have a little flag that I can put up every time that a student deletes something and then asks me if I can restore it in Kodio. And I have to tell them I cannot because Kodio does not have backups and you should have committed that to Git. So do that. If you want to use any online resources, you’re welcome to do that. If you get some code from Stack Overflow or something like that, like if you can’t remember how to sort a list or you don’t remember how to do this, go find an online resource and just make sure you cite it in your code. The big thing I tell students is don’t use an online resource to do the whole assignment. But if there’s a bit of code that you don’t remember how to do, that’s how row programmers work. I don’t remember how to sort a list in Python very often. I go find the Stack Overflow or the document or whatever that shows me how to do that. And I just put a little note in my code. It’s like, I got this from here. That’s what you should do. So if you’re not sure, ask me. I’m not huge on stomping on plagiarism and stuff. But if I look at your code and I don’t think you wrote it, then we’re going to have issues. So just be aware of that. Okay.

Other than that, I look forward to this semester. Like I said, this is one of my favorite classes to teach. I think it’s really exciting to see all the different things that you can learn in programming so quickly. I love working with students in this class. So please feel free to keep in touch with me. I have the Ed Discussion board, like I talked about. I’ll be pretty active there. I’m on Teams. I’m on the CS Discord server. You’ll also see some messages about tea time office hours. I usually host those on campus on Monday. It’s a great time to just come in and chat with me about anything outside of class. If you want to just hang out, talk about life, the universe, and everything. And then, of course, I have my one-on-one office hours that you can schedule anytime using the link on the Canvas homepage in the syllabus, my email signature, whatever you want. So best of luck this semester. I’m rooting for you. I’m looking forward to working with you. You’ll see a video like this probably every week, if not every other week. So just be aware of those. Don’t get posted on Canvas just like this one. But otherwise, best of luck, and I will see you again next week.