Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

[Marc Goodman] I took a one-day workshop a few terms ago on \"Critical Theory: P

ID: 3880288 • Letter: #

Question

[Marc Goodman]

I took a one-day workshop a few terms ago on "Critical Theory: Pedagogy of Inclusion, Equity, and Empowerment." Do you see how I suffer for you? :) Just kidding, it was actually pretty interesting. One of the topics we talked about was something called the Hidden Curriculum. When you take this course, we're trying to teach you about software design and about writing computer programs. This is the "regular" curriculum of the course. But, at the same time, we're also teaching you the rules of being a student, and about how the instructor (me) has power and control over the students (you). When this is done badly, it results in a lot of, "do it that way because I said so." When it is done right, in my opinion, it prepares you with the skills that you need to be successful as a professional programmer with a real job.

One of the key pieces of "hidden curriculum" in this course has to do with our use of pseudocode. Those of you who have received feedback on Lab 2 probably know that I'm fairly picky about your pseudocode, particularly about being consistent with your variable names and module names. This might seem like a case where I'm on some kind of mad power trip, and just making you do busy work "because I said so." However, there are a few reasons I do this. If you do get a job as a computer programmer, you'll get instructions on exactly how your designs and code should be written (usually in the form of a style guide. I've seen style guides that ran to hundreds of pages). If you don't learn and follow the style guide, everyone else has to adapt to you, and they have to know both the "right way" of doing things, and also how you do things. If everyone acted that way, the code base would be a total mess. If you keep that up, the other programmers start muttering about you, and complaining that you think your time is more valuable than everyone else's, or that you're too incompetent to continue working there. So, being able to learn a standard and to follow it can actually be pretty important in the real world (even though the exact standard you learn in this class probably won't match the exact standard you'll be using when you get a job).

The other reason I think this is important is because when you take the exams in this course, about half of each exam will be pseudocode walkthrough problems. If you don't know the pseudocode standard we use in this course, you won't be able to complete these problems correctly. By requiring that everyone learn the same pseudocode standard, I'm trying to make it possible for you to demonstrate your understanding of the logic of the pseudocode, instead of getting tripped up in the exact syntax of the pseudocode.

So, my question this week is, how does all of that make you feel? Do you view the pseudocode related tasks in this course as having value, or do you view them more as busy work, and a hurdle that you have to jump over just to get a grade? Have you seen examples (positive or negative) of the "hidden curriculum" in this course, or other courses you've taken? Do you think it's good or bad that the hidden curriculum exists?

Explanation / Answer

I will try my best to make you understand the importance of pseudo-code in solving real world problems and in job.

Lets say, we have a Tic Tac Toe problem.
Before starting to solve this, we all have this question "Where to begin?"

Try using pseudo-code.

What pseudo-code does here?
It will help you think of where to start, and how to proceed.

Lets understand what is pseudo-code?
So basically, it is something you write that is not actual code in any programming language but that, if anyone were to read it,
would make it clear what is happening.

Now lets understand the problem we have.

One player is A. One player is B.
One of them goes first. And then the other.
Each puts their symbol in unoccupied squares.
Alternating turns ,until one of them has three in a row, or the board is full and neither wins. We have to start new match.

Now, let me write this into pseudo-code:

//**********************************************PSEUDO_CODE************************************************//

Draw a board on the screen — three squares across by three squares down.
If any of the squares are clicked before a new game is started, pop up a warning that their game has not started yet Button : new game.
When clicked, variable player = a or b depending on which they clicked.
On the click of a block:
If there is an A or an B in the block, do nothing.
If there is neither A nor B in the block, change the board space with player.
If the top row or the middle row or the bottom row or the first column or the middle column or either of the diagonals are all player piece --
Announce the player wins!
Ask if the player wants to play again!
If yes, start from the top!
If the player did not win and the board is not full, let the computer take its turn.
Computer turn:
From the first square to the last square, check for two player pieces in either the first, second, or last row or column or diagonal and when found, place a computer piece in the third unoccupied space.
If none of these are found:
From the first square to the last square, check each one to see if any is blank.
As soon as one is found blank, put the computer's piece there.
If the top row or the middle row or the bottom row or the first column or the middle column or either of the diagonals are all computer piece --
Announce the computer wins!
Ask if the player wants to play again!
If yes, start from the top!
If the computer did not win and the board is not full, start from the top with the player's turn.
If the board is full, game over! New round? Ask the player.
//*******************************************END************************************************************//

That’s it. That’s the whole game, broken down into four basic steps.

Hope this helps you understand the importance of pseudo-code.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote