#pedagogy

1 messages · Page 5 of 1

royal dove
#

I feel like I can't really get into a proper discussion about this topic without defining some words. What is a genius? What does genius have to do with "creative?"
This might be a semantic thing. Where there is less of an issue depending on how you define some words.
I don't know that I can engage more in this conversation because we will probably spend most of our energy arguing about semantics.

solemn isle
#

hmm your right

#

ill probably be back again once im more educated in this

tame dagger
#

Yah, if you look at, say, Montessori schools (teaching young kids), the idea is to let the child follow their interest rather than try to control it. You can set the stage, but if you want full engagement, you have to let them choose their path. If I wanted to teach someone something new… or more particularly, if I wanted someone to really learn something, I’d try to connect it to something where they already have some interest/aptitude/experience.

indigo tiger
#

@cold bramble How do I report someone?

tidal orchid
median comet
#

bro i need an urgent help
we tend to code a student management system in python for our project
if anyone is willing to help pls dm me

misty dirge
#

@median comet please remove your messages from this channel and read the instructions in #❓|how-to-get-help

cold bramble
#

why are you pinging me lol

royal dove
#

At what point do you consider someone to be "too green" and instead of holding their hands through something, you just point them to !resources?

As in, there are a lot of new people who just start learning that show up here. And while I want nothing more than for more people to learn how to program, new people also tend to require the most amount of effort to help. In a void, I have no issue to sit down and help someone through a problem. But people have other things in their life and can not endlessly dedicate their time. So where do you draw the line? And how do you determine how to draw the line?

twin egret
twin egret
#

oh then definitely, though it's a very specific situation - people who are literally asking how to get started

#

if someone don't know things like print() or assigning to variables, i'll point them towards one of the two books that every beginner ever gets recommended (byte of python / automate the boring stuff)

#

but beyond that, i'd be happy to explain and clarify what something is or does, even something fairly basic like if/while/for statements

#

the key thing there is i'm happy to explain or clarify those things, but i don't really feel like being the one to introduce those concepts (with a whole load of special-cases, caveats, and exceptions, but that's probably the general rule of thumb i stick to)

#
  • "Okay, I've learned if statements, what's next" -> "I'd recommend following a book like ABOP/ATBS, they teach while and for loops after those [insert link to book]"
  • "So how the hell do if and elif work?" -> "They work by evaluating the expression and [bla bla bla]..."
    I suppose its less of a case of how early someone is, and more how open-ended their question is. At least, that's how I approach helping here, I'd be more inclined to actually introduce and walk through those things if I were to actively tutor someone
shrewd sentinel
#

I'm putting together a 12 week program to train fresh hires python programming along with topics like basic commands in linux, git, etc.

Has anyone done something similar and are happy to share the outline/schedule of the program?

native condor
#

yeah.

#

@shrewd sentinel good idea.

#

I am studying about the Django.

#

Your program will be helpful for me

stoic vortex
#

where did you find out about this experiment? (im aware this is a late response, i just wanted to find out)

solemn isle
stoic vortex
solemn isle
#

Uh unfortunately not its been a while since ive been researching it

#

You can google it though im sure that something related to the experiment will pop up

stoic vortex
#

alright, thank you

umbral trail
#

Dear, I am new here and I have created a youtube channel for Pyhton and want to pots it here? Is that possible ?

misty dirge
umbral trail
#

Ok, thanks @misty dirge , no problem.

fathom eagle
#

Hello, I am new her and I have a project on web scrapping and generative website. Therefore I would like to learn how to use selenium. Do you know where I could learn some useful things about selenium ?

misty dirge
void ermine
#

can someone help me write asearch algorithm?

brittle totem
#

how to start teaching someone? i have a friend who was watching those suuuuuuuuper long videos of python. i dont think they work. i think he need to get his hands dirty but i dont know how. it is not like i can tell him what projects he should do, won't that become homework? anyone faced these b4?

#

(idk if im actually qualified to teach anyone, im just beginner++)

misty dirge
brittle totem
#

is there a table for language features? (like from ez to hard stuff)

misty dirge
# brittle totem is there a table for language features? (like from ez to hard stuff)

Here's one that I made a few years ago.

  • Basics
    • print('Hello world!'), basic math operations, variables
    • Basic boolean logic, if statements and indentation
    • Lists and dicts
    • Loops
    • Functions
    • Importing from the standard library
    • Exception handling (except only)
    • f-strings
    • Sets and tuples
  • Intermediate
    • Defining your own class
    • Mutability, references, and garbage collection
    • Everything's an object
    • {list, dict, set} comprehensions
    • is vs ==
    • Docstrings, commenting
    • Advanced exception handling with raise, else, finally
    • break and continue
    • File IO (with pathlib) and string manipulation
  • Advanced
    • The Python data model with inheritance and dunder methods
    • *args and **kwargs
    • Context managers (with)
    • Decorators
    • Generators
brittle totem
#

damn nice thanks! im unsure where to classify objects 🤔

misty dirge
brittle totem
#

uhh im thinking whether to teach "everything is an object" first or keep it secret for a while

misty dirge
#

let alone what an object is, and why it's remarkable that everything is one.

brittle totem
#

true

#

that is very helpful. thanks a lot!!!!!1111!!!!!!!

misty dirge
#

you are welcome!!!111!!!

blissful venture
hybrid mica
misty dirge
#

same with keywords (except None, True, and False)

hybrid mica
#

It is remarkable though I agree

misty dirge
#

put another way, any expression is an object. 2 + 2 is an object and 2 + is a syntax error.

hybrid mica
misty dirge
hybrid mica
#

Haha touché, and makes sense

misty dirge
#

that's why syntax errors are raised before any of the code in a module is executed. if the module contains an ill-formed expression, nothing that happens before that part of the code is executed could possibly make it make sense.

hybrid mica
full holly
twin egret
#

its pretty tricky to give some roadmap for any language without your roadmap being too generic to be of any actual use

brittle totem
#

any good references materials !?!!1!1?!//?

misty dirge
pearl temple
#

!resources

worldly dewBOT
#
Resources

The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.

ember wharf
#

i have some problems in my python program can you help

queen heron
misty dirge
#

<@&831776746206265384> advertising

upper flint
#

!cban 1109021065964945428 ads

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied ban to @swift talon permanently.

ebon notch
#

Hello everyone 🙂 I am new here!
Just want to understand if I can find here tutor to help me improve my python skills from 0 to advanced level.

misty dirge
ebon notch
misty dirge
ebon notch
unreal hull
misty dirge
#

Please make sure that all subsequent message are about the channel topic.

unreal hull
unreal hull
#

How would you teach systematic ways of converting a recursive algorithm into an iterative one.
Would it be of any use outside of an educational setting?

#

How would you teach rebuilding a tree given a traversal?
Same q, is it useful?

old bane
# unreal hull How would you teach systematic ways of converting a recursive algorithm into an ...

Optimizing the implementation of "naturally recursive" algorithms is something most people would prefer to let a compiler handle nowadays, but being able to convert between them should follow naturally from an understanding of how each work. The moment a student understands why tail call optimization happens and why some recursive patterns can't and require a call stack is when they could implement it iteratively with a state machine.

unreal hull
old bane
#

the queue is serving the same purpose as the call stack does in the recursive form there.

unreal hull
old bane
# unreal hull Yes but still queue != call stack. Is this type of insight, a systematic way of ...

I don't have a good answer for "what should they read", different people will require different depth or information for it to "click" for them. I've seen some exceptionally bright students intuit a mostly correct understanding from their existing math knowledge and being presented with quicksort and being prompted to think about it.

At this level of learning, it's less a checklist of what to read, and more ensuring you know how to figure out where the gaps in knowledge are and how to go about filling them. Many good educators can work with someone and identify where they are missing knowledge.

I also wouldn't focus on writing efficient iterative algorithms, but writing efficient algorithms instead. Limiting yourself to things that appear iterative will make writing good solutions harder, deal with the program specific limits of how to express the algorithm only after you have the right algorithm.

misty dirge
#

tail-recursive functions can systematically be rewritten as while True loops, and learning how to do that could help a student learn how stack frames work. but I don't think understanding how stack frames work is important unless you're designing a language implementation or are an academic

old bane
#

I'd disagree on that. Understanding the basics of stack frames should be something every developer has some knowledge of. You may not need to know all of how languages and compilers optimize it, but the concept should not be foreign to people developing professionally.

misty dirge
old bane
# misty dirge what about stack frames do you think people need to know?
  • That they exist.
  • That they are used to handle code execution state.
  • That they aren't free.
  • Reasonable places where languages may use them.
  • That some compilers may eliminate stack frames in some cases, but that this isn't universal.

Beyond that, (and without much depth to that necessary) not much unless you are doing something lower level.

Handwaving away that this happens leads to people not understanding a detail that is definitely important when it comes to basic debugging as well as thinking about how much memory is used to solve problems even in higher level languages.

#

I dont expect anyone not doing systems programming or compiler design to need an in-depth knowledge here, but I do expect people to know this is being managed at a very shallow high level overview, and the basic consequences of that.

misty dirge
#

(I don't think it's even important that people know it's a stack--all the function calls that ever occur in a program could be visualized as a tree.)

old bane
#
  1. I think giving people the actual language used to discuss concepts that they have not delved into in depth is important as it gives them a good way to talk about it going forward in a way that they will be understood. While I agree that we could theoretically leave out it is usually implemented as a stack, the term stack frame has a well understood technical meaning and is probably the right term to use to ensure that someone being taught "just enough" doesn't sound like a rambling idiot when discussing what they know they don't know more on, but as someone who is informed or aware of, but not knowledgeable in that area.

  2. It would be more productive to think of a program as a DAG than a tree (Lets not get into that either is topologically the same for the case, as I only mean as a means of thinking about it)

#

I never want to walk away from teaching someone and leave them without a clear direction to go learn more if I know what I taught was intentionally incomplete to cover what they needed at that time.

pine stratus
misty dirge
#

It occurs to me that we haven't really established what kind of student we're talking about

misty dirge
old bane
#

based on the initial statment of teaching someone to convert and optimize between iterative and recursive alogirthms, I assumed a student with at least some math and algorithm background already, but neither the learning setting nor the actual foundation they would be learning from here were touched on with precision.

old bane
# misty dirge if you're talking about DAGs that are basically trees (there's exactly one path ...

While I would hope most people working in the related areas can freely reshape the problem statement from one to another, framing it as a graph to begin with should lead to better outcomes in most cases as much of the existing work in analyzing programs is heavily rooted in graphs (and not just because that's where people are working on it, but I'd need to go find some specifics if you want to discuss this further). I specified as a matter of thinking about it, and the note on topological equivalence because of this.

solid snow
#

Guys I wanna know, which python projects will make me an advance python developer after I learn the basics python? (Asking projects except pygame)

misty dirge
swift gazelle
#

I am going to post a simplified code snippet that a student I'm tutoring wrote. For context, this student is currently in their third semester of a 2-year data analytics degree. In the first semester, they took a course called Python for Developers. In the second semester, they took a course called Data Engineering that focuses more on pandas. Now, in the third semester, they are in Predictive Analytics focuses on classification on regression using scikit-learn.
They wrote code similar to this:

def func(var: int):
    for _ in range(10):
        # Do some stuff (unimportant)
        if var < 3:
            x = 10
    # Code that references x such as print(x)

func(1)
func(2)
func(15)

They got an error to this effect

variable x referenced before assignment

The code that checks if var is less than 3is important. So is the code that assigns 10 to x. However, we only wanted to assign 10 to x if var was less than 3. In addition, the code that references x is also important. These lines were correct and therefore should not be changed. In order to fix the error, I posed the question "How can we guarantee that x has a value regardless of whether var is less than 3 or not?" Guaranteeing that x had a value would mean that we could reference it whether var was less than 3 or not because referencing it was important to the problem.
They didn't really have any ideas about answering my question.
I went on to show them a simpler example that I thought would take away all other distractions in the code.

if 2 == 4:
    chaos = True
print(chaos)

I said that this code would also get the reference before assignment error. I also said to assume that these three lines were essential and should not be changed. Again, I asked how we could guarantee that chaos had a value even though2 is not equal to 4.
Again, they still had no idea how to fix the error.

#

I'm wondering about what I could have done differently. Or what other strategies I could have used to lead them to the answer.

pine stratus
swift gazelle
pine stratus
#

In Python this mostly boils down to "at the same level of indent or even further indented and each function has its own scope." (Ignoring details of modules and all that)

fallow current
# swift gazelle Hmm, I hadn't thought about mentioning scope. That being said, unfortunately I d...

the issue in both snippets is contained in a single scope so i wouldn't be too concerned about explaining scopes

instead, i would come back to the original function and let them explain what the function is supposed to do, e.g. "why is the conditional assignment needed? what should the function do if that condition is never met?"
if they get that x should start off at say, 0, based on whatever problem description they're given, it should be intuitive to know that they need an assignment at the start

(another way i would look at it is that the NameError/UnboundLocalError indicates a logical gap in their algorithm)

swift gazelle
# fallow current the issue in both snippets is contained in a single scope so i wouldn't be too c...

I explained why the conditional statement was needed and what part of the problem it solved. I also said what the function should do if the condition is not met. I think what they didn't get is that you shouldn't conditionally assign a variable but always reference it. If you always need to reference it, which we do in this case, then it always needs a value. They didn't seem to know how to guarantee that x has a value, regardless of what happens in the if statement.

pine stratus
#

For example in say C, you would get a compile error, x not being declared prior in same or higher scope level.

#

(I consider this a design flaw, as I have never used code that relied on an inner part defining a variable, but that is getting off topic)

swift gazelle
pine stratus
swift gazelle
#

ah yes

pine stratus
#

In (most?) other languages, this would give you an undefined reference to i error.

#

And I would consider it a bad idea to rely on this behavior in your Python code. And it's also a strange Python detail, so I would just side step that detail and just say that they can't access i outside of the for loop for simplicity, because it's trying to access i in a scope outside of where it was defined (even if in Python it's technically valid / in (dynamic) scope).

#

This means the problem can be simplified (with a convenient lie) to it being about indent levels only.

fallow current
# swift gazelle I explained why the conditional statement was needed and what part of the proble...

if they really don't understand that, i would discuss why the following code can't run: py print(x) which is that python does not know what the value of x is, and will not assume its value
then show how it is defined: py x = 123 print(x) and how variables can be conditionally defined: py x = 123 if x > 456: y = 789 print(y) because python does not assume the value of a variable, it will raise an error if the conditional block is skipped and the assignment isn't executed

fallow current
pine stratus
#

That simple rule will lead to correct code from the student, and I don't think they would be missing out by not making use of conditional assignment of variables dynamically in scope.

granite niche
#

is there anyone who tendes to teach me smt about linked list?

misty dirge
tacit zinc
#

For any experienced people who've worked in the software or Maths industry for a decent amount of time, I have a question. So, I'm studying Maths and I write down my notes in Microsoft OneNote. What's the best convention that I should follow to capitalise the titles of each page? A title with a single term, for e.g., "Intransitivity", would obviously have it's first letter in uppercase. However, what about a title like "Transitive relation"? Should the letter 'r' in the word "relation" be uppercase? Although the rules of English say that it should be lowercase, the title "Transitive relation" collectively forms a single noun. Also, what about conjunctions? Is there a general guideline that scientists or experts follow to name the titles of their files and notes? Would love to hear your insights and get some help.

misty dirge
#

but "transitive relation" is a noun phrase, not a single noun. "transitive" is an adjective.

royal dove
young gyro
#

its true that i want to be an aerospace engineer but i wanna do somrthing with python help i cant decide

young gyro
#

kk

misty dirge
#

Channel Topic: Discussion of the methods and practices of teaching. Not for study advice.

young gyro
#

ok

tacit zinc
# misty dirge This isn't really about pedagogy, but I think you can do your own notes however ...

Oh, yeah, you're right. My bad! Should've posted it on another channel.

you can do your own notes however you want
I asked this question because I wanted to follow a consistent convention to capitalize my titles throughout my notes. If I had to choose any convention, I might just stick with the one that experts in the field of CS and Maths use.
Btw, sorry for replying to your reply after 24 hours. I was onto something and didn't really check my Discord until now.

tacit zinc
copper cosmos
true nova
silent perch
shrewd sentinel
#

I am seeking assessment framework(s) to (a) understand what knowledge a student is coming in with and (b) to set a baseline that is the minimum requirement for all students to have in order to be invited for different levels of training.

sudden hazel
#

Hello @true sentinel, self-promotion is not allowed here (and neither does your tweet seem to be on-topic in this channel). Your message has been removed.

proper anchor
#

i have problem with me code can any one help

chilly rune
#

Whilst preparing a help thread, I rubber-ducked myself into finding the solution to the problem (granted it was as simple as reversing the order of decorators).
Sometimes I wonder whether it's worth it to post the thread, lest anyone have the same issue.
(Though GitHub generally has better SEO on that.)

loud sable
#

HI

misty dirge
# loud sable HI

Hello and welcome to the pedagogy channel, which is for discussion of the methods for teaching python and computer science

steady anchor
#

guys, what Python-related lesson do ya usually teach

weak mortar
#

!silence

sudden hazel
#

!ssh

#

!shhh

worldly dewBOT
#

✅ silenced current channel for 10 minute(s).

#
Did you mean ...

» sequence-slice
» sequence-slicing

#

❌ current channel is already silenced.

#

✅ unsilenced current channel.

brittle totem
#

how to teach someone that not everything uses print so return has a purpose?

#

(what things not use print?)

tidal orchid
#

writing to a file?
making a network request?
making a game (with graphics)?

brittle totem
#

should printing hello world really be the first line of code (at least in python)? in other languages like c or java it gives you a little bit more insight of the language but in python that's just print hello world. is that useful? if not so, what alternatives do we have?

weak mortar
#

uh sure

neon pasture
brittle totem
#

true, probably the point is actually learning how to properly run it in the terminal

storm quest
misty dirge
#

we also have !return-gif

shrewd sentinel
#

Has anyone published a set of exercises that map to the python.org tutorial by chapter?

drowsy charm
#

excuse me but what is the website to convert my code into a link to ask in #1035199133436354600 pls ? I have 2 version of a 100L + code to show xD

worldly dewBOT
#
Pasting large amounts of code

If your code is too long to fit in a codeblock in Discord, you can paste your code here:
https://paste.pythondiscord.com/

After pasting your code, save it by clicking the Paste! button in the bottom left, or by pressing CTRL + S. After doing that, you will be navigated to the new paste's page. Copy the URL and post it here so others can see it.

drowsy charm
#

ty but I fixed it xD

stable fossil
#

I want a genetically modified glowing python so bad lemon_cyclops

weak mortar
#

Real

misty dirge
#

This channel is not for study advice. Please remove your message from this channel and try again in #python-discussion

weak mortar
#

thank you

misty dirge
#

Topic: How to explain variables. My preferred metaphor is that variables are labeled sticky notes that you can put on objects. You can move the sticky note from one object to another. An object can potentially have multiple sticky notes on it. This stands in contrast to the "variables are containers for objects", which is a terrible and misleading metaphor in the context of Python.

Does anyone prefer a different metaphor?

tidal orchid
#

I don't really use metaphors for that - I usually say something like: Variables refer to objects / variables point to values / variable names are aliases for objects

Showing examples like ```py
original = []
same_list = original # refer to the same list
same_list.append(1) # modify the list, which is refered by both original and same_list names
print(original)


for more the complicated things, I like to just link https://www.youtube.com/watch?v=_AEJHKGk9ns
misty dirge
#

This channel is for discussion of teaching. Please move your question to #game-development

rugged inlet
#

oh sry i didnt understand

quasi phoenix
#

“Sticky notes” fails to capture the concept of assignment, and may hinder grasping the meaning of an assignment-statement from/to a list-slice.

misty dirge
wise ore
misty dirge
wise ore
#

For an analogy, maybe we could use the human kind of a name. You have a formal official name assigned at birth, and then in your friend groups (namespaces) you may have other names, but they all refer to the same person, in various places. If a John joins a group that already has a John, maybe he'll be called Johnny in that namespace, to avoid conflict. In a medical setting, John may be referred to as "patient" or "clinician".. similarly to how the same number may be called "dividend" in one namespace and "user_age" in another, depending on its role there.

wise ore
#

I'm wondering whether tackling the variable/name issue head-on and simply refusing to use the term "variable" when talking to beginners would be a feasible approach. I think that the underlying issue that often causes confusion is that assignment, specifically the left-hand side of the = operator, does completely different things in Python and in e.g. C. But syntactically they look the same and on the surface (in code examples) they may even seem to behave the same way, which causes people to assume they already understand what's happening. This also causes issues when trying to understand whether Python is pass-by-reference or pass-by-value.. it's neither, those terms (and the way they are defined in the C world) just don't make sense in Python, but that's not at all obvious unless you understand the nuances of the assignment operator.

misty dirge
#

refusing to use the term "variable" when talking to beginners would be a feasible approach
This is what I do if I'm explaining Python to someone who hasn't mentioned "variables"

pine stratus
quasi phoenix
#

FWIW, I've fleshed-out my off-the-cuff reaction here https://bpa.st/BGLQ (This is my first time on Discord—brace for the usual newbie faux pas. At least I did successfully resist the temptation to make any tacky puns about sticky-notes.)

misty dirge
weak mortar
#

I did this small youtube short, giving a step-by-step for a for-loop: https://youtube.com/shorts/4km-8NhcMmY?si=FQlbckelzSxObiIk
I remember learning a lot about the code flow when learning how to use the debugger but I haven't seen any online videos that use the same step-by-step method to teach.
For those of you who are learning, does this format help?

brittle totem
#

i just assigned a beginner to try parsing a math expression and evaluate the result. it seems like he can't get the logic. is this project too hard? what other projects should i ask him to try

neon pasture
#

If you don't tell them about the shunting yard algorithm (or similar), it can be quite tough to invent bottom-up parsing from nothing.

tacit star
weak mortar
misty dirge
# tame hound BRUH

Hello, this is the channel for discussing methods and practices for teaching. "BRUH" isn't much of a response, let alone to a message that was sent a month ago.

maiden sun
oblique stump
#

I'm one of the more experienced python users in my department and I was asked to come up with resources or provide an outline/guide of what people need to learn in Python to be more comfortable using and developing some of our internal tools.

The skills needed essentially boil down to being comfortable with git+github equivalent, strong knowledge of classes -- specfically some of the python-specific aspects (thinking the property decorator), python's ABC stuff.

The target audience are engineers who know Python from a quick script / small analyses perspective. I'm trying to figure out what resources there are that can cover classes without necessarily re-covering an entire intro course to OOP. My goal is functional understanding, not necessarily in-depth academic understanding. But I'm not really used to approaching teaching from this perspective at this level. How would y'all approach it?

royal dove
# oblique stump I'm one of the more experienced python users in my department and I was asked to...

You say target demographic is engineers. But what level? Because ideally, I would just be able to essentially have a reference doc that is structured like docs and often just points to official docs for more details. Because a not beginner engineer should be comfortable with going through docs. If you really want to put in more effort, maybe even structuring each section more similar to the rust docs. A simplified version of course.

It depends on how much content is required and the skill level expectation of the people needing to be taught. However, I am a little concerned on that point due to you making it seem like they still need to learn git? Hence my very first question

#

Also depends on if this is a permanent guide for internal docs. Or just a quicker thing to catch some people up with what they need to know

tame dagger
#

I often have a different problem: teaching Python & SQL to people who only know Excel, so a lot of what I focus on is connecting Python and/or SQL solutions to what they already know, rather than a ground up introduction to programming.

#

While there are ample starter/intro/tutorials, as all know, I just haven't seen a succinct "Python for Senior SWEs" resource that cuts to the heart of the important things a senior engineer (with no Python knowledge) would need to know.

tame dagger
#

Hmm, that’s tough. My users are super competent with Excel formulas, so I can build off that. Is there anything to build a bridge from?

old bane
# oblique stump I'm one of the more experienced python users in my department and I was asked to...

My goal is functional understanding, not necessarily in-depth academic understanding. But I'm not really used to approaching teaching from this perspective at this level. How would y'all approach it?
I'm gonna start with your goal and not your audience here, but bear with me as I'm not disregarding the expected level of starting knowledge. Looking at just git to give an example of approaching it this way

Start with the bare minimum they need to do 2 weeks of work, but think about the 6 month frame to compare it to. For git, this is probably just the following git commands (and almost none of the advanced options and subcommands these commands have)

git add
git commit
git fetch
git checkout (or the more modern: git switch)
git merge (might not be needed if you are using something like github, gitlab, etc as merging might be something that you do on a managed server...)

I'd also consider if you expect them to need to get into advanced git use later or not as well as if any existing tools at your disposal allow making this easier (such as the git lens in visual studio code providing a rather capable and intuitive GUI for interacting with git for non-advanced use)

For python, the same applies. Think about what they need to know to do 2 weeks of work. Then think about how to get them to that, then think about the gaps that may leave over 6 months of work. Start by teaching the 2 weeks, then fill the gaps.

MechEs and Physicists

If their starting knowledge is primarily math based and not programming based, I would seriously question if teaching abcs (one of the things you mentioned) is useful to their work. What are they being brought on to do? Can you ensure they are set up for success by enabling them to write more functional code that works within any classes managed by other developers, therefore leaving them to write code that is both useful but also familiar to their existing knowledge?

weak mortar
#

What is the current state of free CS education?
Last I remember there was FreeCodeCamp, OSSU, The Odin Project, Codeacdemy but I been out of the loop and wonder what else is around, trying to find resources to share with a friend.

neon pasture
#

MOOC fi has some good basic courses, I know good things about the java one, fullstackopen for webdev, https://teachyourselfcs.com/ for theory (if you can get the textbooks) are the bunch I am aware of.

weak mortar
brittle totem
#

i want to know how to properly teach and know if my method is correct. i just tell my friend to google when they face bottlenecks and let him try to code himself and i only watch him code. if he isn't able to google i provide keywords instead of giving the answer. i thought this way is helpful as it makes him engage more in coding rather than me speaking. but he doesn't think so and i don't have better ways

uneven tinsel
#

what if instead of telling him to google something, you thought of a resource that helped you learn and shared it directly? @brittle totem it's not much more work

brittle totem
#

meh the resource that helped me is google 🤡

royal dove
# brittle totem meh the resource that helped me is google 🤡

It is the duty of those who come before us to pave the way ahead. Yes, people will need to figure things out on their own. But what you are doing isn’t teaching or helping. If teaching really isn’t your thing (although I do suggest trying to get ok at it, because it helps you master topics) at least try to point to more concrete places that solve the problems. It is ok to help someone and hold their hand a little. Yea, don’t do it for them; but what you currently do sounds the same as if you do nothing.

brittle totem
#

lol true, thanks for the suggestions i will try to improve

earnest meteor
#

Do not spam.

small geyser
digital sphinx
misty dirge
#

@green zephyr please experiment in #bot-commands

green zephyr
#

ok

random topaz
#

I've been set up for a tutoring position at school to help the 11 and 12th graders at their computer science, but I am really struggling to do that. Right now it seems like I am talking to a brick wall, though it makes sense, since I'm in Grade 8, and only a few people actually wanted to get tutored.

native hearth
#

youre tutoring older kids? thats rough

random topaz
#

I had my first class yesterday, and I kinda embarrased myself in front of all of my seniors.

random topaz
native hearth
#

unfortunately not, I used to tutor classmates and family friends/relatives that were around my age or younger and it was terrible

#

its much easier to tutor adults imho, some kids would rather watch paint dry than pass their tests

random topaz
royal dove
# random topaz Any advice?

Teaching, in of itself, is a skill. It takes time and effort to get good at it. Additionally, you are not solely responsible for your "students" success. Try to remember that the people in charge of you also are responsible for you. So don't be afraid to make mistakes; if you are truly in a position that is causing more harm than good, it is not all your fault - it is the irresponsibility of the people who threw into it with no support and help.
Just focus on what you can do and try not to worry about the pressure of perfection, judgment, or anything else like that. Also, don't forget to get engaged with the people you are teaching; find someone you feel comfortable talking to and ask them to honestly evaluate how you are doing and ask if they see any room for improvement. And there is a near 100% chance that you will have room to get better at teaching, so don't let it put you down, just focus on trying to address the issues you can. You might be teaching people, but there is a lot of room for you to learn from your students, so just try to learn all you can. And again, you are likely not alone without support; if you really feel stuck, you can ask the people in charge for help.

Finally, it is not your responsibility to make people want to learn. It feels great when you can spark that flame; but not all educational roles need to be that inspiration. If they are unwilling to learn from you, that is on them and not you. Eventually you might learn how to get around that and make them get really into it ,,, but that is not a quick thing to learn.

random topaz
#

But what engages 12th graders?

random topaz
royal dove
royal dove
# random topaz It really isn’t all that simple. I am being judged, by the head of cs, and my pe...

This whole setup seems very .... strange. But you are in 8th grade, I really, genuinely, would not worry about your performance. I mean you are kind of being setup to fail for some dumb reason. But just do your best and nothing else matters. It really doesn't. It might seem complicated and like you have to do well to place well, but you are starting so early in this space that any difference will become so negligible.

random topaz
royal dove
#

There is no shortcut here. Be as familiar as you can be with the material. And from there, it all comes down to experience. Taking the time to really understand the content, and optionally practice explaining to a rubber ducky can help. Beyond that, it is really hard to give you specific general advice. It is easier to help you on a specific topic. But not so general.

I taught college students as a highschooler and made a ton of mistakes. But man did I learn a lot from it. I still have a lot more to learn if I want to be a really good instructor, but it helped build my foundation. You will be embarrassed about yourself and perhaps a little insecure. But as long as you are not telling them blatently wrong things, it is fine. Everything else will fall into place with more experience and trying to not be too much in your own head

random topaz
#

Rubber duck debugging is something I learned to help me debug, but using it as an audience seems new. Thanks for the help.

#

My next class is next Tuesday, so hopefully it goes well.

static geode
#

Good afternoon everyone

#

has anyone here done the python courses from freecodecamp are they useful?

misty dirge
wide badger
#

I'm not sure if this would be the right place but is there a recommended way to do a design layout for when you're wanting to start a new program?

wide badger
random topaz
#

Does anybody have good ideas for tutoring a large number of people?

misty dirge
earnest token
grizzled storm
#

my advice for tutoring any larger group is practice what you are going to say and have confidence while explaining.

#

at least when you don't have much experience

random topaz
random topaz
misty dirge
#

@random topaz what are you tutoring them about

random topaz
misty dirge
# random topaz Computer Science

And why do they need tutoring? I'm just trying to unpack what the situation is.

And you're another 12th grader? Or an instructor?

random topaz
misty dirge
random topaz
random topaz
#

I don’t know, I’m getting the plan tomorrow, since tomorrow is the start of term for my school.

random topaz
grizzled storm
weak mortar
#

Anyway, hello teachers. Had a question for you before I was so rudely interrupted by Ms. Nagatoro.

#

So, I have had a bit of a . . . . Problem this past week as well as good news?

#

Good news : I figured out how to get out of the house fast and to stop procrastinating and get to starbucks and study.

#

Bad news : About an hour into reading this textbook, my brain gets tired. I wanted to do 3 hours today, but the most I managed to do was 1 and a half hours. Any advice?

#

That doesn't involve adderal? My insurance hasn't cleared yet and even when it does, I need to find a cooperative doctor that is sympathetic to my condition and isn't racist.

tidal orchid
weak mortar
#

darn it!

#

Well, fine but where should I go? 😦

tidal orchid
weak mortar
#

thx, sorry MVIII, please forgive 🙏

random topaz
weak mortar
#

Oh, dude. . .I was making a Meta-joke.

#

Because Nagatoro's whole schtick is being a menace to the boy she likes.....?

misty dirge
#

Is this something that needs to continue?

weak mortar
#

I mean. . . I just figured the guy deserved an explanation. . . .

#

🚶‍♂️

tiny wasp
#

Is there any person who can be a mentor/tutor for free?

tame dagger
tiny wasp
#

kk

misty dirge
#

Topic: Pseudocode. Some instructors want their students to use pseudocode during introductory programming courses. Personally, I didn't see the point (in my intro to Java course), but I already had a basic understanding of if statements and loops (in Java and Python) when I started the course. Did anyone with zero programming knowledge during an introductory course find it helpful?

sacred ravine
#

I would not see the point if it was Python. With some other languages it may be easier to understand pseudocode rather then language construct itself. E.g. compare from the perspective of a person that's new to programming:

int i;

for (i = 0; i < 5; i++) {
  printf("%d\n", i);
}

vs

FOR I FROM 0 (INCLUSIVE) TO 5 (NOT INCLUSIVE)
  PRINT I
END FOR
misty dirge
#

||which just goes to show that people shouldn't teach C++ in an introductory course Pepega ||

sacred ravine
misty dirge
#

that code is Turbo Pascal? so it's equivalent to C++ for that particular program?

sacred ravine
misty dirge
#

oh right, it can't be C++, cuz it's not std << or whatever

sacred ravine
#

Well, I stand corrected. Turbo Pascal isn't that bad. Here is what it would look like there, more or less:

for i:=0 to 5 do writeln(i);
#

Even though, pseudocode gives you that additional versatility and allows you to pick level of detail you want. Like cut corners or describe something in a very detailed way without any respect to any particular programming language limitations or actually existing concepts/constructs.

#

So, I'd say it has it's uses, just not everywhere.

opaque owl
#

Here's a weird one. So functions are objects, right? Where are the parameters stored within that object? They don't seem to be in the __dict__

sacred ravine
#

They are passed when function is called. Function-as-an-object is not called yet.

misty dirge
sacred ravine
#

That said, I'm not sure whether it's possible to somehow retrieve and inspect "a called function" object.

#

Oh, you might be referring to parameter definitions, not values?

misty dirge
twin egret
#

it also sorta serves the purpose as something that the teacher can use to convey what code is meant to do, without actually having to give the student(s) the exact answer to some given problem

#

like in this very server, when helping some struggling with implementing some given bit of code, i'll sometimes walk them through the rough pseudocode or steps that the code has to do, letting me as a helper provide help without providing the entire solution

earnest token
tame dagger
#

Me personally, I did a lot of diagramming in my intermediate levels of experience: when I knew enough basics to understand the vocabulary but didn’t know enough patterns to decompose efficiently

jolly parcel
#

Guy I want to learn how to develop a web but using a python as a the foundatins, do any of you guys have the map or road map to build a web?

misty dirge
scenic valve
# misty dirge **Topic: Pseudocode**. Some instructors want their students to use pseudocode du...

I taught at a bootcamp, and I definitely heard beginning students have a good idea and then completely lose track of it trying to recall minor syntax. Sometimes they’d get so fixated that they forget what problem they’re supposed to be solving. I think that having a habit of documenting what you need to do is quite helpful and few people are excited for an “extra” step, so encouragement from a teacher makes sense.

olive aurora
#

init_

#

init

tame dagger
tawdry sundial
#

I have a friend who's been pretty much in the cyber sec space with very little programming. They're mostly experienced in bash, and dabbled in Python and Java.
They've finally pushed themselves to learn programming and struggled a lot with Java, and a few friends and myself told him to start with Python for the basics to get a grasp on the concepts of OOP, functions, classes, loops, file operations, etc. and all the basics

They're doing a lot better because I forced them to go through the beginner tutorials and videos since they have a knack for jumping into things that's outside of their wheelhouse way too quickly
The question I have is I'd like to teach them about lower level concepts like pointers, memory management, etc. that's present in C++, but as I've seen with Java they have a really hard time

One example was some "medium" level question from some site targeted at prepping people for interviews at Meta / FB. The question was pretty simple - you're given a string containing a combination of "A" and "B" characters, and a variable N defining the length of that string. The goal is to return an inverted string, where all "A"'s are converted to "B" and vice-versa
The brute force method in Java would be to just loop over the array, check what the letter is, and flip it
But they couldn't figure out what to do, they were basically frozen overthinking the solution

That was a long-winded background for the story, but it's something I'm not sure how to teach someone to improve on / fix that issue. Anyone got suggestions? IS it just a matter of getting more comfortable with programming in general until you sort of just "get it" ?

tame dagger
#

I like the second version, because it identifies traits that we need to develop, which I think are equally applicable to the programming domain: Conceptual Understanding, Procedural Fluency, Strategic Competence, Adaptive Reasoning, and Productive Disposition. **I'd then ask: which of these traits is holding this person? **

tawdry sundial
#

Ohh those look wonderful, I'll go through them
I was pretty sure that I was just too experienced of a programmer to not see programming how a newbie does. I read the same problem and knew what to do at a quick glance, and when it took my friend quite a bit of time to admit they don't know what to do, I realized it's because of the skill/experience gap

Good news is my friend is very motivated by spite so literally saying "skill issue" motivated them to study and practice more lol
But I'll definitely go through those resources and speed things up

tame dagger
tawdry sundial
#

Yep that's exactly what I've been making them do - go through beginner tutorial videos, DSA and OOP, and then leetcode questions

tame dagger
tawdry sundial
#

Yeah I can get behind that - the only major thing I'd want others to learn is static typing (which isn't technically low-level) and things like sequentially stored arrays vs linked lists
Pointers, getting variables by reference vs value, manual memory management, etc. aren't really necessary unless you want to work in lower level languages

#

I studied C++ in college with smaller courses using Java, JS, and Python and ended up just sticking with Python because it really is just so easy to do anything in

pine stratus
# tawdry sundial Yep that's exactly what I've been making them do - go through beginner tutorial ...

Going to straight to DSA for a beginner is a pretty good way to make them never want to touch programming ever again. It's like jumping straight to algebra before learning arithmetic. I recommend first assigning problems such as: "let the user select between three products, A, B, or C (a simple options menu in the terminal), then ask the user how many of those they wish to purchase. Print the their subtotal and total..." Simple programs that don't really require DSA, but require being familiar and comfortable with all the basics (input, print, variables, expressions (math), conditionals, loops, lists, types (int, string, etc)). I would then also do problems similar to those found at the beginning of an Advent of Code, reading input data from a file and computing something about it (a light intro to processing a bunch of data given as input in some way (a file), and a bit of parsing), still no DSA really. Then after that move into basic DSA (at this point they should be able to read code, explain what each line is doing, and keep track of state).

#

The goal being to get them to the point where the code itself is not the problem anymore. They don't need to spend a lot of time consciously thinking about each line (in the way beginning a lot of time is spent on just syntax) and can now instead focus on the abstract (DSA). The analog in mathematics is no longer needing to count with your fingers or do multiplication the long way (instead you can do something like 4 x 15 in your mind quickly). Since that takes away from any capacity left to work on the abstract.

winter spear
# tame dagger To quote nedbat on this: https://hachyderm.io/@nedbat/111789013210403320

Yeah, I don't think ther's anything C would you teach you, or other languages, that a nice course on Computer Architecture wouldn't. I have a Electrical-Computer Engineering BS/MS so I know a fair amount of those things from my course work, I of course though have no idea how compilers or grammars work. I wish I would have taken some courses on that. I also know very little about Data Structures, had to take 2 courses but I couldn't go build a linked list certain time complexity and then go and use it to make more data structures.

#

At the end of the day, I think that there's so many layers of abstraction, you should just learn what you need for the layer you're working. Numerical/high speed computing will care about writing code that the compiler can optimize through loop unrolling, and minimize cache misses but a full stack dev most certainly doesn't give a quack

#

I think this bit you should just learn what you need for the layer you're working is pretty dificult though. Programming has become a Trade almost (i.e. plumber, electrician) and being able to know when you should just be learning the tools for your job (like software stacks and libs) vs fundamentals/academic topics (compilers, comp arch, DSA, etc.) can be hard to decipher at times.

proper cypress
pine stratus
# winter spear Yeah, I don't think ther's anything C would you teach you, or other languages, t...

C has four main purposes. 1. Simplicity (relative). 2. The language changes slowly (knowledge not invalidated quickly). 3. Lets you write fast things (gives the tools needed, either in the language or compiler (e.g. inline assembly)). 4. Stability, allowing for your code to last a long time and bind to everything. If you just want to have a language that lets you make fast things, there are many better options now, including those that are C alternatives if you want the simplicity (e.g. Zig, Odin, C3). Even Go, other than being garbage collected, can make very fast things and is also simple like C. How to make fast things in any of these languages is the same, involving concepts that can even be applied to "higher level" languages like Python (and I don't mean just stuff like computational complexity, I mean stuff like not spamming allocations, memory locality, etc). Details like pointers in languages like C don't make things fast, they just are a tool that may be helpful in making fast things (and often are) / let the user be explicit (being able to be explicit about things usually allows the user (not the compiler or other automatic optimization system) to optimize more). The real thing that keeps C "fast by default" is that it's just compiling to actual machine code and not doing a lot of hidden work that is not actually needed for the end result. So from a pedagogy POV, it's a good language to teach the idea of simplicity (minimalism), and stability, plus if you use it with a disassembly tool it can make for a good assembly learning tool. But it does not teach how the hardware works. Its explicit nature allows for easy experimentation to see the effects of hardware concepts on performance.

random topaz
#

This is not the correct channel. Read the channel description before posting.

winged acorn
#

Sorry

#

which channel can I?

random topaz
#

Your question is asking for ideas, isn't it? One of the off-topic channels would work.

winged acorn
#

Okey thanks

random topaz
#

Schools really enjoy forcing students to use IDLE for mocks/exams, but I wonder if it actually changes anything. Even a simple IDE like Thonny would be fine, right? If schools were so worked up about students cheating, they'd have some sort of blocker/restriction on extensions for Visual Studio Code, for example. It's interesting how different schools have their own ways of teaching people how to code.

#

For example, (since I am a student) we do our assignments at home on visual studio code, then upload them online where a checker then checks to see if it matches with any AI/site online. And at school we use Thonny for in-class assessments.

glossy quiver
random topaz
glossy quiver
#

at uni

grizzled storm
tame dagger
vale current
#

lol, my AP CSA exam was on paper

#

which was kind of brutal

#

and then there was a multiple choice section which wasn't any coding

grizzled storm
#

I once got a coding test where I had to say what that code would do and all questions had a syntax error it was multiple choice and that wasn't an option so I just wrote it next to the answers. The teacher didn't care because it was a shitty test meant to make the students see that they suck (part of the reason why I left that school (for anyone wondering it is never good for students that just started to make them think that they suck at that) )

gleaming burrow
grizzled storm
#

that year was insanely demotivating it's like 1.5 years ago and i'm just now starting with coding for my self again

quasi river
#

I think its good and bad at the same time. Good cuz you are forced to realize all the fine details of coding (like tab spaces, matching the opening and closing parentheses etc)

and bad cuz writing code (especially python) on paper is a bit hard cuz you gotta maintain the tab spaces in each line a constant and youd sometimes not align the spaces properly when youre in a hurry. And cuz of that the code ends up being slanting and goofy

mild raptor
#

My masters CS classes are done on paper as well lol No IDE for us

twin egret
quasi river
#

fair enough

noble aurora
#

when writing on paper, you're pretty much never losing points for trivial syntax errors though. most graders make that very clear

quasi river
#

also youd need a lot of confidence while writing on paper since you cannot test your code unlike typing it in a computer so you only have 1 chance to get it correct

noble aurora
#

writing on paper tests your ability to run code in your head, which is an incredibly important skill to have. even if you can't actually run it, you should have a pretty good idea what some code will do when it's run

sharp hare
#

Ah yes the mental C compiler

noble aurora
#

don't need to compile, just interpret it. though compiling may also be helpful

vale current
#

"it works on my machine brain"

steady stratus
#

not sure if this is the place to ask this, but I feel like I suck at python. can you guys recommend me some resources?

misty dirge
steady stratus
#

oh my bad!

loud ridge
#

Is ducktyped the way to go with python?

#

I've being using some type annotations recently
but it doesnt work well and often have to add #type: ignore specially when using with pip packages

#

also can't ignore the nice autocompletions when you get with type annotation when it is working

misty dirge
#

@loud ridge this channel is about discussing methods for teaching.

dusky mirage
#

I want to start tutoring. Would using Automate the boring stuff with Python be a good base for teaching the basics of Python?

hardy mirage
#

might be a lil complicated for begginers so depends at what point you are starting from

#

you want something that they can finish to build their confidence

thin saffron
delicate needle
dusky mirage
grizzled storm
misty dirge
#

if you post a link, please say what the link is and why people should want to click it in the same message.

random topaz
#

This is not the right place for advertising your game.

#

Unless you need feedback, this server doesn't allow advertising.

pure ocean
#

sprry

#

sorry

random topaz
#

Read the description of the channel before posting.

pure ocean
#

sorry

fickle spoke
#

They said they were taking the CS50 course by Malan on YouTube. What would be the best way to introduce some things that would help them without overwhelming them?

#

As it was I just pointed out the issue they were having and encouraged them to continue the course.

quasi river
#

oh god what is that

slender oxide
#

Thank you, do you also recommend FreeCodeCamp ?

slender oxide
#

ok ill do that

sudden dew
#

What is pedagogy?

misty dirge
sudden dew
#

Got it

misty dirge
#

is this about pedagogy?

#

Your messages are off-topic for this channel.

south steeple
#

Okay sister

desert patio
south steeple
#

Thank you

random topaz
#

Usually they don't work in teaching people, unless they have prior knowledge, as the challenges can be horribly made.

fickle spoke
#

I haven't gone through it so I'm unfamiliar with it.

random topaz
#

Either the problems were too easy or too difficult, and sometimes they were just annoyingly time wasting.

tame dagger
random topaz
#

My uncle in cs also took it with me and he had some great things to say 🙂

tame dagger
#

IMO, the cs50 programs are good for college level / freshmen students: there’s a certain style to Uni courses. I normally recommend them to people at that level. For high school students, I think some of the less formal tutorials and/or YouTube channels are probably a better fit.

random topaz
#

Yes, but I do like the lectures that cs50 brings.

#

And their short form videos are also great, when they break the problem down.

#

But doing their course in general can be time consuming. Such as using C to make filters on a certain set of pixels.

random topaz
#

Of course, my main goal in programming isn't really to be practical (at least not yet) but it's just to learn some logic and participate in contests.

queen heron
#

This channel is for discussing teaching methods. You can discuss this in #python-discussion or any of the off-topic channels.

sick rapids
#

Hey y'all. I am fishing for a better way for my kid (11yo) to learn python. We are currently subbed to BitsBox, but he doesn't like it ( I think its too hand-holdy, and too "unreal" i.e. not actual coding in his mind) He wants to learn coding, so its frustrating that the method is too clunky. Do y'all have any suggestions? (doesnt have to be crate based)

keen igloo
#

maybe try brilliant

sick rapids
#

ah yeah, not bad! Forgotten they had coding as well!

true sun
#

khan academy also has a python course for young kids

grand nexus
#

Hello, I'm currently working on a project using a Debian 12 image, but I ran into a problem installing Python packages using pip, and I received the following error.

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Therefore, if there is a way to install the modules without first constructing the environment, please suggest it. You should also try using a more contemporary installation method like pkgx or mise.

sick rapids
fallow terrace
#

Obviously you still want some learning resource on the side, but that's helped me teach a few folks.

royal escarp
sick rapids
#

appreciate teh suggestions though

royal dove
# sick rapids I know some python, sure, but I think teh gamefication aspect is worth the money...

There are a few things that motivate people into doing things. Finding ways to light that spark in the kid, is really helpful. So, showing things that you can do with code. More than just "look a calculator". That is of course easier said than done. But video games can be something that is easy to get visually into it. As in, making games. What is more gameified than a game? Now, there are issues with that based on how into games you want the kid to be. Not going to comment too much on that.
Maybe when they turn 13, they can start making roblox games with lua. If you do want to go down that route, I will warn you that you really need to be there with the kid since young kids get taken advantage of in roblox (for labor and from pervs).

If you want to stick to courses, most of them are not the best, or are a little too advanced. But also, you can let the kid determin for themself if it is too hard. I think khan academy is pretty good; at least the last time I looked at them. And they have a lot larger selection of topics besides just "code."
What tends to work for me, is showing why something is cool besides just saying "becuase it is useful." That is what I do with math when I teach it. I show them how some simple concept is being taught, can be used as part of a bigger complex system. But you have to be decently knowledgeable of things going on to do this well. Regardless, I wish you luck. And I wish luck upon the next programming generation

#

As an example of something I have shown with the math thing;
The kid was learning pythagorean theorem. With it, you can calculate distance between points in space. But I explained that the points in space can be much more abstract than points on a paper. You could use it to calculate distance between anything. Not to get too into my explanation; but I then went into how this simple formula can be used as a recommendation system for something like netflix. Your distance to how similar you are to someone is really low, and they like a movie you didn't see yet. So it gets recommended. Stuff like that. It was an abstract simplification of how it is used in the real world. But it is still a real example. The kids I told this to were really into it and had more interest in actually learning the topic.
Again, easy to say, hard to do. But if you are just conscious of it, you will find examples to teach

sick rapids
#

my "problem" is that im not a good enough coder to be able to be with him in making a game with pygame or similar (learning that myself becaus I want to make a physics engine to simulate and anazyle gear meshing.. but thats my problem lol)

tacit shadow
#

<troll>Kids generally have fewer ideas of what's supposed to be hard and what's not, so they are much less eager to slack through the problems we deem hard (unless we say they are hard in front of them)</troll>

pearl vortex
covert zenith
#

I've created a tik tak toe game but It doesn't work .-. somebody wants to check it?

misty dirge
misty dirge
shrewd ridge
random topaz
# shrewd ridge ok plz dm me

3 friendly reminders. We have an assortment of channels for you to choose from, so usually dms are unnecessary. Also, Stel was not the one who needed the help, so it would make no sense for him to dm you. Finally, read the description of each channel so that you get a better understanding of each without needing to trial and error your way through. Hope you have a good time in this server 🙂

#

Now that that's out of the way... Our school has an interesting habit of rejecting good cs teachers and keeping the bad ones. There is an infamous cs teacher who is actually just a normal person who doesn't know anything about cs and just scrolls through twitter during classes. I wonder if other schools do this too.

molten patio
#

@random topaz

random topaz
molten patio
random topaz
worldly dewBOT
molten patio
random topaz
molten patio
random topaz
# molten patio Toxic

Apologies, but you have been ignoring me for the past few messages. Go to the off-topic channel and stop pinging me please.

turbid pier
# molten patio Toxic

You're not using that word correctly. If you want help, you should listen to when people try to help you, don't be angry at them. No one will help you then.

random topaz
unborn skiff
#

when pedagogy start?

#

like when u started"phityhon"... mine was like 2003

random topaz
#

What do you mean?

unborn skiff
#

like ... how tf u compile that ssith?

unborn skiff
random topaz
#

I'm guessing this is not the channel you want to post this in. Read the description before posting so that you will get accurate answers.

willow iron
#

First off, I don't know what channel fits this topic.
Anyway, on a scale of Beginner, Novice, Experienced, and Advanced, I'd say l'm between Novice-Experienced range in Python. Should I get to experienced/advances before I look at other languages, or should I start learning them now? I was thinking about maybe learning HTML or JavaScript, but should I wait until I'm pretty good with Python?

random topaz
willow iron
random topaz
willow iron
random topaz
#

You should probably scroll through the channels and look at their names.

random topaz
#

They give a pretty good description of the topics. And browse channels has the full list of you hide them by accident.

digital estuary
#

Guys, I'm studying for the PCAP certification.
Do you know where I can find questions, simulations, apps with questions and simulations?

misty dirge
digital estuary
#

Oh, Sorry

calm jay
#

Can anyone recommend live Python coding videos? It helps me to watch someone working through a problem in real time. I thought this video was really fun: https://www.youtube.com/watch?v=7r83N3c2kPw That person is so excited about 1980s BASIC... is there anything like this for Python?

🧠 Sign up for Nebula! — https://go.nebula.tv/codingtrain

Take a trip back in time and let's code the Snake Game in AppleSoft BASIC on a restored Apple II+ computer! GOTO and GOSUB! Line numbers! https://thecodingtrain.com/challenges/173-snake-applesoft-basic

🎥 Previous video: https://www.youtube.com/watch?v=FfCBNL6lWK0&list=PLRqwX-V7Uu6ZiZxtDD...

▶ Play video
misty dirge
solemn isle
#

guys I have a question, what do you think from personal experience are some major flaws with the current adopted school system that effect the ability for students to reach their full potential?

#

please provide an example as well

grizzled storm
# solemn isle guys I have a question, what do you think from personal experience are some majo...

In the Dutch education system it is how 1 thing like Dutch, German, English, France, math, something like that can limit you to not be able to do some subject where you are excellent at with some extra challenge like a level higher. For example someone is great at math but really bad at Dutch that person can never learn more complex things about math because they don't get thought for his level of Dutch

#

In short the worst subject will limit the potential (they are working on it at least it is mostly resolved for elementary school because a single teacher has to teach at 6 different levels for each subject in a single class)

random topaz
# solemn isle guys I have a question, what do you think from personal experience are some majo...

In my school, teachers don't teach students/help them much because they are not qualified for their positions. For example, we have an infamous teacher who just scrolls through Twitter in class while the student who has the most experience (which somehow is me) helps everybody else and teaches the class. Usually, the teachers are spoon-fed PowerPoint presentations that look horrible and don't explain anything, and they just parrot those presentations back to the students. Even in our computer science course for ATAR, which is like the Australian equivalent of SAT, the teachers don't teach, and students are stuck using Turtle or doing some introductory Grok course.

harsh belfry
#

Hi guys, do you have any groups for Python study? I'm a Brazilian student of this programming language

random topaz
harsh belfry
#

Ok, sorry

neon pasture
#

Should students learn dataclasses or classes first? I find myself recommending them both at once, but I am not sure that's a great idea.

random topaz
misty dirge
random topaz
#

It probably is different for those in college/uni but I think classes are usually taught before dataclasses, even though it would probably be better for it to be the other way around.

neon pasture
#

Yeah, that's where I'm at as well. A dataclass makes more sense in that it's just just do this magic thing in your code and you get good data modeling - letting the student just get on with their project, versus classes which force then into some tangent on the basics of OOP. The other option is the collections.namedtuple, but that one is such a weird API that I don't think it's worth recommending despite its simplicity.

neon pasture
#

I don't see how that is meaningfully different from a dataclass.

misty dirge
true nova
#

i guess teaching dataclasses is okay if you explain that its constructing a class and generating things like the init, repl, and str under the hood for you

#

and that if you need more granularity over your generated class, then learning how normal classes work would be beneficial

neon pasture
#

Hmmm, I guess NamedTuple doesn't actually have class in the name, so it could be explained as abuse of notation (-ish).

random topaz
#

This is making me rethink my knowledge of classes. I never really got a formal lesson on Python as my teacher isn't really qualified for the job. It's a problem I've noticed with many highschool programming teachers.

true nova
#

well high school isn't really meant for that imo, for the basics yes, but if you want to go more in depth, you might have to do it at college

#

it's not the same for certain things like math because every year you have to take more math that's explained more clearly and in depth

random topaz
true nova
#

you're getting constant repetition yearly, whereas certain courses like programming, you only take for a quarter or two and be done with it

random topaz
#

For the ATAR course, which is like an SAT equivalent but Australian, students still use Turtle for their projects because it's a requirement, and other packages aren't even allowed

neon pasture
#

We had an excellent programming teacher, but it does feel like a lot of schools went "hey programming is a valuable skill now so we should teach it", without actually having anyone skilled enough to teach programming.

random topaz
random topaz
neon pasture
#

It wasn't their job until very recently, IT involves fairly little programming usually.

random topaz
#

Our IT/cybersecurity team is just a bunch of graduates who aren't starting university until later this year.

neon pasture
#

In CS/IT university education, it is a given that logical programming is taught.
With the lack of... any practical application of the relevant patterns and the lack of prolog pretty much anywhere, do you think it makes sense to teach it, or has it become the new analog computing and should be dropped as a mandatory part of a CS education?

grizzled storm
#

Only if it gets replaced by something more useful and effective for learning

neon pasture
grizzled storm
#

I've had that happen at school that some part of the English test was removed and was replaced with movies

#

So it could also mean in this case going more in depth in something else

glacial echo
#

What do you guys think of Devin ?

#

Also, what is the point of an IT or related degree now ?

true nova
glacial echo
#

I really hope so, I love Software Engineering and recently started learning python, because I want to learn Data Science, I am doing Master in Computer Engineering, and we got taught a bit about AI

#

Some says there will be less Developers and less pay, for non AI related stuff

royal dove
# glacial echo I really hope so, I love Software Engineering and recently started learning pyth...

(Not super related to channel topic)
It’s a cool tool that is still very far from taking away jobs. There are potential dangers of the tool. But overall, jobs won’t go away. Even in the most ideal state, the AI still requires a programmers knowledge to operate to perfection. Meaning, a SWE is needed just to use the tool (at least in prod). And this will always be the case. But things like that become more clear, the more experience you have. Most people really scared by the AI, are people with little to no experience. And that is reasonable enough. But it isn’t a threat to jobs in the general sense.

#

The part of this conversation that is relevant to this channel;
You can use these AI tools to teach or learn from. But they are dangerous since they don’t know when they are wrong. As opposed to a human who can at least comment that they are not sure if something is correct. However, using it as a tool to learn, can help. It is really good at giving you key words for a topic. It can help save time in looking up what to look up. But it isn’t great at solving real problems. It is also good for sanity checking things. It isn’t perfect, nor reliable. But it is low effort to see what it thinks of an idea; and sometimes it’s response is really helpful

foggy herald
#

What does pedagogy mean

rain plume
#

Discussion of the methods and practices of teaching
from the channel description also works as a definition

misty dirge
misty dirge
random topaz
earnest meteor
random topaz
grizzled storm
#

@misty dirge wouldn't it be better to pin #pedagogy message again so it's at the top of the list of pinned messages

misty dirge
grizzled storm
royal dove
#

It honestly won’t make a real difference. The type of person to just randomly start typing in here, is not the type of person to read the pins

muted briar
#

Hi, everyone

random topaz
muted briar
#

Yeah

random topaz
muted briar
#

can you tell me about method how to join of telegram channel with python?

random topaz
outer sand
#

yall is it acceptable to save my glorious time and ctrl v some links than spoonfeed ppl

misty dirge
misty dirge
outer sand
#

i didnt write do nothing as an option bro wdym

misty dirge
#

Oh, I see, you said "than" rather than "that". I misread it as "that" because "than" doesn't actually make sense in that context. You can't say "is it good to do x than y"--it would have to be "is it more good/better to do x than y".

So, "is it more acceptable to save my glorious time and ctrl v some links than spoonfeed ppl". This sentence makes sense.

If you're trying to help someone learn, it's better to direct them to resources than it is to solve their problems for them. But even that isn't what we want to see in #1035199133436354600.

outer sand
#

and i forgot what i wanted to say but

misty dirge
outer sand
#

resources

misty dirge
#

There's a link to our resources page in the description of this channel. But this channel is not for resource suggestions.

outer sand
storm osprey
#

hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

misty dirge
storm osprey
#

my bad

#

cuh

misty dirge
random topaz
#

There isn't a one way fits all method of teaching, but is there usually a general guideline? Such as the order you teach concepts, the concepts themselves, etc.

misty dirge
#

No, but this is an ordering that I came up with a few years ago.

Basics

  • print('Hello world!'), basic math operations, variables
  • Basic boolean logic, if statements and indentation
  • Lists and dicts
  • Loops
  • Functions (perhaps with basic type hinting)
  • Importing from the standard library
  • Exception handling (try-except only)
  • f-strings
  • Sets and tuples

Intermediate

  • Defining your own class
  • Mutability, references, and garbage collection
  • Everything's an object
  • {list, dict, set} comprehensions
  • is vs ==
  • Docstrings, commenting
  • Advanced exception handling with raise, else, finally
  • break and continue
  • File IO and string manipulation

Advanced

  • The Python data model with inheritance and dunder methods
  • *args and **kwargs
  • Context managers (with)
  • Decorators
  • Generators
  • Type annotations
#

sorry, I didn't expect that to be so vertically long.

#

I'd be interested to know what you hate about it, if anything.

random topaz
#

I'm surprised commenting is introduced in the Intermediate stage.

#

Unless you meant the proper practices for docstrings and commenting.

misty dirge
misty dirge
random topaz
#

Makes sense.

#

Yeah, the list looks pretty good.

#

Even I haven't ticked off all the boxes for Intermediate tbh.

rain plume
misty dirge
#

and also everyone.

rain plume
#

i would use pathlib more, but the context manager lesson is engrained into me. opening a file without with and an indented block is probably a difficult thing to unlearn, and looks wrong to the older-style brain

random topaz
#

I use sys lmao.

misty dirge
#

just use Path.read_text. liberate your mind.

random topaz
#

sys.stdin = open('file.txt', 'r')

misty dirge
#

oh my

random topaz
#

It's for contest.

rain plume
random topaz
misty dirge
#

what is WA

random topaz
misty dirge
#

Mutability, references, and garbage collection
in retrospect, I'm not sure why I put these three together

random topaz
#

To throw people off?

misty dirge
#

I can't decide if garbage collection needs to be in here at all

random topaz
#

Sorry, but what is garbage collection?

misty dirge
#

Python can know "at this point in the program, there's no code after this that can ever use this object again", and deletes it

random topaz
#

huh, interesting.

#

I've never seen a use case for that in my code before.

misty dirge
#

it's not part of the code. it's something that Python does in the background while it's running.

random topaz
#

Ohh. Well... I guess that's a new thing that I've learnt today!

misty dirge
old bane
#

could probably include it as a note in intermediate. I've seen learners create situations where they are holding onto a reference indefinitely due to not knowing about how python handles it

#

doesnt need to be a deep dive, just that if there arent strong references to something or only detectable cycles of objects, python will clean up those objects at some undetermined point

umbral folio
#

using a " def " keyword to create a statement I define the Use of a selfcreated Object
Is that summed corrrectly?

#

I am currently trying to create a presentation a bout my code to people who have no clue what code is.

misty dirge
umbral folio
#

Then whats a better way to describe it

misty dirge
#

That def is the keyword that introduces a function definition.

umbral folio
#

__init-- would be describing the "making?/defining" of an object then?
so we can call apon it.

radiant meteor
#

Hey Guys, In what channel can I get Help with some code?

#

I am new in the community by the way....

#

Please, I really need help with this, I cannot find the problem.

umbral folio
#

Anything that is particularly wrong?

misty dirge
#

@umbral folio you should probably move to a help thread also.

grizzled storm
umbral folio
#

Thanks for the advice, I did get 18/20 points on 4/5 topics and 16/20 and the verbal wording it worked out very well

misty dirge
misty dirge
rain plume
#

to your knowledge, are there any resources that follow that exact ordering?

misty dirge
inland tulip
#

What is the command equivalent to ' ls -a ' for windows command prompt . I want to see the hidden files as well .

earnest meteor
inland tulip
earnest meteor
simple olive
#

What's the best way to explain python -m venv path/to/your/project/.venv because I've seen people write literally that or worse run python -m venv ~/projects/example/

#

Which litters their project dir with venv stuff

#

I've tried changing the instructions to: " python -m venv path/to/your/project/.venv the .venv is important "

misty dirge
#

if you've already established that their cwd is the project folder, you can just tell them python -m venv .venv

weary tendon
misty dirge
livid elm
#

Why there is seven in the result

livid elm
lunar inlet
#

hi all, any idea/good game to teach 7yo to code?

lusty cypress
#

Monty Hall.

#

Multiple choice quiz.

grizzled storm
# lunar inlet hi all, any idea/good game to teach 7yo to code?

i'd say it depends a lot a lot on the kid although the most important thing to teach anything to a 7 year old would be to make it fun for them and keep it simple and ofc be really patient it is possible that they forget it the next time they run into it (can be anything like a for loop or a if statement ).

imo is it only a good idea to learn them code if they really really want to learn it otherwise don't bother

lunar inlet
#

thank you

pure condor
random topaz
tame dagger
random topaz
#

Ahh I see.

bitter snow
#

guys

#

I believe i have a bitcoin miner on my pc from cheats I downloaded when I was a dumb kid

#

should I just reset the computer after downloading all my important stuff oro what?

tame dagger
worldly dewBOT
bitter snow
#

okay my bad

lunar inlet
earnest token
#

i am preparing students for a python competition, what are some good places to find real world problems, other than leetcode

royal dove
earnest token
glass sleet
random topaz
mint tundra
#

What is this channel for ?

upper flint
misty dirge
#

The only part of this question that's on-topic for this channel is "is it a good idea to use jupyter notebooks for notetaking". Though I don't have any particular opinion about that.

random topaz
#

Discussion of the methods and practices of teaching
Maybe you phrased your method weirdly, but make sure it’s about pedagogy.

sudden hazel
#

!pban 987025735535456336 CSAM jokes are absolutely not okay here.

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied ban to @meager plume permanently.

random topaz
#

!rule english

worldly dewBOT
#

4. Use English to the best of your ability. Be polite if someone speaks English imperfectly.

random topaz
#

!rule ad Please make sure you speak English to the best of your ability. Also, don't advertise please.

worldly dewBOT
#

6. Do not post unapproved advertising.

hasty kestrel
#

!rules

worldly dewBOT
#

The rules and guidelines that apply to this community can be found on our rules page. We expect all members of the community to have read and understood these.

sand dawn
#

@kindred beacon

earnest token
tame dagger
burnt fossil
candid ermine
#

from a software engineering good coding practice stand, if a function returns nothing, is it better to omit a simple return or to leave it there?
tag me if u answer, thx

heady crow
#

Hello everyone, if there are people here who are well versed in Renpi. I am just learning to work with him, I would be glad to make new friends who could help me sometimes. I am Russian, but I know English, Azerbaijani and Turkish quite well

nimble crypt
#

anyone have him added or in server w him?

random topaz
remote apex
#

!rules

worldly dewBOT
#

The rules and guidelines that apply to this community can be found on our rules page. We expect all members of the community to have read and understood these.

winged wasp
#

What is the correct room for the generic questions for python?

royal dove
vernal shard
#

hello guys can someone help me to program a discord bot?
the main function is that if someone in the server starts to play a game the bot is going to send a message into the server like --> xy started to play minecraft or something

stuck veldt
#

Landing pages please

misty dirge
random topaz
#

That's not really what this channel is for. Make sure you read the channel description.

foggy hazel
#

I would like if there is some paper or video about various ways / dialects to script with the same objective. Like this :
how to make a simple timer in three different ways in python (the pros and cons of each one)
Is there a more specific term for what im referring.

random topaz
foggy hazel
#

I am looking for pedagogic/academic material about that.

sharp pier
#

I have some CPP devs looking for in-house classes on some of Python's nice internal libs such as itertools, functools and collections and so on, are there any good examples of ways to teach these things in a workshop type setting?

white nimbus
#

Not a clue

sour wren
#

are there any resources about pedagogy?
i dont see anything useful in pins

i might teach python to 12 yo person, starting in a couple of months, and i would like to know how to do that better

i have a lot of questions:

  • where to start
  • what should i teach first, what should i leave for later
  • what exercises should i give
  • what interesting noob-friendly mini-projects can i recommend
  • if, say, we talk 1hr a week, what is the min/max time they should dedicate to practice on their own
  • what learning speed should i expect, how to know if they are too slow
  • how to find knowledge gaps, is there a comprehensive list of questions about stuff
grizzled storm
# sour wren are there any resources about pedagogy? i dont see anything useful in pins i mi...
  1. where to start?
    • good preparation (which it seems like you are already doing so that is great) .
    • make sure that it won't be boring for them and be patient.
    • just start at the beginning so just basics like print, if else, loops, start there
    • let them figure out things on their own ofc help when needed
  2. what should i teach first, what should i leave for later?
    • all the complicated things should come later like classes, pip, just all those things i can't tell when you should introduce them but that should be a bit by feel.
  3. what exercises should i give?
    • start simple like number guessing game, and eventually work up to something more complex like tictac toe
  4. what interesting noob-friendly mini-projects can i recommend?
  5. if, say, we talk 1hr a week, what is the min/max time they should dedicate to practice on their own?
    • that would depend on them imo is 1 hour reasonable but it's fully possible that they can't for whatever reason. but start slow so the first time probably just do no homework and if possible give them time to do it during the class
  6. what learning speed should i expect, how to know if they are too slow?
    • that would depend on the kids.
  • but too slow won't exist as long as they are motivated
  1. how to find knowledge gaps, is there a comprehensive list of questions about stuff?
    • just ask them
  • give them some small test (if you do it on paper do not let them write code that is just useless)
  • with the projects you can grade it

just make sure that it stays fun for you and them

stoic ibex
#
#

I simply bypassed the mainframe, opened a 24 character interchanging daisy chain, used my decoding machine to brute force the firewall to access the remote servers

#

(I unlocked my computer and searched on bing)

graceful helm
#

where are you from

graceful helm
#

its the only course i could find in english

#

@weak mortar

random topaz
#

That's not what this channel is for. Nor this server. If you need help, we are able to assist you, but we don't do private tutoring. There are many courses to choose from in the resources page.

misty stump
#

wat dat

random topaz
#

Okay, but this is not the place to ask. This channel is for discussions of the methods and practices of teaching.

versed lantern
#

Hey everyone has anyone made the google lens translation image to image?

misty stump
#

hi

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied timeout to @rustic pecan until <t:1717757706:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).

The <@&831776746206265384> have been alerted for review.

north oasis
#

Teaching Tip: Be flexible in order to meet the student where they're at.

I had a 1:1 online tutoring session today. The student's mom had told me that he had used print, if-statements, input, and loops, but not functions/subroutines before, so I had prepared slides for introducing functions/subroutines. However, the student would not focus on the slides. He was instead focused on writing code that he already understood, code with just if-statements, on his whiteboard, and describing to me what it did. After a couple of times asking him to engage with the slides, and that tactic not working, I instead opened up a code editor and copied what he had written on his whiteboard. Immediately, he was engaged with what was on my screen. I then added function definition syntax outside of that if-statement, and added a call to the function on a later line of the program, and he stayed engaged. By the end of it, the student was able to write functions on his own that took arguments and returned output.

fair herald
#

guys I got a data analytics test in uni tomorrow. Anybody got notes for the basic stuff I need to know? pls it's urgent

ember otter
fair herald
#

my bad

bitter osprey
#

when do you start deciding you need to break the project into different repos?

simple olive
north oasis
#

Anecdote: EduBlocks did not solve the problem of "Syntax complexities are a barrier for students students to learn the logic." Rather than "I have to remember that print statements use parentheses and variable assignments use the equals sign" it was "I have to remember that the print statement is in the statements tab while the assignment statement is in the variables tab".

misty dirge
sour wren
#

i guess it is a thing similar to scratch (where you code by combining blocks)

north oasis
#

It's scratch functionality with the blocks and stuff, but with python logic.

tame dagger
green saffron
#

Any good resources for a beginner ?

sour wren
worldly dewBOT
#
Resources

The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.

feral plume
thorny brook
#

hey hope you all doing great, im starting in this world so i was wondering if there is any project suggestion to start with??

worldly dewBOT
#
Kindling Projects

The Kindling projects page on Ned Batchelder's website contains a list of projects and ideas programmers can tackle to build their skills and knowledge.

uncut valley
#

How to code java?

spiral cedar
brittle totem
#

where can i learn how to teach

grizzled storm
#

And what is the age group you want to teach to

brittle totem
#

im teaching a 15-year-old individual

#

i want to teach him to make Tetris in python

grizzled storm
#

Try to give them smaller goals and let him figure it out himself

brittle totem
#

i see

#

so i should split the task into smaller ones?

grizzled storm
#

Smaller tasks is one way that could be like Tetris in smaller tasks or other programs that have useful things for the Tetris project

But make sure that they have fun.

north oasis
#

What does he already know?

brittle totem
brittle totem
grizzled storm
brittle totem
#

thanks for the advice

karmic bear
#

I am so glad this exists, pedagogy is such an excellent tool.

north oasis
#

Does anyone have a good mnemonic for operator precedence in python?

misty dirge
#

Not really a mnemonic

sour wren
#

what does pemdas mean?

rain plume
#

Parentheses, Exponents, Multiplication & Division, Addition & Subtraction.
has a million regional variants, notably BODMAS (brackets, order)

sour wren
#

i follow this rule: "operator precedence makes sense"
it fails with << and >> though

rain plume
#

it can get tricky - or at least somewhat less intuitive - with some things, though, including and and or, which is why i will semi-frequently use either not-strictly-needed parentheses or variable spacing to denote execution order

winter spear
thick onyx
#

How do folk typically post curricular materials? I'm getting a lot of bounce-off from having to clone from github, so I'm looking for a lower friction way for students to get started.

north oasis
#

People can download stuff from google drive

thick onyx
#

I'm primarily looking for a "no install" solution, at least to get started. Something in the browser? Binder looked like the right solution, but its start time was several minutes.

winter spear
misty dirge
weak mortar
#

Can some one help me with my code? Please??

earnest meteor
winter spear
thick onyx
# tame dagger What course / level?

I wrote a cross compiler that takes python source code and cross compiles it to a video game programming language. Players are 16+ typically.

I'm also attempting an Abstract Syntax Tree course with a capture the flag feel

spare coral
#

the rainbow flag is for python lgtbq support?

misty dirge
bronze citrus
#

what is pedagogy

misty dirge
bronze citrus
#

oh

#

so python coaching

slender oxide
#

is there a good video to get into oop?

misty dirge
north oasis
#

Whatever you enjoy the most, as that'll give you immediate motivation to keep learning

misty dirge
#

This channel isn't for self-study advice.

errant oasis
manic dust
#

Hi!

I want to understand the end of the pipeline of teaching a simple NN or even just a machine learning model. I kind of understand the steps leading up to encoding the data as numerical values, train/test splitting, creating a model with layers and even reading the results in the classification report and the confusion matrix.

What I don't understand is the most important part of why I'd be teaching the model in the first place - how can I then get REAL data, and plug it into my model? When I'm making the model, I'm transforming all the categorical data into numbers through various kinds of encoding. When I get new raw data, it's in its original format with the categorical variables, dates and so on.

Example - I want to predict whether the response to an official letter from a client will be on-time or overdue. I have the branch responsible for the response, the manager, the client, the dates (incoming, due-date, actual response date). When I train the model I encode all those. Say I get a new letter, how can I input all these variables to know if the response is going to be overdue or not according to my model?

Also, since everything is encoded, how can I understand which of the parameters have the most influence on the response being overdue? Which variables actually matter? All the information I'm currently finding online just skim over this most crucial part.. They just go - oh, here accuracy_score(y_test, y_predict) - which just gives a percentage with 0 insights.

weak mortar
pastel chasm
#

Hi everyone! I am an incoming final year Data science undergraduate, and I wish to do a final year project as I wish to contribute to smth meaningful, and possibly enter grad school in the future. Problem is, i have absolutely no ideas on what my thesis should be. I'm thinking of doing smth deep learning related but i am not sure.

I am quite lost on this and I really hope seniors here can guide me on how to find a thesis topic. Where/what should i start researching/reading on? How to know what things are needed in the industry, so that i can research on it?

neon pasture
# pastel chasm Hi everyone! I am an incoming final year Data science undergraduate, and I wish ...

There are people doing active research wherever you're studying. Talk to them to find out what they know and whether it interests you - you ideally want to find a thesis where your supervisor will have a good idea of what it should be so that they can help and don't end up placing insane requirements on you. They'll also know what makes a good topic.
This is a question better suited to #career-advice

pastel chasm
kindred fog
#

Hi if I do an object and use the list. I should use .copy (in e.g. init) when I change something in list or better is always use .copy?

kindred fog
misty dirge
kindred fog
weak mortar
#

does anyone have any good C++ group chats/discords or tgs?

#

im trying to learn that as the happy medium between python and C's static typed'yness

misty dirge
#

Hello @weak mortar, please read the description of this channel, and then head to an off-topic channel.

misty dirge
# weak mortar pardon me

Every channel has a description that tells you what the topic is. Your messages are not on-topic for this channel.

north oasis
#

What IDE/editor do you expect your students to use? I've been using repl.it, but I don't like relying on the internet in order to have in-person classes.

jolly night
#

if the code doesn't get too complicated, IDLE works. it's already installed, and it's not slathered with lots of confusing options.

north oasis
#

On linux?

jolly night
jolly night
worldly dewBOT
#

:incoming_envelope: :ok_hand: applied timeout to @digital marlin until <t:1719526447:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).

The <@&831776746206265384> have been alerted for review.

sinful nebula
#

hello

#

what is the best way to learn rust

robust bane
#

!ot

worldly dewBOT
sinful nebula
#

ok thans

dapper sinew
ebon stirrup
#

hi

dreamy horizon
#

OH wait

misty dirge
#

You've raised a good discussion topic: should beginners avoid editors with autocomplete? I'm specifically thinking of "it will recommend variables you've already defined, and it knows what methods/attributes are available when you do .", not AI-powered predictive autocomplete.

dreamy horizon
#

I just mean the basics one that shows you the definition of the function (and tell you what parameter they take and hopefully, type hint as well)

misty dirge
#

And you think beginners should avoid editors with that functionality? Why is that?

dreamy horizon
#

No I think it's a good functionality

#

I personally need autocomplete as I don't want to load up the docs for the libary I am using every time

dreamy horizon
#

At least I think it's hard coded

#

Yeah, I worded that very badly, sorry

grizzled storm
#

imo the ide really shouldn't matter for learning but like if you are teaching some recommend one and if they use something else but it works for them not your problem just don't allow AI autocomplete or AI code generation although if they do why even bother with them

dreamy horizon
grizzled storm
#

true but just show it in the recommended ide and they should be able to find out how it works in their choice if they can't just help them

#

but it's not about how to do it in a specific ide it's more like how to do it in general and use it the ide is a very small part of it

upbeat escarp
#

I have seen some ppl thinking there is something wrong their code when auto completion / syntax highlighting didn't pop up as they are typing. When in reality it was often just due to something with type annotations

thorny dagger
#

Hey !
I d like to learn how to code but I just don’t know how to … 🫠

Let me explain you… I may be a -10 in computer science rn (I don’t even know how to run a program in my computer terminal) but I already got huge ambitions : I d like to learn how to code a program able to solve snake game. (Don’t ask me why, I just find it super cool) I know it will take time and I m starting super far away but I really want to learn coding. The point is, I don’t know where to start … From now, I’ve learned the basis of a computer terminal and I’m following a free python course on OpenClassroom but I’m not sure if it’s the right way to learn coding and achieve my goals. Could you please give me advice, for where to start and what are the steps of learning ? Maybe a kind of roadmap ?

Thank you by advance for the time you’ll give me 🥹 (please forgive me for my poor English vocabulary, it’s not my mother tongue)

misty dirge
brittle totem
#

what are some intriguing projects for people that haven't touched programming

#

i think that small programs that don't do much (hello world) won't really attract people to learn

#

but projects that are too ambitious are, well.. too ambitious

#

what are some appropriate projects that seem cool but is easy under the hood

queen heron
#

That's usually how it starts out because non text based programs introduce a layer of complexity they might not be ready for

misty dirge
#

In my undergraduate program, the main project for the "software engineering" course was an android app. And even though it didn't have to be aesthetic, the fact that it had to be an android app introduced so much complexity that it detracted from the learning objectives of the course.

hidden turtle
#

i think this is the right place to ask this.

i have a arduino (have not used it before) can i send - input with it?

hidden turtle
signal adder
#

I have 2 sisters who are both 8 years of age. I want to get them into computing. How should I go about it (e.g. what resources to use, approach in how I teach them)? Also, for further info, my programming and computing knowledge is still at the beginner level but I am working to get it to a higher level so answer as if I've already got a lot of experience to be ready to teach

ember otter
# signal adder I have 2 sisters who are both 8 years of age. I want to get them into computing....

An important rule of thumb is - keep your students motivated. You don't want your sisters to feel like programming is boring or too hard, so you must keep them motivated with some fun projects that they could probably play with for a while. You can try using python, and if that's too much for them, start with a block based lang like blockly, and just work your way through the basics. You have already been through the experience of learning, so I'm sure you know what to start with and what's easy and what's hard. Don't try to push too hard - programming is tough and it takes a while to get used to the countless failures and bugs that you must fix in your code. Regardless, try not to spoon feed them too much and make sure it's lots of hands on. Try not to use too many YouTube tutorials as, I can assure you, your sisters are not visual learners.

signal adder
# ember otter An important rule of thumb is - keep your students motivated. You don't want you...

Tbh with you I've gotten back into programming since sept 2023 and I'm still finding it difficult to actually try to learn. Atm, I'm going to focus more into data science to then transition into ML; I did try to learn ML but the amount of prerequisite maths to learn was overwhelming me (even though I do have a strong maths ability) and I just want to code shit and not be stuck in 'tutorial hell'. If I had more money, I would have bought some raspberry pi's and start doing some mechanical projects as I have done engineering type projects before and always enjoyed the process. Do you think maybe buying something like a raspberry pi and have my sisters help me build something with it would be good to get them into programming?

ember otter
signal adder
# ember otter Well... It depends. I would probably teach them the basics of logic at the very ...

What I'm thinking is if they 'help' me with building something with a raspberry pi, that could pique their interest in wanting to learn more about programming, even though they dont know what the fuck theyre doing. My sisters do a lot of painting and drawing, so maybe one way to get them into the world of computing is for them to build something (despite the fact that Ill essentially be doing everything XD )

#

All the shit after, I can think of something. Just need them to gain an interest

ember otter
#

Tbh it's a good idea, except for the lack of planning after that.

signal adder
#

Im still at the beginner stage myself after a year as I cant seem to focus on a specific area so Im not at a level to teach my sisters yet. Just for now, I'll focus on bringing my skills higher to a point where Im satisfied to pass on my knowledge to them. Though, I might just buy a raspberry pi and do a little project with them; something thatll not only benefit them but also me

ember otter
#

Sure. I'm sure you already know much more than me tho

signal adder
#

Nah. Honestly, I've essentially been stuck in tutorial hell for a year. My programming skills are nowhere near even the intermediate level. Its just hard trying to improve my skills when I cant focus on a particular area. Biggest advantage my sisters have over me is theyre in that age of discovery, without having to worry about the real world. They ask simply because they dont know

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied timeout to @deep marsh until <t:1720172124:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).

The <@&831776746206265384> have been alerted for review.

vale current
#

my younger sister (she's 10) is real into scratch right about now as well, and in elementary school (till around 10yo), we were introduced to block coding programs, so I think it's a pretty friendly introduction and a fun way for them to get playing around with programming.

signal adder
tame dagger
# signal adder I was thinking about scratch but not sure if theyd be interested in it. Ill give...

Depending on your / your families budget: Another option are programmable toys... toys that can follow a set of instructions (ie: move forward, left, right, backward, etc). Introduces to the idea of programming something, but making it a game. There's line following robots https://www.amazon.co.uk/robot-follow-line/s?k=robot+follow+line, sphero's https://sphero.com/collections/coding-robots/products/sphero-mini?variant=32255985025069, and a lot of options nowadays at different price points.

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied timeout to @manic rose until <t:1720326200:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).

The <@&831776746206265384> have been alerted for review.

spice island
lapis bolt
#

anyone have a good free dsa course for python? im not really looking to prep for interviews or anything im moreso just learning for the sake of learning. id also like to get into ai or data science later and i know most of your basic python stuff for reference

vivid oracle
#

i also am working on a plugin for python to make it easier to use for more advanced projects if you want to see that

lapis bolt
#

yeah sure, ill add you so we can take this to pms

vivid oracle
#

k

tawdry quartz
#

Can someone teach me do some basic python projects im new and i really want to learn

calm sedge
#

best to just watch a few tutorial videos

#

and try it yourself

quasi river
#

I can imagine this channel getting locked away just like the today-i-teach

subtle owl
lost ginkgo
#

Can someone help me in basic python projects

misty dirge
misty dirge
#

Please re-read the description of this channel.

fast falcon
#

Why are people giving this an example? Why not teach people to use the lower() method directly for the string?

txt = "Hello my FRIENDS".lower()

print(txt)
spice island
#

Maybe it helps beginners practice working with variables?

oak breach
#

maybe excusable in this case but w3schools isnt exactly known for being a good learning resource

spice island
#

I don't know why, I find their beginner examples pretty good and clear

tidal scaffold
#

from there a little project you can do is to backup important files to google drive with python.

misty dirge
rapid glen
#

I can make a remote desktop image with the Python vidstream module, but I cannot control it with the mouse. How can I do it? Can you help me?

misty dirge
signal adder
#

additional question in trying to get my sisters into programming: in terms of the actual teaching (not the resources or the approach to get them into programming), how do I teach them? btw theyre both 8 (twins)

misty dirge
signal adder
grizzled storm
jolly night
winter spear
vague crown
vague crown
signal adder
#

I think Im going to buy that circuit playground from adafruit and while im learning how to program it, get my sisters involved. I mean its got flashing lights and shit like that so i think theyll defo take an interest 😂

royal dove
#

Just being around people tinkering, does wonders for the mind

signal adder
#

Even better, I live near a company that distributes raspberry pis, adafruit shit and other related stuff so I can get quick delivery too

rancid epoch
#

how to past the python code

dusty aurora
#

How do I teach Python to someone who’s not technical or hasn’t coded before without giving them the exact answers?

misty dirge
spice island
viral pier
#

hey what's up y'all

earnest token
#

writing a line of The Zen of Python each class lets see how it goes

bright eagle
#

AI assistant on Quora gave some decent examples
https://www.quora.com/How-can-the-Socratic-method-be-used-for-programming

Asking probing questions: When working through a programming problem, the Socratic method involves asking a series of thoughtful questions to guide the programmer's reasoning and help them arrive at a solution. This could include questions like "What is the expected output of this code?" or "Have you considered all possible edge cases?"

spice island
bright eagle
#

np, and yeah, for sure takes practice

sand bone
#

hello, has anyone done TA work for CS courses here? I'd like to ask some questions in dms

royal dove
misty dirge
royal dove
misty dirge
#

Looks like the questions aren't about pedagogy, so I retract what I said.

tawny knot
#

wassup gng

misty dirge
#

@tawny knot please don't post off topic content in this channel.

tawny knot
#

wait wrong Chanel

misty dirge
tawny knot
jolly dirge
#

what does pedagogy mean?

misty dirge
jolly dirge
quick epoch
#

What is the correct approach to master dsa in python?

#

I know the basics but i struggle when it comes to coding dsa

#

And dsa questions in genral

misty dirge
mild swift
#

how do you guys focus to stay more than 1 h coding ? i have ADHD and i am rly strugling. Anyone else over here with ADHD that used some methods ?

misty dirge
hallow osprey
#

Idk if i have ADHD but i just listen go music and take pauses

misty dirge
hallow osprey
#

(Srry your message didn’t appear)

echo plaza
#

Np music nothing straight bordom lock urself in an empty room and code

misty dirge
misty dirge
echo plaza
#

Yeah ik

misty dirge
#

If you disagree with our rules, you can tell us why in #community-meta, but you still have to follow them.

echo plaza
#

Fs

short dome
#

💀

stone arrow
#

Hey, I'm a total beginner at Python. Are there any other coding newbies out there? Let's team up and search for some YouTube videos or programming learning materials like Mimo. We can share tips and learn from each other, so we can avoid making too many mistakes along the way.

worldly dewBOT
#
Resources

The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.

misty dirge
#

Topic: the right shell for first-time programmers on Windows.

I've long been of the opinion that it's easier for first-time programmers to only use a bash shell, and that using PowerShell or CMD creates an extra obstacle for following along with beginner resources or receiving help from people in this server. But Windows doesn't come with a bash shell, and obtaining one creates an extra step.

Am I off-base in thinking this?

native hearth
#

Most resources I see have commands for powershell, not cmd
If you can get people to use windows terminal or even the blue pwsh window it shouldnt be that big of an issue what shell they use

tame dagger
#

To the topic: I've been stewing on this. First-time programmers generally don't know any shell, regardless of their environment, so the question is basically: which one should they learn first?

#

I think most new programmers who are looking for a career in SWEing (or any programming) will quickly run into problems / projects / cases where bash is needed.... so I'd agree with the idea that: if you need to learn one shell, bash is probably the place to start.

misty dirge
#

for context, the inspiration of this topic are all the threads where beginners ask why something they pip installed is not installed in the environment their IDE is using. And that typically requires a few commands to diagnose.

native hearth
#

Most beginners are probably using windows
You could get them to use wsl but thats more effort than just using powershell which has aliases close to real bash commands

signal adder
#

Its probably not recommended but I feel like to understand the cmd better, use linux for a bit. I used linux for the better part of 2 years and even though my linux knowledge is still beginner, I understood more how the cmd worked if that makes sense to you lot

#

I do really need to start learning linux at a deeper level so I can use it as my daily driver in the future

misty dirge
signal adder
#

Tbh with you, i dont fucking know 😂. Ive barely any experience in any sort of terminals aside from knowing how to add and remove packages, seeing my file directories and thats about it

native hearth
#

I dont think its in the best interest of a python beginner to delve into linux or wsl
They want to learn python, not necessarily the shell at this point

signal adder
#

I honestly should learn more but at this point i just want to create shit and not be in tutorial hell

neon pasture
#

Python on windows works just fine, and I do not think wsl makes it meaningfully easier, so I would consider using the py launcher via pwsh (can be installed via winget) the best path for beginners on windows.

neon pasture
true nova
misty dirge
#

Note that cmder is not a typo

true nova
#

neither are built in are require extra setup

#

something which should be avoided for newbies imo

brittle sand
# misty dirge What is pwsh?

Somewhat important note:
powershell and pwsh are often used as aliases of each other, for example, either one will get you the same syntax highlighting on Discord, but they are distinct different executables.
powershell.exe is ye olde “Windows PowerShell” that comes built in to Windows — “the blue one”
While pwsh.exe is the “new and improved” “PowerShell Core” — 7.x

PowerShell 7.4.4
PS C:\Users\BradleyReynolds> (Get-Command powershell).Path
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
PS C:\Users\BradleyReynolds> (Get-Command pwsh).Path
C:\Program Files\WindowsApps\Microsoft.PowerShell_7.4.4.0_x64__8wekyb3d8bbwe\pwsh.exe
PS C:\Users\BradleyReynolds>
tame dagger
#

The problem with this discussion is what types of beginners we're talking about. Once they've gotten through the absolute basics of a programming language, and need to start doing projects, they'll often need some level of shell interactions... and perhaps know something about environment variables... and they'll stumble right into it because it's never introduced properly.

#

Incidentally, many moons ago in college, I recall a freshman class where they introduced us to the Unix shell. Might've been a seminar or something. Was incredibly helpful, even though I had some linux experience before hand. Still remember learning "screen" and reconnecting from a different terminal.

tame dagger
#

Yes. I don't know the exact history, but to me, screen is the OG and tmux is the newer/better.

pallid finch
#

two non posix tools that coincidentally do the same thing

pallid finch
pallid finch
pallid finch
#

dir, cd and python3 are the only commands you're gonna use

rain plume
#

on windows? i'm guessing bash on windows can access py. whether python3 exists is a question i cannot answer

pallid finch
#

i absolutely despise any form of python installation that doesn't allow "python3"

spice island
neon pasture
#

python3 shouldn't be used on windows, since it can change every time you install a python version.

rigid ledge
#

(not sure exactly where to ask this)
If you were getting people completely new to programming into python (mainly for statistical analysis), would you recommend installing from python.org or use something like anaconda?
personally I've not used anaconda much at all so idrk what's good/bad about it

spice island
#

If it's for analysis, maybe notebooks are worth thinking about, I think Kaggle has a decent tutorial and it's all in notebooks
So you don't have to install anything

native hearth
#

I havent used anaconda but it seems like the only way people talk about it is with disdain and fury

static laurel
rigid ledge
weak mortar
#

Ineed someone to fix my code a bit

rigid ledge
weak mortar
#

Ok

static laurel
old bane
#

(saw statistical analysis above, which leans to that)

misty dirge
#

I work for a research company where Anaconda is banned. I would never teach Anaconda to a beginner, no matter what their goal is.
Like I was saying about bash, I think that beginners should stick to what the majority of people are using, and that's regular virtual environments.

spice island
#

Is Anaconda that complex/confusing? I have never used it

misty dirge
old bane
#

No, but it manages at a slightly different level that includes system dependencies as needed, which isn't inherently better or worse, but an active tradeoff

#

Anyhow, if you're staying in the land of things that stay within pypa packaging standards, I'd reccomend having users use either pdm or hatch for easy "single tool" environment/dependency management. ensuring users know how to manage dependencies and environments with at least a tool will prevent the xkcd environment meme for new learners

rigid ledge
#

so definitely not Anaconda

native hearth
#

Bash is shit and it'd be a hard sell to a beginner programmer

neon pasture
rigid ledge
#

aight
I doubt people with 0 programming knowledge would be running linux anyways, the year of the linux desktop is still the next year after all

tame dagger
static laurel
tame dagger
#

I just went through making conda forge recipes for some packages I have in pypi, to fit into their deployment model. It's a colossal pain.

neon pasture
#

I have solved hours of fiddling with nvidia drivers by using conda over whatever the hell nvidia wants you to do.

tame dagger
#

The problem is, that's the examples people give, but for Python packages, I'd rather use pip and pypi. (And venvs/poetry/whatever)

neon pasture
#

yeah, I don't think there is too much value to teaching conda to start with, but I wouldn't say it is actively bad either.

#

By the time you get good at Python, the packaging world will have a new state of the art anyway

misty dirge
tame dagger
#

To the original topic tho, I think computer science education should introduce bash early, and that WSL for Cs students shouldn't be an unreasonable requirement.

neon pasture
#

yeah, a more comprehensive CS education should probably teach the best practices on both linux and windows, tho windows is more optional.

tame dagger
#

I guess I'm wondering when virtual envs should be introduced? Right after the basics, before the first project?

static laurel
#

for singular exercises and small scripts its fine to skip the venv (usually)

#

but when you need to start a project with more than one file, the venv is the way to go imo

#

and in VS Code you can create it and manage it from the UI (of course I still recommend teaching how to properly use the venv in the low level, but vscode can help beginners out a lot)

signal adder
elfin dagger
#

does anyone here used a collaborative text editor when tutoring? im thinking of setting something like this up for some future sessions

elfin dagger
static laurel
#

Same here, it works fine for the most part. Except when it gets painfully laggy for some reason, then it sucks.
For documentation Ive been using HackMd

earnest token
misty dirge
#

@bitter sluice surveying is not allowed on this server.

misty dirge
#

Do you need the code to be split between different modules?