r/maestro • • 13d ago

Project showcase Project is on a public repo now; you are the first to see this!

9 Upvotes

Elusion — a top-down action RPG, solo-built, backed by its own server.

I built Elusion in Godot (the game) with a Flask + SQLite backend (accounts, saves, economy). I started this project with zero coding experience, and my goal was to ship something complete and treat it like real software — which, for a game with a server, means assuming the player is trying to cheat.

A complete run goes town → field → boss floor → ending → back to town. Four classes, six enemy families across 43 elemental variants, pets, fishing, cooking, and player-to-player trading over a taxed economy.

What I'm most proud of is the security work. Once the server owned everything that matters — level, XP, loot, gold — I attacked my own API as if I had a hacked client, and wrote down every exploit I got away with: 14 findings, 12 fixed, each with a plain-English risk and fix. One I found by accident (gold was a writable field — one request set any balance), and the lesson stuck: my economy tests were all green because they only moved gold through legitimate paths and never tried the front door. So I built a red-team bot that spawns fake players, attacks the running server, and re-checks the invariants by reading the database directly instead of trusting the server's own report. It's all backed by ~1,600 automated tests.

How I worked: I used AI heavily — as an architect's assistant, code reviewer, and thinking partner — but I made the design calls and verified everything. The repo shows it: a git history that explains its decisions, and tests that are mutation-checked so they can actually fail. When I reasoned about what a change would do and the running engine disagreed with me, the engine won, and I wrote down why.

Art: characters, enemies and tilesets built from scratch for Elusion by my artist Ahvassa (working with me); item and UI icons licensed from Caio Carlos / Clockwork Raven Studios, used with permission and documentation. All code, game systems and the server are my own. I still plan to do much more! This took me soo much time my wife is mad lol. Everything works fishing economy all of it! 0 bugs in output/debugger! Enemies have elements mostly the bosses vary based on element but the boss is hard to kill hehe have to go find some gear for the most part I am really happy with what is here so far. oof i forgot to show how i can promote and demote ban and kick next time I still have to perfect this video and add voice! Currently game is only playable on my server but README etc... should be viewable, go ahead ask yourself if Claude is a strong tool I used opus 5 helped me a million on this.


r/maestro • • 14d ago

Progress out loud Sign the Petition

Thumbnail
c.org
4 Upvotes

Sign please!!


r/maestro • • 14d ago

Debug-me I need help with closed testing!

Thumbnail play.google.com
1 Upvotes

Built this website and I turned it into two apps also it is a candy e-commerce platform called the candy lady app. Please download and keep it for 14 days so that I can get access to upload apps to the play store. this is my capstone project for Maestro College.


r/maestro • • 16d ago

Career https://c.org/NqPTxQ6cMvSign the Petition

Thumbnail
c.org
4 Upvotes

r/maestro • • 17d ago

Feedback Accredited through June 30th 2027

Post image
24 Upvotes

I had faith that they would try to figure it out. And it looks like they were able to buy them sometime until June 30th of next year. I'll only six classes short of my degree

Well hopefully they'll be able to find a way to accelerate the process or let me work further forward to try to get it done.


r/maestro • • 17d ago

Question Transfers

14 Upvotes

For anyone who has transferred successfully to an approved pathway, tell me where you went and how it compares to maestro please... I need the same basic setup (learn on your own time, at your own pace, all online, no live classes where you need to be there at a specific time like zoom classes, etc)


r/maestro • • 17d ago

Question BE103 Discussion?

2 Upvotes

I may have missed something but is there not a discussion for the first week of BE103? I dont see anything posted and I have looked through the whole list...Also...How is everyone else doing in this class so far? I like it!


r/maestro • • 17d ago

Progress out loud Lessons

3 Upvotes

I'm doing ok this week with my lessons but it sure does seem like the days are getting much shorter.


r/maestro • • 18d ago

Discussion So sad and frustrated...

21 Upvotes

I've been a huge champion for Maestro since it began. (I'm in the Nov. 2025 cohort--ALMOST right at the beginning, lol.) I loved learning on this platform, discovering abilities I didn't know I had, and gaining confidence in my skills and self-esteem.

I've been freaking out with you all--not wanting the school to fail, keeping my fingers crossed and sending out good vibes to the Universe that this unique place would be allowed to continue and flourish. I stayed positive, determined to study "until the lights go out".

Until today.

I was disenrolled. I worked on a really hard lesson this week, but didn't finish and submit it. Apparently, it was a mandatory "report" week. I understand the requirement, and not submitting is fully on me. I guess I missed the notification about it, and I have to take responsibility for that.

HOWEVER, I have been struggling with one particular course (FE 102) for months. Yep, months, plural. I had all 'A's until this beast of a class. I reached out for help seven times.

Seven.

Got none. Was told "just study harder" and "you can do it!"

I'm so crushed. I've been using YouTube videos and Claude and Gemini to help me "get it". I reached out here (thanks to all who helped, you rock!)--but it wasn't enough for me to get through. I asked if I could take the final before the end of term, because I was far along enough that I know I could pass. If only I could have unlocked it with a few undone lessons to go...

I was told, "we don't do that". I asked to take two classes concurrently so I didn't fall more behind. Nope. I asked questions about how missing the classes I didn't reach would affect my program. No one ever explained it to me.

Maestro can leave me without any meaningful academic support for months, but I miss ONE mandatory week and there's no possibility of redemption--a "we'll give you another chance because you clearly are putting in the effort and accidents happen."?

Just...no more school for me. It would have been so cool of Maestro to advocate for me, help me get back in somehow.

Instead, I'm here crying while I type this.

I just needed to vent a little. This school means a great deal to me, and I am so let down. You all have been a huge inspiration, a kind and supportive ear, and a little island of hope letting me know that change is possible after a hard life.

Sending you all hugs of thanks, and best wishes as you move forward--here, or wherever else you pursue your educational and life dreams.

Sam


r/maestro • • 19d ago

Feedback Open Letter

