#pedagogy

1 messages Β· Page 14 of 1

green warren
#

Yeah, I dunno. Theres a reason I don't participate in the help channels.

native hearth
#

i didnt used to either but i thought i should practice "tutoring" and this is as close to it i can get

green warren
#

I did tutor someone in person who was either stubborn or just didn't "get it" no matter how much we went over the same thing. For one whole semester I just tried to grin and bear it and remember that he was paying me like $80 for each 1-hour session. But after that I couldn't stand it anymore and decided that I was done tutoring.

native hearth
#

not me trying to find a volunteer tutor gig to fill up my free time lmao

green warren
#

I think you have better things to do in your free time than torture yourself for no pay

#

Unless you're tutoring disadvantaged kids, that's a noble enough pursuit that I would consider it worthwhile volunteer work. But personally I wouldn't be into it.

ripe folio
#

The most important aspect when I help people like that is just be patient. I haven't read the session you gave as an example, but I have encountered what I think you're explaining.

I think that, at some point you'll eventually find yourself in that position too; it happens for everyone. It's not necessarily a personality trait but more-so a situation one gets stuck in (and some people put themselves in this situation more than others).

#

We might actually be talking about the XY-problem.

#

It can be hard to spot, but once you do and categorize it as such it's much easier to help. Most of the times, someone will have trouble expressing what they're trying to do and why (because it isn't clear to them either), or they will try to and realize that their solution doesn't make sense.

#

I think that's when you get in that situation, because you feel like you know the solution and there's just this very tiny bump you can't get over... when in reality you're on top of a hill of playing cards.

So really, the best way to help is probably to help identify the actual problem and then come up with a solution for that. Otherwise, what they may be asking for could be impossible or isn't very satisfactory. It's like going into a maze and instead of going back to the middle and asking for directions you're asking someone to give you directions when you're already lost in a corner somewhere

#

The way out of the maze will be more messy than had you started from the middle.

unique swan
#

it sounds like you're saying, unions are not completely finished and ready for use

fallow terrace
unique swan
#

yeah, I remember that question too, I didn't know they may have been related

sage jasper
unique swan
#

@sage jasperno worries, the message I deleted was a reply to another message, that could have been at least a half hour old (and the person is/was gone anyway)

slender pier
#

The function takes as argument a list of marks scored by students in Programming.

You are required to implement the function such that it computes the number of 
students who have scored B in Programming, and returns that count.

Note that marks 70 - 79 are assigned grade B.
native hearth
pure fog
#

look at the pandas api. some parameters can be dicts or functions or booleans or strings

#

to be clear, I think pandas generally makes valid use of such interfaces, but when beginners do it, it tends to be absolute chaos

#

and i think even in the case of pandas, it's pushing the limits of what you can reasonably do with static types

#

i spent many hours attempting to write correct type stubs for it. it's possible but you have to use a lot of overloads

#

obviously a true statically typed programming language, with strong type inference and multiple dispatch built into the language, makes this a bit easier

green warren
#

Every time I write ```py
if isinstance(...):

inside a function, I die a little inside
pure fog
#

right

#

to be fair, this is what pattern matching was supposed to fix

#

at least in part. my argument against pattern matching is that it doesn't actually help you structure your programs differently, it's just syntactic sugar

#

whereas in ocaml & friends it's somewhat more tightly integrated into the core language, but ironically in those languages it does not support adhoc polymorphism like in python or other "traditional" type systems

#

it also arguably makes more sense in languages that explicitly promote and support syntactic and data structure uniformity, such as lisp derivatives

#

but back to the polymorphism topic, in principle of well-designed application provides a highly polymorphic (but well documented and statically typed) interface, but internally dispatches to individual functions with "stricter" types

#

The point is that, with static types, you can't "accidentally" build an interface like this. It must be a deliberate design decision

#

It also has the usual benefits of eliminating categories of errors like "oops I returned the wrong thing"

neon pasture
#

as I understand it, the annoyance of statically typing APIs like pandas is why apache spark favours scala, it is a powerful enough type system to deal with it without too much annoyance.

pure fog
#

I think even the experience of learning to consider such situations as "errors in software design" as opposed to "oh that's just how I wrote it" is valuable, which is why I think some hands-on experience with static typed is good for programming education, even if you intend to spend most of your time working with dynamically typed languages

pure fog
neon pasture
#

that is also an option, yes

pure fog
#

I would also argue, perhaps controversially, that learning the wonders and power of a really good type system helps you learn to not try so hard to make Python more sophisticated than it is, leading to stupider, safer, cleaner, better python code

#

Python is never going to be haskell or clojure, don't bother!

#

(I know there is a persistent arrays library but I don't know how well it performs, and it's certainly not integrated deeply into the language like in clojure)

neon pasture
#

at the same time, you do want to avoid this kind of thing (go), which is the alternative to passing a number of flags to a function.

pure fog
#

valid

#

but if all of those things return different types, then maybe it's necessary. in which case i would suggest that maybe the type structure has been overly specialized

#

(what language is this)

neon pasture
#

golang

green warren
#

I did once have a colleague suggest writing a function to return different types depending on its input parameters. I was like, "um, no"

#

(and it was not an abstract factory)

silent goblet
# fiery spruce why is this bad?

You'll need to spend extra effort on understanding what kind of value you're getting when the function is called. Especially if the "flag" is not statically provided

#

Also, it won't play nicely with static analyzers/type checkers

#

Example from Python: re.findall returns either a list of strings or a list of tuples of strings, depending on the regex. This function is really awkward to work with, and its return type is specified as list[Any].

oak breach
#

list[Sequence[str]] /s

silent goblet
#

but... actually maybe not?

oak breach
#

vaguely recall typecheckers special casing for str to not match Sequence[str]

misty dirge
#

A str is a sequence and an iterable of strs

#

Technically

oak breach
#

Yeah hence the special casing :p

silent goblet
#

I don't think that's the case

#

str is perfectly valid Sequence[str]. I don't really like that we don't have a special character/codepoint type, but oh well

oak breach
#

hmm i misremembered

chilly aspen
#

Realizing that 30 years later doesn't change much really. Embrace the cringe you always embraced, but now with more love.

misty dirge
#

this person left the server. ||also your face is cringe.||

#

Anyway, how do we feel about having beginners use IDEs?

Against: It's important for beginners to understand how to edit and run code from a terminal, because they'll need this ability in the future anyway, and it's more difficult to teach retroactively than to present it as the default assumption. it's also difficult to help beginners with environment-related issues when their environment is being managed by a GUI that they don't actually know how to use.

For: IDEs help beginners see and learn from their mistakes, and that is good.

fallow terrace
#

It's important for beginners to understand how to edit...code from a terminal
Could you explain what you mean by that?

misty dirge
vale current
#

I wouldnt recommend something like pycharm, that can be overwhelming at first, even more so for someone new to computers in general. Thonny is pretty beginner friendly on the other hand

weak mortar
#

I think an IDE is good for beginners, as it helps highlight important concepts such as indentation and other syntax problems, but most IDEs do a little too much as well. Linting and venvs create a lot of problems for beginners who don't even know where to start with all that

#

Half of the help channels are basically venv questions
(The other half d.py 🀑 )

fallow terrace
#

But I certainly agree on the running portion. CLIs are a huge part of how you interact with Python (and general programming) tools, and learning to use them is most certainly necessary. Personally, I use an IDE and then run the code in a separate terminal.

#

Overall, IDEs are specialist tools, in the sense that they do a whole bunch of stuff that most people don't understand if they haven't had prior exposure to the concepts. A lot of the features in IDEs are absolutely wonderful, I think they just need to be introduced incrementally.

noble aurora
fallow terrace
#

yeah, I figured that's what Stelercus meant, but I was wondering if there was something good about terminal editors that he was thinking about

misty dirge
fallow terrace
#

although terminal editors are nice in the sense that a lot of functionality is opt-in. they start out pretty minimal at a glance, and there are different ways to activate different features (whether that be keybinds or config files or whatever)

misty dirge
#

/s btw

vale current
#

Bad advice?? Banned

misty dirge
fallow terrace
noble aurora
#

idk about that one. maybe if you only stayed in insert mode. dealing with a relatively frustrating editor + learning something hard might be annoying. although it doesn't take that long to learn the basics of vim, maybe like 20 mins

fallow terrace
vale current
#

Well, with vim or emacs, you do have to end up learning more of a framework for working with and configuring the editor

#

Which imo isn't really ideal, even with whatever incremental feature benefits they may have

upper flint
#

I think a barebones editor + standalone terminal is a good way. Let the editor catch some basic syntax errors with linting, and run the code from the terminal. PyCharm does too much for people starting out and ends up being more confusing

vale current
#

what about vscode? I wouldnt be against recommending it

upper flint
#

I do suggest it, as its an editor that is extended to an IDE in my opinion

#

I'd be more against recommending Spyder and PyCharm for beginners

weak mortar
#

Why VSC and not one of the other IDEs?

vale current
#

Pycharm I'd be against recommending

weak mortar
#

Personally, I think it has the same problems as the other ones, but now you've gotta configure it by installing a bunch of plugins yourself πŸ˜…

vale current
#

It's a single plugin, and your good to go

#

It doesn't have anything like auto venv creation that pycharm does

weak mortar
#

That's not what 90% of help questions say

vale current
#

And the interface is fairly intuitive

noble aurora
#

my only beef with pycharm for beginners is the default venv, i wish that was opt-in

weak mortar
#

A lot of beginners have venv questions for VSC

noble aurora
vale current
#

I have seen a fair bit of problems with multiple python installs and pip

weak mortar
#

It was an exaggeration, but yeah I do see a lot of venv questions

fallow terrace
weak mortar
#

Hm that's interesting

#

How do people keep ending in that situation if VSC isn't setting it up for them

#

It's not exactly easy to accidentally type the command for creating one πŸ˜…

vale current
#

Well, VSCode doesn't auto create venvs, so I'm not sure? Maybe they're gravitating from another editor like pycharm which does, and they can't figure out the venv

quiet rapids
#

you are cringe

misty dirge
drifting blaze
#

I am a beginner in programming, but I like to learn python.

untold island
untold island
#

the IDE interpreter setting / IDE using venv but user isn't, pip / python interpreter using different versions, Scripts folder missing from path, venv not activated or not used when installing packages are the common problems I usually see

carmine girder
twin geode
#

Anyone recommendations on what kinds of python exercises I could be doing?

uneven tinsel
#

@twin geode I think a good idea is to work on something you personally find exciting or interesting, maybe start a little personal python project

echo dragon
#

i dont know if this is the right channel or if theres a pinned post in some channel but ive heard people saying pycharm is bad for begginers. im a beginner and i've been using pycharm, so far i dont think it has any issues, but i have no experience of other IDEs which may be more efficient for me to use

green warren
#

I don't think PyCharm is necessarily bad. There was a discussion in here a few days ago about whether IDEs make a good beginner experience or not. I think the main difficulty is whether you understand how to set up virtual environments and activate them appropriately. It seems this is the greatest source of confusion for beginners, that is exacerbated by trying to deal simultaneously with the complexity of an IDE.

misty dirge
echo dragon
green warren
#

yes, but there's a learning curve, that's all. It's tricky to learn programming and learn your IDE at the same time. But I don't think this is necessarily bad, I love how the IDE takes care of all the little details

echo dragon
#

makes sense, I'm willing to put time in and learn both, but should i switch from Pycharm to thonny as a different user here suggested?

green warren
#

I have no idea. At work I use PyCharm, and I think it's brilliant. At home I've been using VS Code. Both VS Code and PyCharm CE are free, but PyCharm CE doesn't do Jupyter notebooks or Cython, which is why I'm using VS Code.

pure heron
# echo dragon makes sense, I'm willing to put time in and learn both, but should i switch from...

Thonny is an IDE that's specifically geared towards beginners. It does some things that experienced developers would find annoying, but that beginners find helpful (like the way that it syntax highlights unclosed parentheses, or the way that it shows call frames in its debugger). It's also designed to gradually expose more complexity to you, to avoid overwhelming beginners with lots of options they don't need. So, I think Thonny is an excellent IDE for people new to programming. That said, if you're already using PyCharm and are growing comfortable with it, you don't need to switch. Thonny probably would have been a better starting point, but it's not the only option.

queen crystal
#

Any tips for how to get motivated again when you stopped studying.

#

Any time I try to get back into it, like staring at a brik wall

pastel relic
#

what is recursion?

stone juniper
celest rose
#

why do , self proclaimed , graduated electrical / computer engineers ask questions that pressume they know how to do research , yet they ask it ? - would you hire a engineer who could not do basic research ?

silent goblet
#

Are you asking why programmers sometimes ask questions?

celest rose
#

when i was in elementary school , i had a class , library arts , so .... they offer a name ... Thomas Edison , go find a book on him , tell how you found it , then write a basic outline about Thomas ... the lesson is . how to find info in a big library , then expalain about topic

#

i can give you a fish .... OR teach you how to catch fish ......

lunar wave
#

I'm not sure I understand your point. Whether looking up the topic in reference materials, source books, example videos, or speaking with peers it is all research.

neon pasture
#

the fastest way to research a thing to ask someone who knows the thing about it once you get to anything but the bare basics. And well, your goal isn't to rediscover existing knowledge, your goal to make working things.

lunar wave
#

"back in my day" - yes, I will open with this - we used libraries as the primary source of research. Internet wasn't too valuable back then. One the tricks you learned with library research was two-fold. First, you asked the librarian about the topic you were researching. Next, you asked others you met in the same area about what they were researching. Just because we asked others, in an open forum, does not mean we weren't doing our own research.

One of the best soft-skills out there for learning, in my opinion, is the ability to ask questions!

echo dragon
celest rose
#

@tranquil zinc wow , very good .... you kinda get it

misty dirge
#

@sick flint your question is off-topic for this channel. kindly remove it and re-post it in #software-architecture

sick flint
#

@misty dirge I looked at the definition of "pedagogy" -- "the method and practice of teaching, especially as an academic subject or theoretical concept."

I'll post there though.

stone juniper
sick flint
#

Fair enough.

vapid needle
#

@sick flint it's like the study of teaching... or the methodology of teaching.

umbral torrent
#

what's a good procedural language to learn to introduce someone who already knows a language like python to procedural languages

I started with Bash (I figured there was a practical aspect to knowing my shell language better), but was that a good choice, and if not, what is a good choice? (if you answer please explain your reasoning and ping me in the response)
thanks

umbral torrent
#

sorry I'm dumb
i meant the opposite of object oriented

#

vocabulary is hard

misty dirge
#

The are languages that are more object oriented than python

#

But if you want a big paradigm shift, try a functional language

silent walrus
#

Haskell has some cool features and ideas

umbral torrent
umbral torrent
umbral torrent
#

thank you for your help everyone

#

I appreciate

pure heron
umbral torrent
noble aurora
#

if C is going to be hard, rust will be way worse

vale current
#

Haskell would probably need a fair bit of effort to teach too

noble aurora
#

a lisp would probably be a good choice

vale current
#

oh or maybe elixir

wild pasture
#

im sorry but wtf is a pedagogy

hollow flare
#
stone juniper
hollow flare
#

I know, sorry.

serene reef
#

Guys I need Help

#

I need To know how to make image matching in python like in gta 4 or police verification systems

lusty geyser
#

It sounds simple, but when you're so used to objects floating around in the abstract like they do in Python, its a big mental leap

misty dirge
#

@honest temple your question was off topic. Try one of the off topic channels

kind cape
#

yo guys, anyone knows a beginner friendly open source project?

misty dirge
sacred violet
#

I'm thinking of offering a 1 week evening crash course in python. teach the basics. like 2h every evening in a group of 6 or something like that. Do you think, assuming I do a good job, that such a format is good? Or should I rather try and do personal lessons?

I know people want it because I keep seeing python tutoring flyers which are empty.

static panther
#

Hey guys what do you think about the current format of python tutorials? My interest here is mainly on beginner level. Personally the first youtube search results are extremely long or somewhat old videos that could use some revamp.

vale current
#

!resources we have a comprehensive list of quality tutorials on our resources page

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.

wind sierra
#

Good way of learning DSA?

#

Data structures and algorthims

glossy apex
#

(not sure if this is the right channel, please understand if I am wrong)

Has anyone else felt that FreeCodeCamp's scientific computing Python course is seriously lacking when it comes to their "Networking" chapter?

#

I haven't had problems understanding anything up until that point, where it all broke down? And the concept is soon forgotten after 6 videos. I was thinking, - if I ever need to use the "socket" library I'll just learn it from somewhere else.

Doesn't seem like that much of a must know for a beginner?

misty dirge
wind sierra
misty dirge
untold island
#

"Data Structures and Algorithms Using Python"

#

a pdf file

misty dirge
frosty sleet
#

Hello! I really want to learn how to write code and master the python language, but I can't find free training and material. Please if anyone has links to learning python send me thanks in advance

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.

untold island
# misty dirge I would use this: https://github.com/TheAlgorithms/Python and I would most certa...
sick iris
#

hi

upper flint
#

!mute 983934401081647104 6h You were told not to spam, and decided to continue spamming.

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied mute to @sick iris until <t:1655241578:f> (5 hours and 59 minutes).

novel blaze
#

hi, i want to create document where i evaluate my tech knowledge with topics like, SQL, Security, Clean Code, ORM, Patterns, GIT etc and fill all my skill gaps
Did u advice any template or similar document that i can base
When i create and fill that document, i can ask my co-workers about rate my knowledge
also i can prepare projects or learning path based on this document

but no idea how to start ;)

#

something like this but for programming stack

spring coral
#

Is Python Programming 2022 MOOC by University of Helsinki based on sound pedagogy?

neon pasture
#

Can't speak about that one specifically, but I have done some other UoH courses and they were excellent.

spring coral
ripe folio
pine stratus
#

(It's probably best to make a small language for teaching if you can't find one, a really simple one like BASIC or Logo)

#

What really makes it nice to learn in those old BASIC languages was that the environment was really simple. Drawing stuff on the screen and such was really straight forward. Doing the same in something like C is at least 100 lines now on a modern OS.

#

(A failure of OS design, but you can create a made up simple environment to go with the language)

#

Stuff like Goto actually makes more sense for beginners, and when they try to make more complicated things they will naturally end up wanting Gosub (structured programming). Procedures will make more sense for them (why they are wanted over Goto), and how to structure their code.

echo dragon
#

Idk if this is the right channel, and if it isn't please tell me which one it is but ive been learning python for about 14 days now casually, maybe half or one hour a day, I'm willing to put time into it but i feel like I'm making nothing more then just basic programs which takes a input and does a tiny thing to it, like calculators, randomizers, ect tldr it feels like I'm making zero progress and i don't know what to do.

sly inlet
# echo dragon Idk if this is the right channel, and if it isn't please tell me which one it is...

If you feel like u need to build more logical progress in the domain, you should try and do some hackerrank or similar coding problems. This will help to boost your confidence regarding programming. After this try to come up with some project idea which you think is worth solving and try to do it in python. If you need help regarding any of the above mentioned paths, you know where to come πŸ™‚

sly dome
#

Also I'd get exploring some of the popular libraries on PyPI and seeing if you can think of any projects you can do with them. Projects are a great way to learn since they finally give you a purpose for the language you have learned and you can pick up a ton of specific knowledge you didn't have before

echo dragon
#

alright, ill take a look at both of the sites and see how far i go
after im done with my current project, thanks for the help ill send what i come up with in this server :>

green warren
pine stratus
# green warren I also got my start with BASIC and Logo, but that was ages ago. Surely there's ...

Yeah that is why I think one should make their own language, a more modern version that just removes all the annoying and strange things from those languages past. Logo had a lot of effort and thought put into it for teaching programming and mathematics, and I have yet to see another language with that level of effort and understanding. If a new language is to be made, one should probably study Seymour Papert's work.

#

One important thing is the ability to learn more on their own from the language / environment that comes with it. Without even needing outside input.

#

(Many applications could benefit from this approach (even small things like good tool tips help a lot) (a built in implicit tutorial, not an explicit one that you have to follow step by step, non-verbal puzzle videogames do this))

green warren
#

Windows 3.1 came with some QBASIC games, where the graphics were drawn with ASCII art. I learned a lot by deconstructing those games and changing bits of them.

pine stratus
#

But we can do better. More hindsight. However, it coming with the OS by default is a really big deal. Defaults control a lot of what people do with their computers and it's why companies pay a lot of money to be the default option on phones and such.

#

(Despite Batch being really annoying to program with, I still see a lot people using it just because it comes with Windows by default)

#

(So maybe Windows should not be the default OS in schools (we can craft a specific Linux distro for example, probably the most simple solution rather than a whole new OS for now))

dry hazel
#

Does anyone have any particular tips on tackling logical challenges when programming? I know python is particularly easy to learn on due to it's syntax but sometimes mathematical challenges can be a bit of a pain since I have ADHD and I'd like to know if anyone's been able to work with it or a way to approach teaching people with ADHD

uneven tinsel
#

I like to work things out on paper first if they are complicated

#

sometimes just like drawing pictures and diagrams and stuff too

dry hazel
misty dirge
misty dirge
simple urchin
#

eew discord mod

long kiln
#

What’s the best way to learn data science and other programming languages or types

urban chasm
weak mortar
cerulean bough
#

best way to learn anything is to practice it

#

How to not be lazy and procrastinating? Do what's important to you, not to other people.

#

But this is a channel where we discuss how to teach programming, not how to learn.

#

I don't see a proper channel for this. Maybe #python-discussion, or maybe would be better to open a sibling channel named #programming-learning.

vale current
#

well, if someone has a python question, we have pygen, a slew of topical channels, and help channels

cerulean bough
#

It's not a python question, it's about learning in general.

vale current
#

general advice on how to learn programming would be fine in pygen as well

cerulean bough
#

there we go

vale current
#

there are "whats a good way to learn python", and "I'm a beginner anyone have advice" kinds of questions that pop up

split cliff
#

Sorry if it isn't the right channel for this question - Do you think learning how to program in a specific "easy" language, such as python, is better for learning the process involved in programming in general? Since many topics are common in more than 1 language, I think that learning that topic in python (for example) will make things easier when learning the same thing in other ones.

#

I'm in doubt about it because I don't know whether it's better to focus on only one specific language and learn these general topics just from it or to go into all languages

vale current
#

Well, sure, having experience in a previous language will make learning other ones easier

#

A lot of concepts will carry over

#

so its fine to focus on python

torpid gazelle
#

Hi. Not sure if this is the right channel. I am currently working through 'automate the boring stuff' python beginner book (only on chapter 4). Is there anything you think I should be doing alongside this book or should I just go end to end then figure out the next step?

misty dirge
torpid gazelle
noble aurora
split cliff
noble aurora
#

learning a lot at the same time sounds like an easy way to confuse yourself and make no progress at all

split cliff
#

for example: imagine you have been focusing in python for a long time, then you already know how to deal with Regular Expressions. When you go into any other language, you will already know how it works. The same for any other common-topics between languages.

#

Because I see a lot of people who learn the basics from one language and already changes to other one, instead of getting really good in a specific one

vale current
#

the basics can also translate over

noble aurora
#

what

#

<@&831776746206265384>

clear iron
#

@dry yacht please stop spamming that

#

!mute 838507563640815687 Investigating

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied mute to @dry yacht until <t:1655944517:f> (59 minutes and 59 seconds).

final pewter
silent crow
#

lik tjay got shot

subtle owl
# silent crow lik tjay got shot

Hi and welcome!
This channel is about the pedagogy and ways to teach. It's also an english speaking server.
Can you restate your sentence or question in english?

silent crow
#

hows that not english

subtle owl
blazing haven
#

what do you guys thing about w3schools?

native hearth
#

Bad

split cliff
dry hazel
#

For example a friend of mine couldn't learn python even if he tried but he started learning Java and understood everything easily

#

I should say, instead of understood, nailed the syntax*

misty dirge
dry hazel
#

That's why I'm considering that it's like learning a language

#

I'm not sure how it works, it just does lol

#

Maybe the syntax or the way in which they understand the explanation?

misty dirge
dry hazel
#

I'd love to understand if you'd like to develop

misty dirge
#

so, there are similarities between natural and programming languages, and they're interesting. but you can't really use them to draw conclusions about the other.

#

for one thing, with very exceptional exceptions, everyone learns at least one language starting when they are born

#

and ones ease of picking up additional languages in adulthood depends in large part on the similarity between their native language(s) and the target language

#

but no one has a native programming language.

dry hazel
#

So if I understand correctly, what you say is that despite some languages having syntactic similarities, it's not really defining for the languages and there's no way to relate it's syntax to anything else to understand it easily?

#

My brain's a bit damaged so bear with me lol

misty dirge
#

I never said anything about syntax. syntax is just one dimension of language.

dry hazel
#

I assume cause of the similarities part, mb

#

I meant with my initial idea that given some languages' syntax, perhaps it's easier for some to understand programming logic than with other languages

#

It happened to me for example when learning python, which I still am

misty dirge
dry hazel
#

For cycles and lists to me were super confusing due to their syntax but in Ruby they were super easy to grasp

misty dirge
#

another big hurtle in natural language learning is phonology, which is the sounds that exist in that language. a given language might have sounds that your language does not and which may be difficult for you to produce, or even distinguish between.

dry hazel
#

Right, that much I learnt when learning Japanese because syllables sound very similar to Spanish ones

#

But I guess what I really meant was in terms of logic in the syntax

#

Although I might be mistaken in that as well

#

What'd you study to become a computational linguist?

misty dirge
dry hazel
#

Is it like a master? Or just a whole career within CS?

misty dirge
#

I don't have a masters, no.

dry hazel
#

Here in Argentina we just have Engineer and CS and then just courses and stuff

misty dirge
#

and the different constructs that you can make

dry hazel
#

Right

misty dirge
#

and then what it means is semantics.

dry hazel
#

But that does change the difficulty among individuals no?

#

For example in my case with for and arrays

#

I couldn't ever get right the syntax when using for i in range(list) to loop over a list and whatever I wanted to do in a program

#

But in Ruby for items in names just made sense to me

#

And they're essentially the same afaik

misty dirge
#

not sure I follow. you're not supposed to do for i in range(len(list)) in Python.

dry hazel
misty dirge
dry hazel
#

I'm not anymore, my brain was struggling

misty dirge
#

at best, you had an instructor who didn't really know Python. at worst, they were also just a shit teacher.

dry hazel
#

I decided to learn on my own now, but anyways for a while I had this issue with the for cycle and looping over lists

pine stratus
# misty dirge I can't imagine how someone without a prior programming background could find Ja...

I agree with this, I think starting with a programming language that revolves around some main "big idea" (that is enforced) that is meant to solve some problem previously encountered by others when programming is a mistake because that context is not there for a beginner. It's like starting with Rust and not having the context of why they went through all that ownership trouble, while you can understand the idea, you won't know its value (and if it's actually a good idea / implementation of it) unless you have encountered the problems the language creators had when using other languages.

dry hazel
#

Now for example my friend who's more advanced than me couldn't really get down the concept of classes in python but nailed it in java and kept on going with it

misty dirge
dry hazel
#

That much I don't know haha

misty dirge
#

Python's __init__ methods can be difficult to wrap ones mind around, but beyond that, Python classes aren't at a basic level more difficult than Java classes

dry hazel
#

Anyways my idea was that in some way languages turn out more appealing and easier to learn than others

#

Maybe I just can't quite put my idea into words

misty dirge
#

also, if they made a Java class that just has a bunch of getters and setters, and no methods that do anything interesting, seeing all that boilerplate code on their screen may have tricked them into thinking they had accomplished something.

#

(as you can see, I don't like Java.)

dry hazel
misty dirge
# winter spear How so?

I remember finding them confusing, but I don't remember in what way. and a lot of init methods just look like this

def __init__(self, a, b):
    self.a = a
    self.b = b

and this is very boilerplate-y, and one might think that Python should just know what to do based on the init method's signature.

dry hazel
#

Magic functions confuse me tbh, but I need to relearn them

misty dirge
dry hazel
#

I see

winter spear
noble aurora
#

it's hard to teach dataclasses to a beginner without handwaving

green timber
dry hazel
#

Either teachers here in Argentina don't know python or this is valid but very crappy

#

Either way that always confused the crap out of me

green timber
#

my teachers used to say they wanted to teach us more general solutions to stuff, but yeah, it's kinda sad that they ignored some of the nicer stuff python had to give

dry hazel
#

Honestly all I ever hated was crappy mathematical exercises

#

like "Do a program that prints the fibonacci sequence, but it has to be completely manual and you can't use functions or methods"

green timber
#

can't relate because I tend to like maths

dry hazel
#

I don't hate them I just hate how they make one do them

#

What's the point of making a fibonacci sequence in a program and not using all tools available to you?

green timber
#

I guess they meant you couldn't use functions that came from a library? like, you could make your own function if you wanted?

dry hazel
#

Torture? lmao

#

No, it was like an intro class so even your own functions were not allowed

green timber
#

that's dumb

dry hazel
#

Only loops, conditions and that's it

green timber
#

tho I had a classmate that tried to use lists in every single exercise we did in my intro class even if the teacher didn't taught the class how to use them yet XD

misty dirge
green timber
#

hahah well there's that and there's also the fact that lista just means list in spanish XD

#

array in spanish would be arreglo not arraya :P

misty dirge
#

I thought it was "list a", to be followed by list b, etc.

green timber
green timber
dry hazel
#

It is now called Arraya, because yes

misty dirge
#

@weak mortar I DMed you a copy of your question and a link to the C++ discord.

jolly night
misty dirge
#

@muted stream your question was off topic

novel jewel
#

sorry I don't do that much python, mainly do Java and C# so I can't remember

noble aurora
#

generally yes

dry hazel
#

I guess because it's a bad, crappy, or confusing practice πŸ˜›

fleet pulsar
#

it's an obvious leftover from more "traditional" (I guess?) languages, usually a dead giveaway that the author didn't bother learning Python's idioms much and just wrote Java/C++/<language> with Python's syntax. If you don't need the index, you'd just do for item in list, and if you do need it, you'd use enumerate: for i, item in enumerate(list)

#

That is, there are cases where rangelen is perfectly acceptable, but simple iteration is not one of those

misty dirge
#

@novel jewel see the message above this one

misty dirge
fleet pulsar
#

Makes sense

pulsar thicket
#

Can someone explain me what if name == 'main' means

#

?

#

simple way

fallow terrace
heady holly
#

What is pedagogy

noble aurora
#

the method and practice of teaching, especially as an academic subject or theoretical concept

heady holly
#

Wait, so, by theory do you mean like general concepts?

noble aurora
#

this channel isn't for teaching, it's for teaching how to teach

heady holly
#

Pretty weird

ebon agate
halcyon pumice
#

Hello! My name is Karl and I'm teaching a class next semester. Could anyone give me feedback for my class (it's my first time teaching a class!!) https://lazy.rice.edu/

green timber
ebon agate
green timber
orchid thistle
#

but that is looping by element

#

it's constructing a range object and looping over the elements of that

#

although now i can see why i see learners who think that for _ in range(_) is one thing and not two

ebon agate
orchid thistle
#

when in reality for can occur without range and range can occur without for

orchid thistle
ebon agate
sly quail
#

Yo, I'm 16 I have gone over python before and know a few basics in school and now that summer has begun for me I want to learn python completely in depth πŸ˜„

orchid thistle
ebon agate
sly quail
stiff oracle
#

is it better to use list comprehensions? I find it to be more readable than using for loops

noble aurora
#

depends

ripe folio
ripe folio
noble aurora
vale current
#

you want to use a list comprehension when you're actually constructing a list, and you want to avoid having too much nesting

ripe folio
# stiff oracle is it better to use list comprehensions? I find it to be more readable than usin...

I think it's generally better if you find they solve the problem the easiest. Not that they are the first solution you come up with, but that they are the easiest way to solve the problem for others to understand.

I also really like list comprehensions and I use them wherever I can. I've found that for the most part they make sense wherever they fit because they are limited to one expression and one condition.

That said, sometimes I still opt for a normal list iteration depending on who I am showing the code. Newer coders may not have run into them yet, and it is unnecessary to introduce two new topics at once (the solution to the problem, and list comprehensions).

vale current
#
[[i if i > 3 else 10 for i in range(5)] for i in range(8) if i < 3]
``` for example would be better off as just a loop
#

which I guess isn't the greatest example, but I have written listcomps which end up with a similar level of nesting and conditions and starts to effect readability

misty dirge
gritty valve
#

i like ur cut g

weak mortar
#

it also has some sort of metric for function complexity that shouts at you when its time to decouple the logic

leaden scroll
#

What would be the best way of introducing someone to programming? (I.e., the very first thing they ever do in programming)

I’m thinking starting with:

print("Hello, World!")

And then getting them to play with that, say switch it to say hello to them and their friends, and then printing other text to the screen.

What do other people think of this?

fallow terrace
#

I think that's a great way, purely because it starts of with doing something. Being able to see the results of the code you write is very encouraging, and provides a basis for further expansion.

misty dirge
#

otherwise they'll just reject you until you do it.

fossil trench
#

hello, I'm brand new to python and I'm looking for someone who could help me do a whole thing because I'm lost

obsidian loom
errant ledge
pure heron
errant ledge
#

After some reading, imo the python docs are quite helpful in a way of extending the knowledge about specific topics. (A learning path most likely is applied at the course/book it self)

#

@pure heron . Srry for ping forgot to tap reply

pure heron
#

I agree - I think the Python tutorial is pretty great at the intermediate level

#

if someone already knows Java or C or something, I usually point them at the python.org tutorial

misty dirge
#

@weak mortar @twin jackal @slender raft please refer to the channel description before making any additional comments in this channel

slender raft
#

mb

#

just wannted to help

stoic moat
#

how to import ProfileReport from pandas_profiling in anaconda

stone juniper
novel raptor
#

I'm currently using the automate the boring stuff with python book to teach myself python. What are your guys' thoughts on the book? I'm new to python and programming in general. What are other sources you guys would recommend me to learn python?

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
#

that's one of the books we recommend, though I have not read it.

#

my life is incredibly exciting and full of explosions and shit, so I don't have any boring stuff to automate.

graceful timber
#

So playing some print function here

#

Does print function allows printing int or float as its arguments?

near jay
#

Hello, I'm a little stuck on the Django framework. I have a mockup (a form in my templates) that a user dynamically creates by clicking a (+). The problem is that I don't know how to recover its data.

green timber
near jay
#

yeah , sorry

lusty geyser
#

How do I avoid getting myself into the situation of a tutoring student inadvertently trying to get me to do their assignments for them?

#

I met someone on here who I helped with a problem, and when I mentioned I was available for tutoring he was all for it

#

He talked the talk for the first lesson or two, but pretty soon it was clear he had no real interest in actually learning the material, and just wanted the work done for him 😐

grave swan
lusty geyser
#

I don't think he actually realized that was what he wanted, and I know he was doing his best to get through it all. But it was awkward, and something I'd like to avoid going forward

misty dirge
vale current
pure heron
#

When I've tutored people, I've refused to write any code. Or if I did write something, I would do it in a REPL in front of them, rather than ever saving it into a file.

visual gale
#

Oi,Pessoal !

#

Boa noite!

pure heron
#

I've answered questions for them, or I've given them assignments and asked them to write some code to solve those problems.

pure heron
worldly dewBOT
#

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

pure heron
#

The topic of this channel is how to teach programming to people.

visual gale
#

Are you American ?

pure heron
#

yes, I am

#

but that's not on topic for this channel. This channel is about how to teach people to code.

#

if you just want to chat, you can use an off-topic channel:

#

!off-topic

worldly dewBOT
visual gale
#

This server is from the United States?

brittle sand
visual gale
brittle sand
#

As far as I know

visual gale
#

AFAIK is an acronym for "as far as I know"?

vale current
#

Yep

ripe folio
pastel dirge
#

Any tips on reading docs for python API and stuffs? I feel it harder to understand some of the stuffs that I read in the docs

native hearth
#

Some of these docs are just hard to read, the tip is to read more and more so you have more examples of documentation
Imagine trying to get a beginner to google something python related and actually get to the docs and not w3schools, g4g or even stack overflow

limpid helm
#

Gather your courage and plow through it

#

Its something like reading Shakespeare πŸ™‚

weak mortar
#

There is a type of person who has more appropriate cognitive profile to programming?

misty dirge
#

I'm not familiar with research into that.

orchid thistle
misty dirge
#

@dense cipher see above comment ^

cunning vine
#

Dose anyone know how to fix pc shutting down every 5 min plz dm

rich mural
queen geyser
#

When teaching students web development; should I teach them variables first (in JS or in Python) or the core web essentials?

PS: The lessons are for beginners

native hearth
#

You mean how to declare variables? Like the very beginner stuff?

native hearth
#

Yes, how are you supposed to explain DOM access if people dont even know what an object is

rich mural
#

Yeah, I don't see how not starting with programming basics makes any sense.

#

Everything else builds on that.

queen geyser
orchid thistle
#

yeah in order to write any javascript you have to know how the basics work

native hearth
#

No, they need general JS tutorial, not just how to use const or let

rich mural
queen geyser
rich mural
#

You could teach them HTML and CSS, but what's the point?

native hearth
#

Quick overviews to get them out of the way but also keep them engaged with the ability to quickly put together something and see it in the browser

rich mural
#

I suppose.

queen geyser
#
native hearth
#

For JS i would do the very basics up to objects
I would also skip classes, i dont think theyre that necessary

rich mural
#

They're not necessary for basic web dev, but you would want to introduce them once you start working with web frameworks.

queen geyser
#

Ah I see....

My classmate wants to learn React so....

native hearth
#

my girlfriend took a beginner python course at one of these charities and they skipped so much lol
the course project was to use some web api, but they hadnt covered 3rd party packages or even classes in Python
first day of the project period and she was asking me what type this <Response [200]> thing is lmao

rich mural
#

I think it's a good idea to get familiar with classes before you start with React.

native hearth
rich mural
queen geyser
rich mural
#

To go from zero to doing proper web dev with a complete understanding of the concepts I think you'd need like three consecutive uni courses or more.

native hearth
rich mural
ripe folio
queen geyser
#

It is not so essential

#

idk why I said the "I will also teach OOP"

#

So, these would be the curriculum of my lessons, in order

HTML,
CSS,
Core essentials of Programming using JS,
DOM,
Frameworks

ripe folio
queen geyser
#

I'm in rush when I made that lol

rich mural
#

Functional components in React are more limited than class components

#

So you will probably end up having to use the latter eventually

queen geyser
rich mural
# queen geyser Hmmmm... intresting... I have never heard it that functional components are more...
queen geyser
#

I haven't really touch Class components in React so...

hidden jasper
#

What youtube channels do you suggest me for learning python?

rich mural
rich mural
hidden jasper
rich mural
hidden jasper
rich mural
weak mortar
#

i need 50 messqges

stone juniper
dry prism
#

hello

rich mural
#

This channel is for discussions of teaching practices. If you just need help with AI or data science, please ask in #data-science-and-ml.

rancid cove
#

yep, my bad, thanks

cerulean bough
#

maybe this channel should be named just #pedagogy

rich mural
orchid thistle
#

i think people who want to talk about how to teach things other than programming will be more rare than people who want help with programming and see "programming" in the name of the channel

cerulean bough
#

absolutely, but I think a lot less people will believe is for general pedagogy

rich mural
#

Feel free to open a suggestion on the meta repo

desert patio
#

@amber hill literals are used every time in assembly

amber hill
desert patio
amber hill
#

hmm

desert patio
#

how do you expect ebx to have like number 5 or number 17

desert patio
amber hill
#

bruh i meant literal memory addresses

desert patio
amber hill
#
mov 5, 0xRANDO_ADDRESS
#

this isn't used

desert patio
#

yeah you're not supposed to use literal memory addresses because you don't know where something will be stored unless you're a compiler

desert patio
#

ok that makes more sense

proven iron
#

you guys actually learned asm. ok

pure heron
# amber hill why this channel tho

this channel is for discussion about how to teach programming, so a conversation like @waxen grotto wants to have about whether it's better to start closer to the metal than Python when teaching people to program belongs in this channel.

amber hill
pure heron
#

I learned MIPS assembly in college, though I can barely read x86 assembly at all.

desert patio
#

i know how to use some intrinsics

misty dirge
#

Topic: Group projects/assignments. Proponents argue that (a) being able to work effectively in a group is critical in virtually any career, and (b) group projects help develop pertinent skills. I agree with point a, but I contend that group projects don't effectively emulate what group work looks like "in the real world", and that we can see this because they often break down into the most motivated-competent (or most domineering) person doing all the work.

pure heron
#

arguably that's because the stakes/incentives are higher in the real world. And because professors are unwilling to fail individuals on group assignments.

stone juniper
#

I agree that group projects have little to do with working in a group, e.g. on a job. The power structure, incentives, and duration of the project are all huge factors in how people work together and very different between the two settings. Fwiw I loathed group projects in school and have absolutely no problem working with others at my job (or in pydis for that matter).

pine stratus
# misty dirge **Topic: Group projects/assignments**. Proponents argue that (a) being able to w...

I feel that group work is another stage of development that can only really be achieved after the individuals feel comfortable with their own capabilities. Often most people in the group are not at that stage yet. And it's not exactly fair to expect them to be when the courses they are currently undergoing are for individual capabilities. When hiring, we hire those that we assume are already comfortable working as individuals (shows some level of individual skill), and then after that try to gauge if they can work in a group (being able to work in a group without the individual skill does not add much value except in some cases). In addition, many school assignments can not really be done in parallel / with highly diminishing returns (to the degree that you only want maybe at most 2 people). This is often because their scope needs to be sufficiently limited to fit within the school's course system.

#

Some people happen to be more motivated for a particular topic (or just in general in their studies at that point in time) and so they stand out and want to get good grades. But I would expect the opposite in general with the current learning structure (at that stage of development).

#

(a) Yes. (b) Yes, but depends on project and when / at what point in their development. And if everyone involved is there because they care about the topic (in an actual job you care either for financial reasons and/or (probably both) because you care about the topic), or just drifting through the system.

#

(And the problem is that if you try to solve this by making the projects more accessible they tend to be too simple to be a group project (group projects are group projects because they are too hard for any one person to do within some given time frame (making it especially cruel for those that decide to carry all the burden if the rest are not at that stage yet)))

pure heron
#

one major difference is that in the professional world, someone is helping to both split the work into parallelizable pieces and to assign those pieces to individuals. And, for that matter, to mediate conflicts between the individuals. Group projects in school lack someone in that role.

subtle owl
cosmic aspen
toxic rover
jolly night
pine quartz
#

Another issue I see with the group projects I've done is school/university assignments are done while you're taking other subjects, so your week is split up among all the subjects. That means you're not going to have daily meetings, constantly switching off to do other tasks.

misty dirge
pine sand
#

Anything you guys wish you knew before you started coding?

steep minnow
#

How to print hello world

brittle sand
#

!eval print('hell world')

worldly dewBOT
#

@brittle sand :white_check_mark: Your eval job has completed with return code 0.

hell world
brittle sand
#

ooops

steep minnow
#

Failed

#

See I told u it’s hard

#

Hence I wish I had guidance before hand because some programmers still can’t do it πŸ‘€

weak mortar
#

Would someone kindly be able to help me with micropython?

#

Anyone?

neon pasture
#

This channel is for talking about the practices of teaching, consider asking in #web-development

vague remnant
#

i really hated group projects. your time is just dominated by the luck of the draw -- do you end up in a good group, or not

#

hated my grade being up to chance like that

#

and even if you get to choose your group, that still isn't fair -- it just means you get a better grade if you happen to have smart and motivated friends

#

profs would say: oh if someone isn't pulling their weight, just say so and we'll reassign them. but nobody wants to grass someone else up

native hearth
#

oh we grassed hard lol, the problem is when profs dont do shit
I think it teaches you how unfair life is before you even get to work for shit management

vague remnant
#

+1 to the stuff above about work that just can't be fairly divided. or work that has dependencies so one person ends up idling while another is frantic

#

i've heard many justifications for group work and absolutely none of them stand up to scrutiny.

#

if it's to teach students how to work in groups then why not actually teach that? there are whole professional industries and courses dedicated to this sort of thing. it isn't obvious, it had to be discovered. there are "agile coaches" and so on. it's a skill that has to be taught. and it never actually gets taught explicitly, students are just expected to figure it out on their own. is it any wonder that they fail?

#

if grown-ass adults argue about how best to run a software team and there are different schools of thought and so on, what chance do students have who still have trouble with for loops

neon pasture
#

There is one group project which I liked, where the actual difficulty was very low (the entire thing could be done in about 12 hours solo), and it was entire class on working on software projects in groups. If you rolled a poor group, you could just solo the whole thing and give them a small share of the points (git was mandatory, so it was quite hard to fake contributions), but if you got a good group, it was a valuable learning experience.

vague remnant
#

ive been on both sides of it. ive carried groups and ive just checked out and contributed zero

#

and obviously it's not like a real job at all. if someone isn't pulling their weight, they get fired. deadlines can be negotiated. etc

neon pasture
#

in general, that's how our school sort of makes up for bad groups. You just do ~20% of the work, give yourself 100% of the points, and get 20% of the points for the project, but those points are for the whole team. Of course, it does need to at least somewhat work.

vague remnant
#

what do you mean give yourself 100% of the points

neon pasture
#

you can set how much of the final point pool each group member should get

#

so if someone did half the work, and other two team members did a quarter, you do a 50/25/25 split

vague remnant
#

oh right. i think we had that a few times. but in most group projects everyone just got the same mark within the group

#

based on the overall submission quality

#

we can't even make concurrency easy on machines, that are completely programmable and execute instructions perfectly one by one, so take that and put humans in the mix and no wonder it's hard

weak mortar
#

I'm debating between getting a Dell XPS 13 or a M1 Macbook Air as my new main computer. I'm going to be using it for surfing the web, coding, and watching videos. I can't decide on which laptop though. The XPS would let me use Linux easily and all the time (As opposed to being basically locked down with Mac), but the Macbook has far better hardware. Any insights?

stone juniper
green warren
tired forge
#

For what it's worth, I have never once had a good experience with a group project. In the ones where the rest of the group carried their weight, the others didn't know git, so we had to use the Google Drive method of version control (if you can call it that). Dividing work and coordinating was so annoying that it might have been less effort to do it all independently.

wild crescent
#

In my experience it generally boils down to one person somehow turning into the leader and doing most of the work when it comes to group assignments in uni

jovial quest
#

i totally agree with stelercus

rich mural
#

This channel is for discussing teaching practices, not for general help. Please see #β“ο½œhow-to-get-help for where to ask questions. I will be removing your message, @burnt blade.