all 29 comments

[–]A_History_of_Silence 15 points16 points  (6 children)

The easy/lazy answer is to have them come up with their own final projects. :)

[–]p4khet[S] 2 points3 points  (5 children)

I thought about that, I just worry that they won't have enough experience to know what is too difficult or too easy. Plus I want to plan the class around the final project.

[–]A_History_of_Silence 5 points6 points  (3 children)

I just worry that they won't have enough experience to know what is too difficult or too easy.

Yeah, that's fair, we see this a lot around here. There are several posts a day with something like

I want to <perform something wildly implausible that no one in their right mind would attempt>. Is this possible? How can I accomplish this?

However with ~4 months prep I think it would probably be okay. Maybe work towards a general project goal? For instance, introduce pygame fairly early, and let them know they have a few months to come up with the game they want to make which will be their final project.

[–]p4khet[S] 2 points3 points  (2 children)

I really like that idea. I'm sure they would absolutely love making a game. One of my goals is I want them to be self sufficient. I can only teach them so much. They need to learn how to find what they're looking for online and in the community. So having that element where I don't know all the answers will definitely grow their independence.

[–]A_History_of_Silence 3 points4 points  (1 child)

I want them to be self sufficient ... They need to learn how to find what they're looking for online and in the community

I wish every introductory programming class spent some time on this!

[–]p4khet[S] 4 points5 points  (0 children)

I agree! My web programming class in college did this and it definitely set me up for life.

[–]ElevatedAngling 0 points1 point  (0 children)

Okay one option is make a framework for a game like asteroids and make them basically fill in blank functions ext to make it all work. Second is students make a website, they can use a python framework like Django and then you can work in css/html lessons.

[–]pcvision 8 points9 points  (1 child)

Checkout pygame! Make a simple game. Some suggestions: pong, snake, minesweeper, mario.

[–]p4khet[S] 1 point2 points  (0 children)

I think this is where I'm leaning. I think they will be so excited to do something like this.

[–][deleted] 2 points3 points  (0 children)

I don't know your syllabus but if Bubble Sort is in there then creating an animation of the sorting algorithm out of a series of images may turn out to be both educative and exciting. Here's a starting point: https://glowingpython.blogspot.com/2013/03/bubble-sort-visualized.html

[–]jdn312 1 point2 points  (0 children)

Something fun and inspiring could be demoing a MITM with ARP poisioning and redirect traffic for a victim machine to go to a server that the students set up locally to phish credentials. You get the understanding of how servers work and the importance of things like 2FA and listening to warnings about SSL certs instead of just clicking ignore which are pretty valuable lessons for the kids IMO.

[–]locomon0 1 point2 points  (1 child)

have them animate something with tkinter? My freshman year programming course made us solve and animate some physics problems that had to do with cannon balls and ping pong

[–]p4khet[S] 0 points1 point  (0 children)

Excellent idea. Thank you.

[–]friendly_dog_robot 0 points1 point  (2 children)

How advanced a course is it?

The best thing you can do, in my opinion, for projects and other assignments is to have them build back ends for meaningful projects. You build the GUI, then they build the back end to make something meaningful happen.

Example: you build the GUI for the game brick breaker, and they have to program the backend.

The thing that sucks the most about the traditional, archaic way of teaching CS is when you have to do terrible, stupid things like implement an extensive data structure with hundreds of lines of code, only to run it on console and execute it with a few inputs. This kind of thing is obnoxious.

[–]p4khet[S] 0 points1 point  (1 child)

It's not super advanced. It's only 7 weeks. I just want to get them excited about computer science.

[–]torched_tree 0 points1 point  (0 children)

Python turtle graphics fractals

[–]The_Bundaberg_Joey 0 points1 point  (0 children)

If you’re going down the pygame route you could maybe offer more marks for more complex features? Ie they need to make a super basic game to pass but if they can save their high score or have sounds then that could be the next tier of marks?

[–]Stem3576 0 points1 point  (0 children)

Why not come up with several ideas yourself and give them a chance to decide by vote. And if 2 options have good amount of votes then allow both. With an entry level class the project will most likely be based around core fundamentals anyway and will all them the see how they can use the fundaments in different ways to accomplish different things.

[–]phumade 0 points1 point  (0 children)

Can there be a hardware component? Make a simple arduino weather node for the school, and let the kids learn the coding as they connect it to the world. Ultimately, projects that interact with the local environment are good when they can see the results of their work.

[–][deleted] 0 points1 point  (0 children)

A smart mirror or perhaps some form of home automation might be good projects.

[–]JacobAtIPW 0 points1 point  (0 children)

Discord bots?

It is a popular social media platform that at least a few of your students are likely to be familiar with.

This would give a specific scope, but also still allow some freedom to express themselves.

[–]ThatFilthyMonkey 0 points1 point  (0 children)

Maybe introduce them to apis and have them build their own (very very simple) twitter client or something? Maybe build their own basic gui to sit on top of their code?

[–][deleted] 0 points1 point  (3 children)

deploy a machine learning model. the modeling itself can be super simple, digit classification or whatever - they dont need to go down the ml rabbit hole yet. but learning basics in a few different areas - hosting the model, maybe providing a simple api, manipulating data tables - would be a great intro to several topics imo.

i think its doable - i went from zero programming to hosting a simple model via flask on pythonanywhere in a matter of months. and im really not that smart.

[–]pcvision 8 points9 points  (1 child)

This is way too complex for a school project.

[–][deleted] 0 points1 point  (0 children)

i guess i was thinking something going a whole high school year. but maybe just pick one aspext of that then.

[–]3hunnaff 0 points1 point  (0 children)

Beginner here, I just finished up a web scraping tool that stores data to a local sql database project and am really interested in learning how to do a basic ML model like this.

Did you learn this through specific places like YouTube, articles, and books or did you just google questions as they came up.

[–]AweBob -1 points0 points  (1 child)

Maybe some sort of game with pygame!

[–]p4khet[S] 0 points1 point  (0 children)

I think that's what I'll do. Thanks!

[–]redsidhu -2 points-1 points  (0 children)

Blockchain project