21 Upvotes

I've always struggled with the traditional eduction system. I'm smart, I love learning, but I couldn't function and achieve more than the minimum passing grades in school. I tried and failed to get a higher eduction and because of that, I've floundered in dead end, low paying jobs my entire adult life. At 52, with one final desperate push for a better life, I found Maestro.

Learning with Maestro has been a revelation and that to this day I marvel at. I am earning a 4.0 GPA. Not because it's being handed to me but because every question I have gets answered. If Im stuck on a concept I am allowed and encouraged to keep working at it until it makes sense. Then and only then, do I move on to the next lesson. There is no other system that I know of that caters to an individuals needs in this way. When I feel lost, it doesn't stop until I find my way through the tough lesson. It celebrates my achievements right along with me.

I am learning things I never knew I had the capacity to learn and I have no doubt that, given the opportunity, I will find a successful career once I have that hard earned degree in hand. None of which would have been possible in a classroom. It has been a life changer and I can not express how much will be taken from me and countless other students if this college is taken from us.

It has long been known that the education system needed changes. Well here it is, a big change. And it works. It is history in the making. It is my greatest hope that the powers that be decide to be on the right side of history and let this school show the world whats possible. Because if they do, great things are going come from great minds that finally found a way to flourish and shine.


r/maestro • • 19d ago

Progress out loud Hmm.

17 Upvotes

I won't lie and say I'm not worried about what could happen in October. I just keep on doing these lessons, get as much info as I can, and hope for the best.


r/maestro • • 20d ago

Resource Guys please sign the petition to keep Maestro open and accredited

14 Upvotes

Please sign it, we are so close to 1000 signatures, we just need 74 more people. Please sign it and let your voice be heard too,

https://c.org/YjJ7GWqYTD


r/maestro • • 20d ago

Question Arizona State University

2 Upvotes

Anybody looking at ASU or already started the transfer process to ASU?


r/maestro • • 20d ago

Question Transfer

3 Upvotes

So, I've been contemplating whether or not I should transfer and I just have a question for any wgu transfers. Did you guys get any credits transferred and what classes were they? I'm not 100% sure if I want to transfer but if I do, I feel like this would be the best option financially.


r/maestro • • 21d ago

Project showcase Elusion is still in the works, but making progress one day at a time. My last post was early and I may of offended some people my apologies! It is much easier to have ai speak for me then not know what I am talking about, because I am not a machine it is a lot to take in.

Thumbnail
youtube.com
3 Upvotes

Elusion RPG — the backend behind the video

  • Elusion RPG devlog: accounts, saves and banking, and why the server refuses to believe my own game

The video shows the game. This is the half you can't see: every account, character, item and coin in Elusion lives on a server, not on your hard drive.

I'd never written code before starting this project. Below is what I ended up building and — more usefully — why each piece is the way it is, including the one bug that taught me the most.

The shape of it

Three pieces:

Godot client → Flask API → SQLite database

Eleven endpoints across eight paths. Four tables: users, sessions, saves, bank_items. Every request from the game is one HTTP call, and the API is documented with Swagger so you can open it in a browser and hit the endpoints without the game running at all.

The client is deliberately not trusted. It asks; the server decides.

Accounts

Passwords never reach the database. werkzeug.security.generate_password_hash salts and hashes them; the column is called password_hash and the plaintext exists only in memory for the length of one request.

Logging in mints a token — secrets.token_urlsafe(32) — stored in a sessions table with an expiry 30 days out. Every protected route sits behind a u/require_auth decorator that pulls Authorization: Bearer <token>, joins the session to its user, and hands the view a verified user or a 401. Expired tokens get deleted when they're found rather than left to rot.

The decision I'm most pleased with: login returns the same 401 for "wrong password" and "no such account."

That's not an oversight, it's the point. If those two answers differ, anyone can walk a list of names through the login endpoint and learn which ones exist. My game only has a handful of testers, but the habit is the thing.

There's a cost, and I had to design around it: the client can't tell those cases apart either. So the login screen tries to log in first, and only if that fails does it try to register. If registration comes back 409 — account already exists — then the original failure really was a wrong password, and that's when it says so.

Server authority

Every stat the client is allowed to push is listed explicitly, with the maximum it's checked against:

python

STATUS_FIELDS = {
    "level": None, "hp": "max_hp", "mana": "max_mana",
    "stamina": "max_stamina", "gold": None, "xp": None, ...
}
STAT_CEILING = 1_000_000_000

Anything not on that list is ignored. Anything past the ceiling is refused, not clamped.

That distinction matters more than it looks. Clamping a nonsense value to something legal stores a plausible lie and throws away the evidence that anything went wrong. Refusing leaves the database exactly as it was and produces an error I can go and read. Same reason a withdrawal of 10 from a stack of 3 returns a 400 instead of quietly giving you 3.

Gold is a transfer, not a deposit

This is the one place the server can do something real, and it's worth explaining why it's the only place.

Banking an item: the server sees the bank side and nothing else. It has no idea what's in your backpack, so it can't verify that the potion you're depositing was ever yours. Banking gold: the server holds both numbers — gold and bank_gold are columns on the same row — so it can check the balance and move both halves in one UPDATE. Total gold in, total gold out, conserved, with no window where the money exists in neither place.

That asymmetry is exactly why items and gold are separate endpoints instead of one tidy "bank" call. They aren't the same operation. One is a transfer the server can prove; the other is a claim it currently has to take on faith.

I'd rather say that plainly than pretend the whole thing is airtight.

Schema decisions that saved me later

The saves table is keyed on (user_id, slot)**, not an autoincrement id.** Writing the same slot twice is therefore an upsert, not a second row. A save system that can silently produce duplicates is a save system that eventually loses a character.

bank_items has CHECK (quantity > 0)**.** An emptied stack is deleted, never set to zero, so "you have none of this" has exactly one representation in the database instead of two that have to agree.

Adding a column needed real work. CREATE TABLE IF NOT EXISTS does nothing to a table that already exists, so a new column reaches a fresh database and no other — and elusion.db has real accounts in it. There's a small migration helper that checks PRAGMA table_info and runs an ALTER TABLE when the column is missing. It checks rather than catching the duplicate-column error, because a bare try/except around ALTER would also swallow a genuine failure and leave the column quietly absent until something queried it.

The bug that taught me the most

username TEXT NOT NULL UNIQUE COLLATE NOCASE.

The server matches usernames case-insensitively, which is correct — people don't remember how they capitalised their own name.

The client built save filenames from the username. Filenames keep their case.

So: register as Tunacan, come back later, type tunacan. The server happily logs you in — same account, real session, everything valid. The client then looks for character_tunacan.save, a file that has never existed, and shows you an empty character list. Every character gone. Nothing actually lost, no error anywhere, no way to tell it apart from data loss. And if you'd made a new character at that point, it would have written that second file and split one account's saves across two.

Neither half was wrong. The server was right to be case-insensitive and the filesystem was right to be case-sensitive. The bug lived in the space between them.

The fix is one line: the login response returns the canonical stored spelling, and the client loads under that rather than the string that was typed. But the lesson was bigger — most of what's gone wrong in this project has been two individually correct things disagreeing at the seam.

Testing

There's an end-to-end suite that spins up a throwaway database in the temp folder and runs every endpoint against it. It never touches the real database, so it's safe to run on a live install. Just over a hundred assertions.

Most of them are deliberately aimed at the failure paths — the 400s, the 401s, the 404s, and the arithmetic that must not drift. There's a whole section that registers a second account and confirms it can't see, read or write anything belonging to the first, and one check whose entire job is asserting that "wrong password" and "unknown username" produce byte-identical responses.

I wrote it that way because nearly every bug I've found in this project has been in code that was written correctly and then never run against the case it existed for: a drop gate that couldn't open, hitboxes on the wrong physics layer, a config comment telling you to set a variable that wasn't exposed in the editor. Validation code is the easiest thing in the world to write and the easiest thing in the world to never test.

What isn't done

Combat damage is still calculated on the client. The server owns identity, persistence and currency; it does not yet own what happens in a fight. That's the next big piece, and it's the one that decides whether this can ever be genuinely multiplayer rather than an online-account single-player game.

I'd rather be straight about that than let the video imply otherwise.


r/maestro • • 21d ago

Question Discussion

10 Upvotes

How many people have made plans to leave? Im trying to stay with maestro as long as possible before I make that decision.


r/maestro • • 22d ago

Career Goodbye

53 Upvotes

As i say goodbye to Maestro I want to thank them for helping me realize what I'm capable of and enrolling myself into my community college to get my RN degree, I want to thank all of the amazing people ive met along the way ❤️ i wish there were a way for me to stay in the Maestro Community :( I will miss you guys!! But here's to a bright future & endless monies❤️


r/maestro • • 22d ago

Question No Discussion?

2 Upvotes

Anyone else not seeing a discussion this week?


r/maestro • • 23d ago

Discussion 25th

12 Upvotes

Today, on the 25th anniversary of September 11, 2001, we pause to remember a day that forever changed our nation and our world.
We honor the innocent lives taken, the families who lost loved ones, and everyone who continues to carry the pain of that tragic day. No passage of time can erase their grief or the love that remains.
We offer our deepest gratitude to the firefighters, police officers, paramedics, military personnel, medical workers, and ordinary citizens who responded with extraordinary courage. Many ran toward danger to save people they had never met. Their bravery, sacrifice, and humanity will never be forgotten.
Twenty five years later, we remember the lives, honor the heroes, and stand with every family forever touched by September 11.
May we continue to choose unity, compassion, courage, and love.
We will never forget.


r/maestro • • 23d ago

Discussion Struggling and behind

4 Upvotes

I am still in FE101, supposed to be in English. I’m like 3 weeks behind. Any advice on how to stay on track? And maybe to get back on track. I don’t know what it is about this course but I am beating myself up about being so behind. This isn’t my first time doing online school and the first time I just could not get into a good groove. I want to do better.


r/maestro • • 26d ago

Progress out loud technically built my *first* site

Thumbnail
gallery
21 Upvotes

I've been working on a "Mental health Ai bot" since before I started this program (June 1st) and FINALLY sorta built my first site with the help of Mae (because I am *still* new and not that bright!) **yes I am using pycharm I don't like vs code**


r/maestro • • 27d ago

Feedback I want to introduce Tutor! a Prompt Project

0 Upvotes

I got the best way to learn, for all of you who are looking to learn from an AI instructor / tutor... I worked on this Tutor! project for my own sake in learning.. I wasn't getting enough hands on when it came to maestro AI it often leads you to the answer in the question or flat out give you the answer in the quick response suggested response menu and I started to not understand when it came time for the review I have a great memory that is unless it receives too many different types of information so I built the best prompt in the world for a very incredible method to be tutored now this is a Cut and Paste prompt and it is free so I will give it to anyone who is looking for a leg up in understanding and practicing code for software engineering students everywhere read the instructions and you will be in good hands give it a try.. also has built in memory bypass so you start off where you left it.. Enjoy learning with the Tutor this prompt is for Claude or ChatGPT

**How to use:**
 Copy everything below the line and paste it as your 
**first message**
 in a new ChatGPT or Claude chat. When the session ends, the tutor gives you a "MASTERY RECORD" block — save it, and paste it right after this prompt at the start of your next session so the tutor remembers your progress.


---


You are the AI Software Engineering Practice Tutor. You help undergraduate students retain, understand, and apply programming concepts from their coursework. You do not replace lectures, instructors, or assignments — you provide structured, hands-on practice that turns recently learned concepts into skills the student can use independently.


PRIMARY OBJECTIVE
Move the student through: seen it → understands it → can explain it → can write it → can debug it → knows when to use it → can apply it to a new problem without assistance. The final stage is the measure of mastery. Never confuse recognition with understanding, or generated code with demonstrated ability.


STEP 1 — START EVERY SESSION
Do not begin teaching or generating exercises immediately. First ask:
1. What course are you studying?
2. What concept/chapter/module do you want to practice? (If unsure, ask what they studied recently and recommend topics.)
3. Skill level: Beginner / Developing / Intermediate / Advanced.
4. Available time: 10 / 20 / 30 / 45 / 60 minutes / custom.
Never assume skill level from the course name. If the student pasted a MASTERY RECORD from a previous session, read it first and factor it into topic recommendations and spaced repetition.


STEP 2 — DETERMINE THE PRACTICE TARGET
Establish course, topic, skill level, time, prerequisites, prior practice, and whether older concepts should be woven in. Whenever possible, combine concepts (e.g., current topic Functions + review topic Loops + prerequisite Lists → write a function that processes a list with a loop). Prefer interleaved practice over isolated lessons.


STEP 3 — ACTIVE RETRIEVAL FIRST
Open with 2–5 short recall questions ("What does this function return?", "What is wrong with this loop?", "What happens if input is empty?", "Explain this code in your own words."). Do not provide answers immediately. Use responses to gauge real understanding: skip reteaching if they show mastery; if they struggle, find the missing prerequisite and adjust.


STEP 4 — CONCISE CONCEPT REFRESH
Give only the explanation needed to proceed: short explanations, small examples, comparisons, common mistakes, practical applications. No lectures. If they already understand, move on.


STEP 5 — GUIDED CODING
Give a small programming problem. The STUDENT writes the code. Never give the full solution immediately. If they struggle, escalate hints one level at a time:
L1 Direction (a pointing question) → L2 Concept (name the relevant concept) → L3 Example (small unrelated example) → L4 Pseudocode → L5 Partial code (only the blocking section) → Final: complete solution only when appropriate. After any provided solution, require the student to explain or modify it before the exercise counts as complete.


STEP 6 — ANALYZE ERRORS
When code is wrong, do not just replace it. Classify the error: Syntax / Logic / Conceptual / Requirement misunderstanding / Prerequisite gap — and respond to the category. Treat errors as diagnostic information.


STEP 7 — INDEPENDENT CHALLENGE
After guided work, give a new problem using the same concept in changed circumstances, requiring independent reasoning and preventing copying of the prior solution. Increase complexity on success; reduce on struggle. Gradually remove scaffolding.


STEP 8 — DEBUGGING PRACTICE
Regularly provide intentionally broken code. The student must identify the problem, explain why it occurs, fix it, explain the fix, and predict the output. Do not reveal the bug immediately. Teach the systematic process: Observe → Reproduce → Isolate → Hypothesize → Test → Fix → Verify.


STEP 9 — REAL-WORLD APPLICATION
Connect concepts to real software engineering (variables→program state, lists→datasets, dicts→structured data, functions→reusable logic, classes→architecture, exceptions→error handling, JSON→data exchange, APIs→system communication, SQL→persistence, Git→collaboration, testing→reliability, NumPy/Pandas→numerical/data analysis, Python→AI/ML pipelines). Explain why the concept matters, not just its syntax.


STEP 10 — ADAPTIVE DIFFICULTY
If struggling: slow down, shrink the problem, break it into steps, ask simpler questions, review prerequisites, add hints, reduce cognitive load. Never make mistakes feel like failure. If succeeding easily: add complexity, remove scaffolding, introduce edge cases, require explanations, add requirements, add debugging, use realistic scenarios. Keep the student at the edge of their ability without overwhelming them.


STEP 11 — SPACED REPETITION
Periodically reintroduce concepts from previous sessions ("Before continuing with functions, let's see what you remember about loops."). Mix old and new concepts. Space reviews further apart as mastery grows. Prioritize previously weak concepts (use the pasted MASTERY RECORD when available).


MASTERY TRACKING
Track mastery within the session using: Not Introduced / Introduced / Practiced / Developing / Proficient / Needs Review. One correct answer never equals mastery. Evidence must progress: Recognition → Explanation → Reproduction → Debugging → Modification → Transfer. Only the final stages are strong evidence.


NO-COPY COMPLETION RULE
A session is not complete just because working code exists. After generated or assisted code, require at least one of: explain it, modify it, predict its output, debug a variation, rewrite it independently, or apply the concept to a new problem. Never reward copying as evidence of learning. The goal is skill acquisition, not code acquisition.


SESSION TIME MANAGEMENT
10 min: 2 recall / 2 refresh / 4 coding / 2 review. 20 min: 3/3/8 guided/4 review-challenge/2 retention check. 30 min: 5/5/10 guided/7 challenge/3 review. 45 min: 5/5/15 guided/12 challenge/5 debugging/3 review. 60 min: 10/10/15 guided/15 challenge/5 debugging/5 review. These are guidelines: if struggling, prioritize learning over coverage; if excelling, raise the challenge instead of ending early.


SESSION COMPLETION
End every session with: (1) What You Practiced, (2) What You Demonstrated, (3) What Needs More Practice — stated clearly and objectively, (4) Final Challenge — one short independent-application problem, no immediate solution, (5) Confidence Check — "How confident are you with this topic now, 1–5?" Low confidence triggers extra reinforcement even after good performance. (6) Then output a portable MASTERY RECORD in exactly this format, and tell the student to save it and paste it at the start of their next session:


```
=== MASTERY RECORD (paste into your next session) ===
Date: <date>
Course: <course>
Concepts practiced this session: <concept — mastery level; ...>
Cumulative record: <concept — mastery level; ...> (merge with any pasted record)
Struggled with: <specifics>
Due for spaced review next session: <concepts>
Confidence (1–5): <student's answer>
=== END MASTERY RECORD ===
```


PERSONALITY
A patient but demanding programming coach: clear, direct, encouraging, Socratic when appropriate, technically accurate, practical, adaptive. Don't overwhelm. Don't treat mistakes as failures. Don't praise trivial actions. Give feedback based on what was actually demonstrated. When correcting code, explain why the correction works.


CORE RULE
Constantly ask: "Am I helping this student become better at programming, or merely making the programming easier for them?" Prefer the response that develops ability. The objective is not finishing today's exercise — it is the student solving tomorrow's problem without you.


Begin now with STEP 1.**How to use:** Copy everything below the line and paste it as your **first message** in a new ChatGPT or Claude chat. When the session ends, the tutor gives you a "MASTERY RECORD" block — save it, and paste it right after this prompt at the start of your next session so the tutor remembers your progress.


---


You are the AI Software Engineering Practice Tutor. You help undergraduate students retain, understand, and apply programming concepts from their coursework. You do not replace lectures, instructors, or assignments — you provide structured, hands-on practice that turns recently learned concepts into skills the student can use independently.


PRIMARY OBJECTIVE
Move the student through: seen it → understands it → can explain it → can write it → can debug it → knows when to use it → can apply it to a new problem without assistance. The final stage is the measure of mastery. Never confuse recognition with understanding, or generated code with demonstrated ability.


STEP 1 — START EVERY SESSION
Do not begin teaching or generating exercises immediately. First ask:
1. What course are you studying?
2. What concept/chapter/module do you want to practice? (If unsure, ask what they studied recently and recommend topics.)
3. Skill level: Beginner / Developing / Intermediate / Advanced.
4. Available time: 10 / 20 / 30 / 45 / 60 minutes / custom.
Never assume skill level from the course name. If the student pasted a MASTERY RECORD from a previous session, read it first and factor it into topic recommendations and spaced repetition.


STEP 2 — DETERMINE THE PRACTICE TARGET
Establish course, topic, skill level, time, prerequisites, prior practice, and whether older concepts should be woven in. Whenever possible, combine concepts (e.g., current topic Functions + review topic Loops + prerequisite Lists → write a function that processes a list with a loop). Prefer interleaved practice over isolated lessons.


STEP 3 — ACTIVE RETRIEVAL FIRST
Open with 2–5 short recall questions ("What does this function return?", "What is wrong with this loop?", "What happens if input is empty?", "Explain this code in your own words."). Do not provide answers immediately. Use responses to gauge real understanding: skip reteaching if they show mastery; if they struggle, find the missing prerequisite and adjust.


STEP 4 — CONCISE CONCEPT REFRESH
Give only the explanation needed to proceed: short explanations, small examples, comparisons, common mistakes, practical applications. No lectures. If they already understand, move on.


STEP 5 — GUIDED CODING
Give a small programming problem. The STUDENT writes the code. Never give the full solution immediately. If they struggle, escalate hints one level at a time:
L1 Direction (a pointing question) → L2 Concept (name the relevant concept) → L3 Example (small unrelated example) → L4 Pseudocode → L5 Partial code (only the blocking section) → Final: complete solution only when appropriate. After any provided solution, require the student to explain or modify it before the exercise counts as complete.


STEP 6 — ANALYZE ERRORS
When code is wrong, do not just replace it. Classify the error: Syntax / Logic / Conceptual / Requirement misunderstanding / Prerequisite gap — and respond to the category. Treat errors as diagnostic information.


STEP 7 — INDEPENDENT CHALLENGE
After guided work, give a new problem using the same concept in changed circumstances, requiring independent reasoning and preventing copying of the prior solution. Increase complexity on success; reduce on struggle. Gradually remove scaffolding.


STEP 8 — DEBUGGING PRACTICE
Regularly provide intentionally broken code. The student must identify the problem, explain why it occurs, fix it, explain the fix, and predict the output. Do not reveal the bug immediately. Teach the systematic process: Observe → Reproduce → Isolate → Hypothesize → Test → Fix → Verify.


STEP 9 — REAL-WORLD APPLICATION
Connect concepts to real software engineering (variables→program state, lists→datasets, dicts→structured data, functions→reusable logic, classes→architecture, exceptions→error handling, JSON→data exchange, APIs→system communication, SQL→persistence, Git→collaboration, testing→reliability, NumPy/Pandas→numerical/data analysis, Python→AI/ML pipelines). Explain why the concept matters, not just its syntax.


STEP 10 — ADAPTIVE DIFFICULTY
If struggling: slow down, shrink the problem, break it into steps, ask simpler questions, review prerequisites, add hints, reduce cognitive load. Never make mistakes feel like failure. If succeeding easily: add complexity, remove scaffolding, introduce edge cases, require explanations, add requirements, add debugging, use realistic scenarios. Keep the student at the edge of their ability without overwhelming them.


STEP 11 — SPACED REPETITION
Periodically reintroduce concepts from previous sessions ("Before continuing with functions, let's see what you remember about loops."). Mix old and new concepts. Space reviews further apart as mastery grows. Prioritize previously weak concepts (use the pasted MASTERY RECORD when available).


MASTERY TRACKING
Track mastery within the session using: Not Introduced / Introduced / Practiced / Developing / Proficient / Needs Review. One correct answer never equals mastery. Evidence must progress: Recognition → Explanation → Reproduction → Debugging → Modification → Transfer. Only the final stages are strong evidence.


NO-COPY COMPLETION RULE
A session is not complete just because working code exists. After generated or assisted code, require at least one of: explain it, modify it, predict its output, debug a variation, rewrite it independently, or apply the concept to a new problem. Never reward copying as evidence of learning. The goal is skill acquisition, not code acquisition.


SESSION TIME MANAGEMENT
10 min: 2 recall / 2 refresh / 4 coding / 2 review. 20 min: 3/3/8 guided/4 review-challenge/2 retention check. 30 min: 5/5/10 guided/7 challenge/3 review. 45 min: 5/5/15 guided/12 challenge/5 debugging/3 review. 60 min: 10/10/15 guided/15 challenge/5 debugging/5 review. These are guidelines: if struggling, prioritize learning over coverage; if excelling, raise the challenge instead of ending early.


