Subsections of Weekly Updates

Fall '26 Week 1

YouTube Video

Resources

Edited Transcript

Hello, and welcome to the week one announcements video for CC410 in fall 2026. My name is Russ Feldhausen. I’ll be your instructor for this program. Uh, you can find my contact information here. It’s also on the syllabus. It’s on the homepage of Canvas. I, I’m easy to get ahold of, so feel free to reach out anytime. Um, these announcements videos will be posted roughly every week, uh, and unlike a lot of the other videos in this course, these are totally unscripted. This is just me talking through some slides as I go through everything. Uh, I’m recording this right now just right after I recorded the new course introduction video. That is a more formal video introducing the course that has some scripting behind it. This is totally unscripted as I talk through some things that I think are going to be important as you go through the first week of this course.

So big picture in this course, this is a course that really deals with object-oriented programming and building larger scale projects, um, taking you from some of the early learning that you did around programming and data structures and building it out to stuff that’s closer to what you’d see in an actual industry setting for programming. Uh, so we’re gonna learn a lot of things we haven’t done before, such as unit testing, design patterns, working with graphical interfaces, web interfaces, uh, serializing data, and we’re gonna do this through, uh, three different things. We’ve got a lot of interactive examples where I will walk you through the process step-by-step and have you follow along in Codio, and then you’ll be able to take that example and adapt that to a pres- a project we’re doing called the Restaurant Project. The Restaurant Project is all about building a point of sale system for a fictional restaurant. It will involve, uh, data classes. It will also involve a user interface and a web interface.

And then you’ll also be working on a final project of your own design in the background that will be roughly similar in size and scale, uh, to the Restaurant Project. It will be a little bit smaller, but it will be along the same lines as the Restaurant Project, and this is really the first time that we get to take the training wheels off and let you go on your own path in as far as building a project in this program.

Some new technologies that we’ll talk about this semester, uh, first and foremost is Git. Um, Git is a code management tool that you’ll see a lot in industry. It helps you keep track of your code, roll back changes, branching. There’s lots of stuff we can do, so we’ll introduce Git. Uh, we’ll also use Tox for automation. It allows you to run a lot of commands automated, uh, so you can verify things like syntax and type checking. And of course, we’re gonna do type checking, unit testing, style checking, documentation, all of these things that are a big part of actually writing large scale industrial programs. Um, so we’ll work on a lot of these new technologies throughout the semester.

One new thing that’s going on this semester in particular is there has been a lot of changes in the way that we have to do, uh, learning materials in this course. Uh, specifically, we used to use GitHub Classroom to manage all the GitHub repositories for this course. Uh, GitHub Classroom has been deprecated by GitHub, uh, kind of unexpectedly in May, and so we don’t have access to that anymore. Uh, I am working on a new tool that will replace GitHub Classroom. It has not been approved for use yet at K State, but it is in process right now. Uh, I don’t think it’s gonna be ready in time, so we’re gonna do some manual GitHub repos. I’m just gonna manually create the repos that we need since we have a small enough class. It will take a couple of days for me to do that, and there’s an assignment early on in the semester where you send me your GitHub username so that I can link the repos up correctly. Um, so just be aware of that. The other thing I’ve done is I’ve embedded all of the starter code for the examples in Codio itself. And so for most of the example projects, we won’t have to go through the process of cloning a GitHub repo, doing the work, and committing back to GitHub. We’re just not gonna do that in the examples for this semester. We’ll just do them directly in Codio. Uh, the Restaurant Project, final project, and a couple of the examples we will do in GitHub, and so you’ll follow that project. Um, basically, anywhere in the examples you see it referred to, you know, accept the GitHub repo and clone the repo, you don’t have to do that, I’ve already done that for you, um, is really the big thing. I’m hoping this is temporary. I’m hoping that by next semester I have my new platform approved for use so that I can go back to the way I had been doing it, which is managing all of this through GitHub. We’ll see if that actually gets approved. Um, so please bear with me as I figure this out. This is the first semester since I started teaching this course that GitHub Classroom’s not been available. Um, the other thing I will point out is if you see anything that’s wrong or incorrect in the courses, please remember there’s a bug bounty assignment, so you can submit those directly to me, and I will get them fixed, and you get some extra credit. So this is a good opportunity to fish for some extra credit as we go through this change around GitHub.

So like I talked about earlier, in this class, you’re going to work on a final project. Uh, the final project is a topic of your choice, although I encourage you to kind of align with what the Restaurant Project does, so some sort of a business oriented piece of software that stores and presents data. We’ll meet early on in the semester to discuss scope and scale for this project, and then at the end of the semester you’ll create a presentation you’ll present to the class, and you’ll check in with me a few times throughout the semester. So don’t worry about the final project much right now. We’ll talk about it when we meet, uh, individually one-on-one over these first couple of weeks of class. So the first week is really just some administrative stuff and in going through an example project I like to call the Hello Real World Project. Uh, it goes through all the steps of creating a, uh, software engineering project from scratch that is the Hello World Project, but it includes unit testing and documentation and type checking and style checking and all of the things we’re gonna do in this class. Um, you also get to introduce yourself on Ed Discussion, which is a great way to meet other students in this class and to get to know me a little bit.

Then after that, we’ll switch gears. We’ll start working on the actual Restaurant Project. We’ll do a milestone that’s all about building a class library for an object-oriented data project. Um, that project is pretty good sized. It’s about two thousand and twenty-five hundred actual lines of code. It’s a lot of boilerplate code, but you still have to be very thoughtful about how you design it so you don’t end up repeating stuff in weird and interesting ways. Uh, then we’ll go into week three, which is all about documentation and unit testing. This is probably one of the larger milestones in the class. Uh, it ends up being about four thousand lines of code. Much of it is just repeated unit tests, but it’s a really good opportunity for you to practice your skills writing a lot of unit tests and writing them in a way that is very flexible and easily repeated. Uh, it also gives you a good chance to catch errors in your previous code. Then we’ll spend some time introducing inheritance and polymorphism and refactoring some of our old code, and this will get us toward the end of September when we get a chance to meet again for our second final project milestone and move into October. After that, we’ll t- spend some time talking about, uh, design patterns, graphical user interfaces, libraries, web, all sorts of stuff. Um, this class goes through a ton of cool stuff that you haven’t seen before, and I’m really excited. Uh, most students really report that this is the class that makes programming finally start to come together and make sense. So I hope you have that same experience.

One cool thing that we’re doing this semester is you get to choose your restaurant project that you want to use. Uh, the one that’s linked in Canvas and is mostly for the current semester is a project called Game Grub, uh, which is about, uh, building a restaurant around different board games. Uh, I also have an older one called Starfleet Subs that is a, a submarine sandwich shop based around Starfleet from Star Trek. Uh, you can do either one of those restaurant projects. You just have to let me know which one you’re going to do. It will become pretty obvious after your first week. Um, the only rule is if you are retaking this course and you did some of these in the previous semester, you need to switch to the other restaurant project. Um, that’s really why I keep two of them is so if you’re doing retakes, you do the other restaurant that you didn’t do the first time you took this course.

So some quick advice for success in this course. This is a four-credit-hour course. Four credit hours means you’re expected to work anywhere from twelve to sixteen hours each week in this course. I can guarantee from prior students they have reported that that number is pretty accurate. Um, so if you’re working full-time or part-time, if you’ve got other classes, make sure you are leaving enough time in your schedule to work on this course. Twelve to sixteen hours is a good baseline to start with. Um, so schedule your time very wisely. Uh, every assignment you’ve got a week to work on, and you can work ahead. So start early on your assignments and leave time for questions. The big thing I don’t want t- to see you do is if an assignment’s due on Monday and you start working on it Friday night, there’s not a whole lot of time in there for me to answer questions. Um, I don’t work over the weekends as much. Uh, I am available. I try and answer questions when I can, but I also have a life, and I need to do things on my own over the weekend. So just be warned that, uh, if you start on a Friday and you expect to get questions answered over the weekend, it may take me some time to do that. Um, working in this class, make sure you’re being very careful about copy-pasting. Um, there’s a lot of opportunities to deduplicate code, but if you’re not very careful about changing your variables, you can cause a lot of problems. And then of course, especially for the restaurant project and the final project, you’ll have access to Git and GitHub. So commit often and push often so that if you run into any problems, you can roll back. And then, of course, don’t be afraid to use and cite online resources. Um, you know, the big thing is for a lot of these projects, I don’t want you using GenAI to build your code, but any Google search you do today involves an AI tool. And so I’m aware of that, and I just want to know that you’re doing the work yourself and not just pasting in AI. Uh, and so be warned that there will be some times where I’ll ask you to describe code or describe things you’re working on, and that will factor very heavily into some of your grades. So just be aware of that.

I talked about this in the course introduction, but just be aware that this course uses a, uh, stoplight policy for GenAI. Red is a lot of the examples and quizzes and the, uh, big assessments, uh, where you should not use GenAI at all. Um, any suspected GenAI use will be treated as a violation of the Honor Council and may be, uh, subject to penalties. Yellow is what I tend to use for a lot of the restaurant project and the final project where you can use AI if you need to ask it questions or get clarification on something, but AI should not be writing your code at all. Um, the only time you’re really going to see green in this course is when we do our UI design for the web and the GUI part. You can use AI to help with your UI design only. You should not be using it for the actual functionality, but for the UI designs, I’m allowing you to use GenAI without much restriction there.

In keeping with this policy, I wanna be honest with my students about how I use GenAI. Um, I very much do not believe in using GenAI for grading and communication, so any email you get from me, any grading feedback you get from me, that is my own work and my own words. That’s really what you’re paying me for as your instructor is my, uh, expertise in this course. So I don’t use GenAI for any of that. I do reserve the right to use GenAI to help me do code reviews. Uh, in this course, I get a lot of projects that are several thousand lines of code, and it’s just unfeasible for me to read all of that. And so I may make some use of GenAI to help me do some code reviews. Um, but again, any of the feedback that you’re going to get from me is my own work and my own words. Um, usually I let GenAI point out things, and then I will go back and review that myself and confirm what GenAI finds, and then that will be the feedback that you’ll get. Um, I may also use it to generate lesson and learning content, mostly images and fake scenarios and things like that. Um, as of right now, no GenAI content exists in this course, but I wanna be very open and honest about the way I approach GenAI in this course. And so anytime I do use it, you will see that. Uh, but rest assured any communication you get from me is actually from me.

So that’s really, uh, all I got for this first video. Uh, if you have any questions or concerns, feel free to keep in touch. Um, this is by far the longest announcements video you’re gonna get. Uh, most of them are shorter, about three to four minutes. But this first week, this is kind of that first ten minutes of the class where I get to introduce myself in the class and talk to you about what’s going on. Uh, if you have any questions, you can reach out to me on Ed Discussion. You can shoot me an email, uh, to the cc410-help email address. I’m on Microsoft Teams. I’m also on the CS Discord server if you’re there. Uh, and then I also am hosting some office hours. You’ll see some more information about tea time office hours and one-on-one office hours. Lots of opportunities for you to reach out if you have any questions for me at all. So best of luck this semester. I’m rooting for you. I know you can do it. Um, this class tends to be a very difficult course but also a very award– rewarding course as you go through it. So I hope you really enjoy this experience. Uh, if you have any questions or concerns, please feel free to reach out anytime. Otherwise, best of luck, and I will see you again next week.

Fall '26 Week 2

YouTube Video

Resources

Edited Transcript

Sorry, it seems my audio and video are desynched in this video. I’ll see if I can correct that for next week!

00:00 Hello and welcome to the week two announcements for CC410 in fall 2026. So this week you should be wrapping up the first module, which includes the Hello Real World example project. Hopefully you’ve got that submitted on time, but if not, make sure you get that turned in ASAP. This one you will submit on GitHub. You should have received a GitHub repository for this one. And then I’ll go through and get it graded on GitHub and on Canvas later this week. You should also have scheduled your first final project check-in with me, which is a quick one-one Zoom meeting to just chat about the class and some of the things that are coming up. So if you haven’t scheduled that or haven’t had that meeting yet, please make sure you get that on the schedule so I can meet with you briefly on Zoom, chat about the course, make sure you’re on track, and everything to go with that.