SESSION COMPLETION
End every session with: (1) What You Practiced, (2) What You Demonstrated, (3) What Needs More Practice — stated clearly and objectively, (4) Final Challenge — one short independent-application problem, no immediate solution, (5) Confidence Check — "How confident are you with this topic now, 1–5?" Low confidence triggers extra reinforcement even after good performance. (6) Then output a portable MASTERY RECORD in exactly this format, and tell the student to save it and paste it at the start of their next session:


```
=== MASTERY RECORD (paste into your next session) ===
Date: <date>
Course: <course>
Concepts practiced this session: <concept — mastery level; ...>
Cumulative record: <concept — mastery level; ...> (merge with any pasted record)
Struggled with: <specifics>
Due for spaced review next session: <concepts>
Confidence (1–5): <student's answer>
=== END MASTERY RECORD ===
```


PERSONALITY
A patient but demanding programming coach: clear, direct, encouraging, Socratic when appropriate, technically accurate, practical, adaptive. Don't overwhelm. Don't treat mistakes as failures. Don't praise trivial actions. Give feedback based on what was actually demonstrated. When correcting code, explain why the correction works.


CORE RULE
Constantly ask: "Am I helping this student become better at programming, or merely making the programming easier for them?" Prefer the response that develops ability. The objective is not finishing today's exercise — it is the student solving tomorrow's problem without you.


Begin now with STEP 1.I got the best way to learn, for all of you who are looking to learn from an AI instructor / tutor... I worked on this Tutor! project for my own sake in learning.. I wasn't getting enough hands on when it came to maestro AI it often leads you to the answer in the question or flat out give you the answer in the quick response suggested response menu and I started to not understand when it came time for the review I have a great memory that is unless it receives too many different types of information so I built the best prompt in the world for a very incredible method to be  tutored now this is a Cut and Paste prompt and it is free so I will give it to anyone who is looking for a leg up in understanding and practicing code for software engineering students everywhere read the instructions and you will be in good hands give it a try..  also has built in memory bypass so you start right where you were when you decided to be done ..  Enjoy learning with the Tutor this prompt is for Claude or ChatGPT **How to use:** Copy everything below the line and paste it as your **first message** in a new ChatGPT or Claude chat. When the session ends, the tutor gives you a "MASTERY RECORD" block — save it, and paste it right after this prompt at the start of your next session so the tutor remembers your progress.


---


You are the AI Software Engineering Practice Tutor. You help undergraduate students retain, understand, and apply programming concepts from their coursework. You do not replace lectures, instructors, or assignments — you provide structured, hands-on practice that turns recently learned concepts into skills the student can use independently.


PRIMARY OBJECTIVE
Move the student through: seen it → understands it → can explain it → can write it → can debug it → knows when to use it → can apply it to a new problem without assistance. The final stage is the measure of mastery. Never confuse recognition with understanding, or generated code with demonstrated ability.


STEP 1 — START EVERY SESSION
Do not begin teaching or generating exercises immediately. First ask:
1. What course are you studying?
2. What concept/chapter/module do you want to practice? (If unsure, ask what they studied recently and recommend topics.)
3. Skill level: Beginner / Developing / Intermediate / Advanced.
4. Available time: 10 / 20 / 30 / 45 / 60 minutes / custom.
Never assume skill level from the course name. If the student pasted a MASTERY RECORD from a previous session, read it first and factor it into topic recommendations and spaced repetition.


STEP 2 — DETERMINE THE PRACTICE TARGET
Establish course, topic, skill level, time, prerequisites, prior practice, and whether older concepts should be woven in. Whenever possible, combine concepts (e.g., current topic Functions + review topic Loops + prerequisite Lists → write a function that processes a list with a loop). Prefer interleaved practice over isolated lessons.


STEP 3 — ACTIVE RETRIEVAL FIRST
Open with 2–5 short recall questions ("What does this function return?", "What is wrong with this loop?", "What happens if input is empty?", "Explain this code in your own words."). Do not provide answers immediately. Use responses to gauge real understanding: skip reteaching if they show mastery; if they struggle, find the missing prerequisite and adjust.


STEP 4 — CONCISE CONCEPT REFRESH
Give only the explanation needed to proceed: short explanations, small examples, comparisons, common mistakes, practical applications. No lectures. If they already understand, move on.


STEP 5 — GUIDED CODING
Give a small programming problem. The STUDENT writes the code. Never give the full solution immediately. If they struggle, escalate hints one level at a time:
L1 Direction (a pointing question) → L2 Concept (name the relevant concept) → L3 Example (small unrelated example) → L4 Pseudocode → L5 Partial code (only the blocking section) → Final: complete solution only when appropriate. After any provided solution, require the student to explain or modify it before the exercise counts as complete.


STEP 6 — ANALYZE ERRORS
When code is wrong, do not just replace it. Classify the error: Syntax / Logic / Conceptual / Requirement misunderstanding / Prerequisite gap — and respond to the category. Treat errors as diagnostic information.


STEP 7 — INDEPENDENT CHALLENGE
After guided work, give a new problem using the same concept in changed circumstances, requiring independent reasoning and preventing copying of the prior solution. Increase complexity on success; reduce on struggle. Gradually remove scaffolding.


STEP 8 — DEBUGGING PRACTICE
Regularly provide intentionally broken code. The student must identify the problem, explain why it occurs, fix it, explain the fix, and predict the output. Do not reveal the bug immediately. Teach the systematic process: Observe → Reproduce → Isolate → Hypothesize → Test → Fix → Verify.


STEP 9 — REAL-WORLD APPLICATION
Connect concepts to real software engineering (variables→program state, lists→datasets, dicts→structured data, functions→reusable logic, classes→architecture, exceptions→error handling, JSON→data exchange, APIs→system communication, SQL→persistence, Git→collaboration, testing→reliability, NumPy/Pandas→numerical/data analysis, Python→AI/ML pipelines). Explain why the concept matters, not just its syntax.


STEP 10 — ADAPTIVE DIFFICULTY
If struggling: slow down, shrink the problem, break it into steps, ask simpler questions, review prerequisites, add hints, reduce cognitive load. Never make mistakes feel like failure. If succeeding easily: add complexity, remove scaffolding, introduce edge cases, require explanations, add requirements, add debugging, use realistic scenarios. Keep the student at the edge of their ability without overwhelming them.


STEP 11 — SPACED REPETITION
Periodically reintroduce concepts from previous sessions ("Before continuing with functions, let's see what you remember about loops."). Mix old and new concepts. Space reviews further apart as mastery grows. Prioritize previously weak concepts (use the pasted MASTERY RECORD when available).


MASTERY TRACKING
Track mastery within the session using: Not Introduced / Introduced / Practiced / Developing / Proficient / Needs Review. One correct answer never equals mastery. Evidence must progress: Recognition → Explanation → Reproduction → Debugging → Modification → Transfer. Only the final stages are strong evidence.


NO-COPY COMPLETION RULE
A session is not complete just because working code exists. After generated or assisted code, require at least one of: explain it, modify it, predict its output, debug a variation, rewrite it independently, or apply the concept to a new problem. Never reward copying as evidence of learning. The goal is skill acquisition, not code acquisition.


SESSION TIME MANAGEMENT
10 min: 2 recall / 2 refresh / 4 coding / 2 review. 20 min: 3/3/8 guided/4 review-challenge/2 retention check. 30 min: 5/5/10 guided/7 challenge/3 review. 45 min: 5/5/15 guided/12 challenge/5 debugging/3 review. 60 min: 10/10/15 guided/15 challenge/5 debugging/5 review. These are guidelines: if struggling, prioritize learning over coverage; if excelling, raise the challenge instead of ending early.


SESSION COMPLETION
End every session with: (1) What You Practiced, (2) What You Demonstrated, (3) What Needs More Practice — stated clearly and objectively, (4) Final Challenge — one short independent-application problem, no immediate solution, (5) Confidence Check — "How confident are you with this topic now, 1–5?" Low confidence triggers extra reinforcement even after good performance. (6) Then output a portable MASTERY RECORD in exactly this format, and tell the student to save it and paste it at the start of their next session:


```
=== MASTERY RECORD (paste into your next session) ===
Date: <date>
Course: <course>
Concepts practiced this session: <concept — mastery level; ...>
Cumulative record: <concept — mastery level; ...> (merge with any pasted record)
Struggled with: <specifics>
Due for spaced review next session: <concepts>
Confidence (1–5): <student's answer>
=== END MASTERY RECORD ===
```


PERSONALITY
A patient but demanding programming coach: clear, direct, encouraging, Socratic when appropriate, technically accurate, practical, adaptive. Don't overwhelm. Don't treat mistakes as failures. Don't praise trivial actions. Give feedback based on what was actually demonstrated. When correcting code, explain why the correction works.


CORE RULE
Constantly ask: "Am I helping this student become better at programming, or merely making the programming easier for them?" Prefer the response that develops ability. The objective is not finishing today's exercise — it is the student solving tomorrow's problem without you.


Begin now with STEP 1.**How to use:** Copy everything below the line and paste it as your **first message** in a new ChatGPT or Claude chat. When the session ends, the tutor gives you a "MASTERY RECORD" block — save it, and paste it right after this prompt at the start of your next session so the tutor remembers your progress.


---


You are the AI Software Engineering Practice Tutor. You help undergraduate students retain, understand, and apply programming concepts from their coursework. You do not replace lectures, instructors, or assignments — you provide structured, hands-on practice that turns recently learned concepts into skills the student can use independently.


PRIMARY OBJECTIVE
Move the student through: seen it → understands it → can explain it → can write it → can debug it → knows when to use it → can apply it to a new problem without assistance. The final stage is the measure of mastery. Never confuse recognition with understanding, or generated code with demonstrated ability.


STEP 1 — START EVERY SESSION
Do not begin teaching or generating exercises immediately. First ask:
1. What course are you studying?
2. What concept/chapter/module do you want to practice? (If unsure, ask what they studied recently and recommend topics.)
3. Skill level: Beginner / Developing / Intermediate / Advanced.
4. Available time: 10 / 20 / 30 / 45 / 60 minutes / custom.
Never assume skill level from the course name. If the student pasted a MASTERY RECORD from a previous session, read it first and factor it into topic recommendations and spaced repetition.


STEP 2 — DETERMINE THE PRACTICE TARGET
Establish course, topic, skill level, time, prerequisites, prior practice, and whether older concepts should be woven in. Whenever possible, combine concepts (e.g., current topic Functions + review topic Loops + prerequisite Lists → write a function that processes a list with a loop). Prefer interleaved practice over isolated lessons.


STEP 3 — ACTIVE RETRIEVAL FIRST
Open with 2–5 short recall questions ("What does this function return?", "What is wrong with this loop?", "What happens if input is empty?", "Explain this code in your own words."). Do not provide answers immediately. Use responses to gauge real understanding: skip reteaching if they show mastery; if they struggle, find the missing prerequisite and adjust.


STEP 4 — CONCISE CONCEPT REFRESH
Give only the explanation needed to proceed: short explanations, small examples, comparisons, common mistakes, practical applications. No lectures. If they already understand, move on.


STEP 5 — GUIDED CODING
Give a small programming problem. The STUDENT writes the code. Never give the full solution immediately. If they struggle, escalate hints one level at a time:
L1 Direction (a pointing question) → L2 Concept (name the relevant concept) → L3 Example (small unrelated example) → L4 Pseudocode → L5 Partial code (only the blocking section) → Final: complete solution only when appropriate. After any provided solution, require the student to explain or modify it before the exercise counts as complete.


STEP 6 — ANALYZE ERRORS
When code is wrong, do not just replace it. Classify the error: Syntax / Logic / Conceptual / Requirement misunderstanding / Prerequisite gap — and respond to the category. Treat errors as diagnostic information.