00:44 This week, we’re going to start on the second module, which is about object-oriented programming. We’re going to build a set of data classes that represent the menu for our restaurant project, and you’re going to start working on the restaurant project itself. For the restaurant project, you’ll kind of redo the work that you did for the Hello Real World project to build out the shell of your restaurant project, and then you work within that to actually develop the classes. Remember for the restaurant, you can choose which one of the restaurant projects you want to do. There’s one that’s directly linked in the textbooks that is Game Grub. There’s an older one called Starfleet Subs. So unless you’ve been told specifically which project you have to choose, you can choose either one of those projects to work on in this class.

01:17 Some quick updates. Otherwise, remember to check the Ed Discussion Board. That’s a great place to get questions answered, to chat with me, to ask questions about the class. There will be mega threads out there for some of the projects, so feel free to use that. For grading, you’ll see a lot of grading done in the rubric on Canvas. For the restaurant project, I’ll also maybe leave some code comments on GitHub, so make sure you check GitHub, the pull request for that. For the examples this semester, we’re not going to use GitHub for any of the later examples. I know the instructions are going to refer to GitHub, just ignore that part. So with GitHub, basically for the examples, all of the starter code is already in Codio. You’ll just do the work there and then mark that Codio is completed, and I will grade it that way.

02:00 Other than that, hopefully things are going good. If you have any questions, let me know. So for milestone one, like I said, it’s a lot of boilerplate to build all the classes and objects that we need for our restaurant milestone menu. This is going to be a lot of boilerplate code, which you can make things easier by doing some style and documentation stuff now and also structuring your code in a way that you can duplicate some parts of it. I would expect this to take anywhere from three to eight hours to work on it, and it may generate anywhere from 1,500 to 2,500 lines of code.

02:27 Remember the AI policy in this class. You should not be using AI to write your code. You can use AI as a tool. You can ask questions. You can get some advice, but do not use AI to write this code. You should be writing this code yourself. That is the part of the learning goal in this class is to show that you can write the code, not that Claude or any other AI can write the code. Always, if you have any questions or feedback, feel free to let me know. I’m happy to do that.

02:55 Otherwise, after this week, we’re going to spend some more modules on object-oriented programming concepts like documentation, inheritance, testing, debugging, et cetera, et cetera. That will get us toward the end of September when we’ll have our second final project check in, and then we’ll start talking more about your final project. So hopefully everything’s going well. We’re at the end of the week. You’ll see these announcements videos probably every Tuesday throughout the semester. I’m on campus on Mondays, which means I’m kind of hard to get a hold of, and I don’t have my recording equipment with me on campus. So expect a lot of my feedback and things to come probably Tuesday during the week. That’s usually my day to get caught back up on grading for this class. But if you have any questions at all, reach out and let me know. Otherwise, good luck, and I will see you again next week.

Fall '26 Week 3

YouTube Video

Resources

Edited Transcript

00:00 Hello and welcome to the week three announcements video for CC410 in Fall 2026. So this week you should be wrapping up the second milestone, which is the first actual restaurant milestone, the object oriented programming milestone. So you’ll do an example for that and then you’ll be submitting your first restaurant milestone for grading. Remember that this milestone does not require all of the base requirements, so you don’t have to worry about things like style guide or documentation yet. But we’re definitely looking at the structure of your code and also looking at the typing of your code. So make sure you get all of those things taken care of. Quick reminder for everybody, don’t forget this semester we don’t have access to GitHub Classroom because it was removed at the end of May. The videos will still refer to GitHub for all the examples, and that’s because I want to go back to using GitHub as soon as I can, but I’m waiting on my new tool to get approved. So for right now, for the example projects, all of the code will be present in Codio, so you don’t have to clone the repo anywhere. And then when you submit it, you just submit the other assignment and say done, and I will open up your Codio project and do the grading there.