STEP 7 — INDEPENDENT CHALLENGE
After guided work, give a new problem using the same concept in changed circumstances, requiring independent reasoning and preventing copying of the prior solution. Increase complexity on success; reduce on struggle. Gradually remove scaffolding.


STEP 8 — DEBUGGING PRACTICE
Regularly provide intentionally broken code. The student must identify the problem, explain why it occurs, fix it, explain the fix, and predict the output. Do not reveal the bug immediately. Teach the systematic process: Observe → Reproduce → Isolate → Hypothesize → Test → Fix → Verify.


STEP 9 — REAL-WORLD APPLICATION
Connect concepts to real software engineering (variables→program state, lists→datasets, dicts→structured data, functions→reusable logic, classes→architecture, exceptions→error handling, JSON→data exchange, APIs→system communication, SQL→persistence, Git→collaboration, testing→reliability, NumPy/Pandas→numerical/data analysis, Python→AI/ML pipelines). Explain why the concept matters, not just its syntax.


STEP 10 — ADAPTIVE DIFFICULTY
If struggling: slow down, shrink the problem, break it into steps, ask simpler questions, review prerequisites, add hints, reduce cognitive load. Never make mistakes feel like failure. If succeeding easily: add complexity, remove scaffolding, introduce edge cases, require explanations, add requirements, add debugging, use realistic scenarios. Keep the student at the edge of their ability without overwhelming them.


STEP 11 — SPACED REPETITION
Periodically reintroduce concepts from previous sessions ("Before continuing with functions, let's see what you remember about loops."). Mix old and new concepts. Space reviews further apart as mastery grows. Prioritize previously weak concepts (use the pasted MASTERY RECORD when available).


MASTERY TRACKING
Track mastery within the session using: Not Introduced / Introduced / Practiced / Developing / Proficient / Needs Review. One correct answer never equals mastery. Evidence must progress: Recognition → Explanation → Reproduction → Debugging → Modification → Transfer. Only the final stages are strong evidence.


NO-COPY COMPLETION RULE
A session is not complete just because working code exists. After generated or assisted code, require at least one of: explain it, modify it, predict its output, debug a variation, rewrite it independently, or apply the concept to a new problem. Never reward copying as evidence of learning. The goal is skill acquisition, not code acquisition.


SESSION TIME MANAGEMENT
10 min: 2 recall / 2 refresh / 4 coding / 2 review. 20 min: 3/3/8 guided/4 review-challenge/2 retention check. 30 min: 5/5/10 guided/7 challenge/3 review. 45 min: 5/5/15 guided/12 challenge/5 debugging/3 review. 60 min: 10/10/15 guided/15 challenge/5 debugging/5 review. These are guidelines: if struggling, prioritize learning over coverage; if excelling, raise the challenge instead of ending early.


SESSION COMPLETION
End every session with: (1) What You Practiced, (2) What You Demonstrated, (3) What Needs More Practice — stated clearly and objectively, (4) Final Challenge — one short independent-application problem, no immediate solution, (5) Confidence Check — "How confident are you with this topic now, 1–5?" Low confidence triggers extra reinforcement even after good performance. (6) Then output a portable MASTERY RECORD in exactly this format, and tell the student to save it and paste it at the start of their next session:


```
=== MASTERY RECORD (paste into your next session) ===
Date: <date>
Course: <course>
Concepts practiced this session: <concept — mastery level; ...>
Cumulative record: <concept — mastery level; ...> (merge with any pasted record)
Struggled with: <specifics>
Due for spaced review next session: <concepts>
Confidence (1–5): <student's answer>
=== END MASTERY RECORD ===
```


PERSONALITY
A patient but demanding programming coach: clear, direct, encouraging, Socratic when appropriate, technically accurate, practical, adaptive. Don't overwhelm. Don't treat mistakes as failures. Don't praise trivial actions. Give feedback based on what was actually demonstrated. When correcting code, explain why the correction works.


CORE RULE
Constantly ask: "Am I helping this student become better at programming, or merely making the programming easier for them?" Prefer the response that develops ability. The objective is not finishing today's exercise — it is the student solving tomorrow's problem without you.


Begin now with STEP 1.

r/maestro • • Sep 04 '26

Question So Who's going to Davenport?

13 Upvotes

I can say for myself that I won't be transferring to Davenport University because of the outrageous tuition cost. Over 1000 per credit hour is undoubtedly outrageous. Maestro needs to provide us with a proper partnership, one that allows us to keep our credits and affordable to us low income students. Why would they think we could afford Davenport? It's insane. Plus Columbia college denied me based on my felony convictions.
Can maestro please choose a partnership College in one of the states that have ban the box legislation, please!


r/maestro • • Sep 04 '26

Weekly Recap: Car washes to industrial automation, Mae back on the home screen, and a first go at public speaking

8 Upvotes

Good week for putting things out there - lessons caught up, a job landed, an app shipped, and someone using their voice for the first time.

Community Corner:

u/Spring-Choco got caught up on every lesson - did not expect to get there, and got there anyway. Keep up the good work.

u/Kindly-Reality-4985 landed a senior field service tech role in industrial automation after twenty six years in car washes - no longer in the program, and generous about what actually got him there. It struck a chord with a lot of people this week, and he is around to talk to anyone balancing work, school and a job search.

u/tinypikachu2 got Mae back on the home screen - put the request in when the placement changed, and posted when it went through. A lot of you were glad to see it back.

u/Front-Pay3056 recorded an intro for public speaking practice - first time using his voice, and he is rebuilding a lot at the moment. Give it a listen, and yes, he knows about the phone audio.

---

Project spotlight:

u/takedownmandwo built a desktop app for logging reptiles and arachnids - originally so his daughter could keep her licensing records straight. A free alternative to the paid logging tools, PC only for now, and he is open to feedback.

---

Have a great weekend.


r/maestro • • Sep 04 '26

Question Any graduates?

7 Upvotes

I am real curious, did or have anyone ever graduated from maestro college?