01:04 So you don’t have to do anything with GitHub on the examples. For the restaurant project milestones and for the final project, you’ll still be committing those to GitHub as always. I just manually made those repos for you, but I didn’t do that for all the example repositories. Hopefully here soon I get to use my tool and then we can go back. In the example videos, anytime it refers to GitHub stuff, just don’t worry about that, just work in Codio and everything should work fine. back. So in the example videos, anytime it refers to GitHub stuff, just don’t worry about that. Just work in Codio and everything should work fine. So this week, we’re doing our second restaurant milestone, which is all about documentation, unit testing, and adding some UML diagrams. You’ll go through a quick example of that, and then you’ll update your restaurant milestone to include a lot of unit testing. So in this milestone, there’s a lot of unit tests that you’ll end up writing. My rough count is around 400, depending on how you structure your code. You’ll also have documentation comments to all your code, and you’ll create a UML class diagram for the object-oriented classes in your code. This milestone, again, I think it could take anywhere from three to eight hours to complete this milestone, depending on how efficient you are as you work. The nice thing is a lot of the unit tests are boilerplate, so you can repeat them and make them very easy to work with. But in total, my estimate is this will be around anywhere from 3,500 to 4,000 lines of code. So it’s a very, very large milestone.

02:15 Part of the point of this class is to give you very large projects to kind of force you to learn how to code efficiently. If you sit down and try and write all 4,000 lines of code from scratch at the keyboard, it’s going to take forever. You need to think about how you can structure your code so that you can clearly copy and paste things and adjust things and think bigger about the structure of your code. That’s really what I’m trying to force here. Again, remember, please don’t use any AI tools for this. This is your learning, so you need to be the one to do the work, but this is a good practice for you to learn how to code bigger and more efficiently so that you can work on these projects. Some other big hints for this one. Do not look at the source. And what I mean is when you’re writing the unit test, do not be looking at the code you’re trying to test while you’re writing the unit test. Instead, go back and look at the original menu. So, for example, if the Kirk sandwich has a price of $7.56, don’t look at your code to confirm that. Look at the menu to confirm that. Because if you’re looking at your code, your unit test will always work because it’s checking what’s in the code. Your unit test should be checking what’s in the menu and make sure that it matches the menu. That’s how you’re going to find those mistakes.

03:19 Some other things you can do is you can generalize some of the tests, but don’t try to generalize the ingredients. A lot of classes have specific ingredients for that class, you can’t really easily generalize that without some real work. But you can generalize things like the toppings, or the add ons, things like that those can be generalized because they use an enum. And so one thing you can do is you can look at parameterized tests. And so this is an example of what I call a generalized test, where instead of writing the price and the calories directly in the test, we create variables at the top. And so that way you can copy paste this whole class and then just change those variables and maybe do a find and replace for the Riker and replace it with the Kirk or something like that. And then you’ll be able to reuse a lot of this test code without making many edits to it. So other big thing to keep in mind in this class is a growth mindset. The milestones in this class are challenging. They’re meant to be challenging. And I want you to think about that, that you can always learn and work through this if you read carefully, ask questions and start early. But go into this with a growth mindset. You can learn, you can do this. It’s going to be challenging, but that’s part of the point.

04:23 If I don’t challenge you, you’re not going to really learn and get better. So start early, work methodically, and especially on the restaurant milestone, commit early and commit often to GitHub. That way, if you do screw something up, you can always roll back to a previous commit and start over. That’s going to be really powerful as we go forward. So looking ahead after this milestone, we’ve got a module four and five where we talk about inheritance and debugging. And then we’re already going to be at the point where we have our second final project discussion by the end of September. Then we’re going to go on to module six and seven, which are on design patterns and test doubles. I think that’s probably the most interesting and most useful new thing we’re going to learn in this class is design patterns and how to test them. And then after that, we’ll switch over to do user interfaces and web, stuff like that. So this milestone is all about writing tests. It feels kind of repetitive, but it’s a really important part of coding is actually writing the tests. A lot of professional coders would tell you that they probably spend twice as much time writing unit tests as they do writing actual code. But this is really how you build code that is bulletproof and how you make sure that your code works correctly. So that’s the point of this milestone. As always, if you have any questions, feel free to reach out and let me know. Otherwise, best of luck on this one, and I will see you again next week.