#pedagogy

1 messages · Page 4 of 1

golden stump
#

Let's say we were learning Classes for the first time, what would you cover in the first lesson?

native hearth
#

I would probably design my classes so that students are eased into classes by having them use pre existing knowledge to emulate what classes do

#

Until it becomes apparent that theres something classes do that they can't emulate with top level functions and builtins

#

Then introduce the new syntax
Now they have the necessary context of what this new feature does and why its necessary

#

Rather than walk in a class room one day and be like "today were doing classes, dont worry about what they do, heres the syntax, learn it"

#

This is exactly what the article suggests btw

#

And that's why classes are important in Python. They help us get our programs a little more under control as they grow. I didn't know as a beginner, because I hadn't experienced the complexity of one of my programs snowball out of control. I had never seen a locked door and so I didn't understand why anyone would want a key.
Fwiw i've seen and experienced this disconnect myself, both as a tutor and as a student

golden stump
#

I'd probably have a ready working class, not explain a thing to start with, and get students to try and work out what it does, and to make some adaptations.

I'd follow the PRIMM methodology on this one.

native hearth
#

So you'd have to teach them both syntax and purpose together while the article would first teach purpose and then syntax, doesnt your method have a higher cognitive load?

golden stump
#

No. I'd have a ready working one, hence lower cognitive load.

No typing of code in, but trying to understand something that already works.

That's how it's done in the PRIMM methodology.

#

So no, I wouldn't be teaching syntax, or explaining anything.

#

And no, I wouldn't be teaching purpose at this stage at all.

native hearth
#

Do you not need to explain class self __init__ etc?

#

Are students supposed to guess?

golden stump
#

yes

#

they are supposed to guess

native hearth
#

How would they know theyre correct or not, they didnt write the code, can they alter it?

golden stump
#

Yes, they can alter it - and they're expected to.

#

The PRIMM stands for
Predict
Run
Investigate
Modify
Make

#

So you start with predicting (or guessing - educated guesses really)
Then you run the code and then you have some investigative questions which direct you towards certain features

Then you modify things (again this is guided)

And then you can make your own.

This could be over a couple of lessons or could potentially skip a step (but probably not skipping).

#

It's shown to really help students learn programming more quickly.

#

But one of the features is that they don't start off worrying about syntax - it's already there in front of them and working.
So lower cognitive load.

#

(I do feel as if I'm trying to defend a pedagogical approach as if it's just something that just I do, even though it's the way hundreds of teachers now do this, following significant research.)

native hearth
#

Now you're defending it, earlier you were saying "dont worry about it"

golden stump
#

I don't follow.

native hearth
golden stump
#

I still don't follow.

golden stump
#

Anyway, the research conducted suggests that the PRIMM methodology is especially effective. And I try to follow the science when it comes to pedagogy.

royal geode
#

Curious: a colleague mentioned f(1, 2, **kwargs) as splatting. I found some people online mention this but I have not heard it really said very often. Is it a worthwhile term to introduce to learners, or would them using it not come across to practitioners in y'all's opinion?

misty dirge
#

but as long as "splatting" isn't potentially ambiguous, I don't think using it is bad.

royal geode
#

Yeah it's more that I don't want to intro a term, for them to then go use it, and for them to then get feedback like "it's wrong" from more... prickly colleagues.

misty dirge
fallow current
misty dirge
#

also I have a sneaking suspicion that {**other_dict} is faster than other_dict.copy()

fallow current
final rapids
tidal orchid
#

!e {}.copy(deep=True)

worldly dewBOT
#

@tidal orchid :x: Your 3.11 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "/home/main.py", line 1, in <module>
003 |     {}.copy(deep=True)
004 | TypeError: dict.copy() takes no keyword arguments
tidal orchid
#

{**x} / [*x] create shallow copies, but x.copy() does not supports deep copying either, for that you have to use copy.deepcopy

final rapids
tidal orchid
#

idk, probably the same reason why not not is faster than bool()

final rapids
#

So the copy() function call adds additional overhead?

ripe folio
# final rapids So the `copy()` function call adds additional overhead?

More importantly, the lookup of it does. Python has to find the function which is set to the copy attribute. For ** it can find the correct internal implementation more quickly - at compile time when it reads ** - but I may actually sway the other way.

See with dict.copy() Python could hypothetically use a very specialized implementation for copying dictionaries. Meanwhile ** has to iterate the object and recreate it

#

The specialized interpreter may change

fallow horizon
#

Hi starting on python and I was wondering if it was possible to get the full HTML of a webpage using selenium? because I tried couple ways but some javascript dynamic elements always did not appear 😮

fallow horizon
tired forge
desert patio
#
>>> main(['-s', "d=dict.fromkeys(range(500))", "d.copy()"])
100000 loops, best of 5: 2.1 usec per loop
>>> main(['-s', "d=dict.fromkeys(range(500))", "{**d}"])
100000 loops, best of 5: 2.11 usec per loop
#

the difference is probably just noise

weak mortar
#

hey, I'm a teacher in Iceland and I'd like to get your input on which books would be good to start teaching for 16-25 year olds, it would be nice to get your input on that discussion

misty dirge
weak mortar
#

no, just ther a lot lot of books but i do want to get you input and see

misty dirge
#

is the goal to teach them python, or programming in general via python?

weak mortar
#

general

#

i can get the like going but we do want to step up the geame

#

i can tetche theim leik set up and basic but now we want to step up the geame and start to like microcontrole, webside outpout and in ther diresion

wanton shuttle
#

.

spring valve
#

hello how are you guy

golden stump
#

Or are you happy for English-based references / exercises?

weak mortar
golden stump
#

Damn - I love Iceland - wish I could take this task myself

weak mortar
#

I don't think ther ar Icelandic exist

golden stump
#

I don't suspect so lol

weak mortar
golden stump
#

I was actually talking to my computing class about Iceland today - anyway - I digress.

I wonder if it's worth looking at Nicola Wilkin's book on Python

#

It's easy going introduction to getting into python in the first place - aimed a bit younger, but she has a reasonable style

weak mortar
#

Cool tanks I wil look in to it 🙂

shy cosmos
nova pendant
worldly dewBOT
#

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

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

olive oyster
worldly dewBOT
#

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

leaden urchin
#

How does everyone balance gaming with long coding hours and studying? what time do you prefer to relax and game, also how do you utilize discord for learning?

nova pendant
#

What balancing issues do you or others have ?
I'm not a gamer so I'm not sure whether I can relate but at least I'm curious.
Coding is my favourite activity so I practice it even more on my personal time than I do on my professional time and I take as much pleasure in both cases.
My 2nd favourite acticity is watching movies & TV shows, which I also spend many hours at.

wise kelp
# leaden urchin How does everyone balance gaming with long coding hours and studying? what time ...

I think it depends, if you're talking about the schedule itself, it's different for everyone. However, if you're talking about the balance between work and gaming, that's a different story.

I think the idea of balance is often misjudged by people who often think that the longer you work the better. Personally, to reach a goal I think it will always be more effective to set a goal day by day and try to reach it.

If you know that every day you have to climb a step to reach your goal it's always more motivating and less tiring than trying to climb them all at once without ever seeing the end.

#

About discord, I admit that I don't use it that much to learn, but in the end I realize that it's a very good resource. Unfortunately, as far as I know, there are not many servers, like Python, that offer mutual help system

rigid jay
# leaden urchin How does everyone balance gaming with long coding hours and studying? what time ...

This is a really difficult thing for me personally as I often will get sucked into video games and spend hours on them. I think the biggest thing for me personally is just making sure that my personal projects make me excited about them. If you're doing something you find exciting, you will be surprised at how often you default to working on that problem. Also, I have found that using the iOS focus groups is pretty useful. I set it up so that after 5pm all notifications related to work are suppressed.

leaden urchin
# nova pendant What balancing issues do you or others have ? I'm not a gamer so I'm not sure wh...

I find that working long coding hours without breaks is extremely ineffective and is counterproductive to learning (like studying for an exam), therefore it's important to relax your mind and let your subconsious calculate the information to solidify the information, it's also good whenever you have a big problem in your studies to relex to get into a different, more problem solving state of mind, for more info: https://www.youtube.com/watch?v=O96fE1E-rf8 or search (learning how to learn tedtalk)

This talk was given at a local TEDx event, produced independently of the TED Conferences. Engineering professor Barbara Oakley is co-teaching one of the world's largest online classes, "Learning How to Learn", https://www.coursera.org/course/learning.
She know firsthand how it feels to struggle with math. Dr. Oakley flunked her way through hig...

▶ Play video
leaden urchin
ember portal
#

Simpler is better, but one has to not compromise detail in the process

nova pendant
rigid jay
shy cosmos
# ember portal You would be surprised at the amount of 7th graders reading at 10th grade levels...

Sure, there are quite a few of those, too. But you don't have to do anything special with them in this regard; if you target their grade level, they will understand, and easily. Whereas the students who need effort to read at their grade level will need to work to understand both the material they're trying to learn and the words used to communicate that material.

If you've never seen 7th graders trying to read a 7th grade text aloud, you might be shocked. I know I was.

grand vault
#

looks like one for #career-advice instead than here - but thanks for the share, i needed exactly that.

sweet palm
#

Does anyone know of a site like codechef etc that allows creating private competitions/leaderboards?
I want to set up a competition/leaderboard for the kids at my school (Bonus points if you know of a site like codechef that's aimed at young learners 7-14yo)

worldly dewBOT
#

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

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

fresh brook
#

@sterile olive

autumn cedar
#

Today in exam we had the question "How do you delete the 3rd element from a list called a?" There were multiple choices, between them a[2:2] = [] and a[2:3] = []. That's the only part of the question I skipped. In all my professional experience, I've never seen this construct being used. I know how it is supposed to work, but damn that's some pretty bad code, no one actually uses that. I skipped this question.

This all leads me to this: aren't the questions "How do you do X?" with predeterminated choices completely missing the point? In an actual work environment, you are either writing code (the question is open ended) or reading code ("what does this snippet do?" type question instead).

#

Coming back to the original question, just tested, the first one is a no-op which I wasn't sure of. I wonder what the purpose of placing such an answer is, really.

#

I can imagine something about testing whether you'd fall into such a pitfall when writing code, but at the same time that's not the construct I'd use

#

If the question was open ended you could actually check if the student would fall into that pitfall while letting them use something else if they're more used to it

#

Anyway, opinions on all of that?

desert patio
autumn cedar
#

Yeah, I guess that's true.

desert patio
#

that construct would be more commonly used when deleting multiple elements

#

but even that is supported by del so idk really

autumn cedar
#

I'd do two slices all the time, honestly

neon pasture
#

I have used slice assignment on occasion, since unlike del et al, it cannot ever produce an IndexError. (though I would not put it into code that will be part of a code review)
I do think the questions of the style "how to do X" are still important early on, since they test your ability to convert the logic of what you want to do into code that actually does it.
Having the correct program in mind, but implementing it incorrectly is a common source of bugs for beginners, and it is important to have just about 100% success rate in this when writing practical code.
This specific question is kind of silly though, that I agree with.

pearl temple
#

i agree that this question is silly, it should not have been multiple choice. you should just be able to write your answer.

tidal orchid
tired forge
# autumn cedar Anyway, opinions on all of that?

The question seems to test knowledge of slices being end-exclusive and protected from IndexErrors, which is important and useful. But the correct answer is an obscure way of doing something simple, which isn't good practice in code.

nova pendant
#

While generally agreeing to everything being said in this conversation, I'd like to add that :

"How do you delete the 3rd element from a list called a?"
Is not a question that ever applies to the real world, as no actual use case requires manipulating iterables using hard-coded indexes, but dynamic ones relying on user input.

noble aurora
nova pendant
#

Well yes but that would still be a small part of the use case.
A more relevant question would be "how to delete the element that fits (some condition)".

wind lance
#

Hello!
What textbook and/or tutorials would you recommend to a beginner but somewhat familiar with programming for learning how to do text analysis with python?

misty dirge
deft cargo
#

Should basic software engineering (requirement engineering, use-case/activity/relationship/etc. diagrams, etc.) and DevOps (version control, dependency management, documentations, etc.) be taught to people that have gotten the basics down and are transitioning to "project" (not monolithic scripts)?

noble aurora
#

that's a funny definition of devops

acoustic hinge
#

version control and dependency management is something im still getting used to.
I only got to it after realizing that what im doing is probably going to stay for long and need updates, maintainance, etc.
i think its useful to be taught, but unless I have a project that needed that kind of provisioning what best practices I would have learned will be lost to the winds.

misty dirge
deft cargo
acoustic hinge
#

me neither, but at some point it became a necessity for me since it gave me some semblance of structure to my otherwise scatterbrained file structure

deft cargo
# misty dirge I think most of those should be covered in a software engineering course, yes. T...

CC @acoustic hinge
The problem is that it's a course, built into a learning path at college/uni. Considering Python's status of being easily accessible by academia and the general public alike unlike like the C family, Java, and what-have-you (idk, I'm spitballing), maybe it's good to include the basics of software engineering in a book teaching programming, maybe at the 2nd half or the 3rd third?

#

I.e.: We're gonna cover the stuffs at surface level, bc that's all the general public needs. Proper engineers will need the deeper stuffs

acoustic hinge
# deft cargo CC <@196624010761601024> The problem is that it's a course, built into a learni...

if its a college/uni course then i guess it wont be that flexible to begin with? if i were a student i would just have to go through it if its included in the course

my experience with learning at uni is that, regardless of the subject, often whats being taught is important down the line but I have no use for it at that moment. Thus I forget and then many years later i would have to dig it out from the depths. I'm aware this is more of my own way of learning and not how the wider palette of students would do it.

quaint quarry
#

How does everyone balance gaming with long coding hours and studying? what time do you prefer to relax and game, also how do you utilize discord for learning?

misty dirge
#

Intro to Python instructors struggling in our post-ChatGPT world be like:

tidal orchid
shell ivy
#

So for my web dev portfolio I'm writing a very basic explain-like-I'm-ten introduction to Python

misty dirge
shell ivy
#

That was pretty much it

misty dirge
#

Though I do wonder how introductory writing and programming courses can prevent cheating without adding lots of burden on the instructor

#

We don't have resources for Arabic speakers, unfortunately. You might look for a python user group in your country.

upbeat escarp
#

Just ask chatgpt to include explanations in the code

oak breach
hollow junco
#

How can we pursue knowledge and inspire others with its authenticity and production and avoid replicability?
pls answer in dms

noble aurora
#

that's gotta be some essay prompt

misty dirge
tired forge
olive oyster
weak mortar
#

!pip asyncio

worldly dewBOT
misty dirge
copper cosmos
worldly dewBOT
#

:incoming_envelope: :ok_hand: applied timeout to @weak mortar until <t:1686012727:f> (10 minutes) (reason: duplicates spam - sent 5 duplicate messages).

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

brittle yacht
worldly dewBOT
#

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

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

copper cosmos
# misty dirge what's interesting about it?

In elementary school, we learn how to read prose and approach the analysis at different levels of abstraction (syntax, vocabulary, diction, etc).
In the book, she provides a set of tools to approach the reading of source code and how to increase comprehension.

misty dirge
copper cosmos
# misty dirge Interesting. Can you give an example of one such approach?

Thanks for the challenging and useful question.
Here is a description of one of the exercises:
Print the source code on to paper, then...
Circle all the variables.
Link similar variables.
Circle all method/function calls.
Link methods/functions to their definitions.
Circle all instances of classes.
Draw a link between classes and their instances.

#

And here is a quote from an earlier chapter:

When tracing very complex programs, you might feel the need to note the values of variables, either in the code or in a separate table. The fact that your brain feels the need to store information externally can be a sign that your working memory is too full to process more information. We will cover this information overload and how to prevent the brain from overloading in chapter 4.

Here is a quick summary of how the different types of confusion are related to the different cognitive processes:

Lack of knowledge = Issue in LTM (Long Term Memory)
Lack of information = Issue in STM (Short Term Memory)
Lack of processing power = Issue in working memory

copper cosmos
# misty dirge Interesting. Can you give an example of one such approach?

... As the previous section showed, the cognitive skills used for reading code are similar to those used for reading natural language. This means we may be able to apply insights gained from studying how people read texts in natural language to reading code.

There has been a lot of research into effective reading strategies and how to learn them. Strategies for reading comprehension can be roughly divided into these seven categories:12

Activating—Actively thinking of related things to activate prior knowledge
Monitoring—Keeping track of your understanding of a text
Determining importance—Deciding what parts of a text are most relevant
Inferring—Filling in facts that are not explicitly given in the text
Visualizing—Drawing diagrams of the read text to deepen understanding
Questioning—Asking questions about the text at hand
Summarizing—Creating a short summary of a text

#

The author, Felienne Hermans is also the leader of the Hedy Project
https://www.youtube.com/watch?v=fmF7HpU_-9k&t=21s

When kids learn to program they often use either a visual language like Scratch, or a textual language like Python. While visual languages are great for the first steps, children and educators often want to move on to textual, but early on, a textual language and its error messages can be scary. Hedy aims bridge this gap with a programming langu...

▶ Play video
long narwhal
# copper cosmos The author, Felienne Hermans is also the leader of the Hedy Project https://www....

This is quite interesting.
When you first posted about The Programmer's Brain I was concerned that it would extrapolate what little we know about the how the brain works too far, and make unsubstantiated claims. For example, the book cites research that camelCase variables are easier to remember than variables written in snake_case, but people are quicker using snake_case. However, when I read the studies themselves, the null hypothesis (there is no discernible difference) can in most cases not be rejected, and there may be significant sampling bias. It is very easy to see how the attached picture (from the generally excellent poster found here: https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/the-programmers-brain) arises from the existing literature, as that answer is much more interesting than the truth: we don't know, and it has negligible impact.
However, it makes a lot of sens to take the lessons we have learned in teaching natural language and apply them to programming, particularly when it comes to teaching children or young adults.
I find it useful to have been exposed to modern understanding of cognitive psychology during my education, and this book seems to do this in the context of programming.

pale igloo
#
#-----------------IMPORTS------------------#
from math import sqrt
#------------------------------------------#

#-----------------IS_PRIME-----------------#
def is_prime(n: int) -> bool:
    try:
        try:
            n / 1
        except:
            return None
        if '.' in str(n):
            return None
        if n <= 1:
            return False
        for e in range(2, int(sqrt(n)+1)):
            if n % e == 0:
                return False
        return True
    except Exception as Error:
        raise Error
#------------------------------------------#
flint goblet
#

what's the try/except clause for?

pale igloo
flint goblet
#

...

misty dirge
#

Please move this to off-topic.

copper cosmos
feral bear
#

Out of idle curiosity, is there anyone here who has taught themselves to program primarily using ChatGPT? (or copilot or similar tools)

queen heron
#

I think it would be naive to learn programming from any single source

wintry forum
#

hi

feral bear
vivid goblet
brittle yacht
sweet palm
pale igloo
vague remnant
#

why do newbies use global so much?

plush drum
#

Where you can learn python

#

?

flint goblet
flint goblet
queen heron
# vague remnant why do newbies use `global` so much?

I'd say lack of understanding in terms of scope, or how to properly implement functions with parameters/return. Could also be because they'll learn classes later and if they're really in need of some sort of "state", globals fill the role until then

sage sundial
#

Why did @rustic mountain's question (1120368529930194975) get closed? It seemed like a perfectly good question and I was working on an answer :/

misty dirge
sage sundial
misty dirge
sage sundial
verbal rose
last rain
edgy socket
#

the IT world is changing so fast i'm scared if i commit to learning it'll be outdated by the time i'm done

worthy ether
jolly night
edgy socket
flint goblet
#

also focus on the basics

next thicket
queen heron
#

I'm saying don't just have that book be everything you know

tiny moth
edgy socket
tiny moth
#

Ahh I see

#

I assume by IT you don't mean programming strictly, but having general IT skills can save you a lot of time and make you a valuable employee

agile marten
#

if you were to learn python from scratch. what would you guys do ?

flint goblet
agile marten
flint goblet
#

I think it's how I learned

misty dirge
#

this channel is for discussing teaching techniques, so please remove this message

wet apex
random wyvern
#

Anyone have a good analogy with which to describe Lock objects? I'm making material for a course I teach at work.

The best one I've come up with is those three sisters from Greek mythology who share an eye, with the sisters being threads and the eye being a lock.

That's kinda obscure, though...

noble aurora
#

it's a talking stick

random wyvern
#

I just worry that not everyone will know what that is...not that I'm one to talk given my example...

neon pasture
random wyvern
#

Oh...that's good.

twin egret
#

you could probably draw some analogy between a lock and having a talking stick too (or whatever equivalent object you prefer), where within a gathering of people only the person currently holding the stick is allowed to speak

weak mortar
#

at what point could one consider themselves comfortable enough with a language and basics of programming to safely pick up another language without causing confusion? Are there signs someone should look for?

pine coyote
#

honestly the worst that might happen is probably discouragement and syntactical confusion. I'd say to go for it! Every language you work with will make the next one you pick up easier to learn, and if you're interested in another language, it'll be fun to dive in

low summit
#

So I'm working on material for a Python course I teach at my workplace. I've gotten to the unit on multithreading. The problem is that I barely ever use it myself, and don't really know what needs to be covered in-depth and what I can just devote like, 1 slide to.

So far I've covered the creation and running of threads (not extending the Thread class, just using it to run singular functions), global variables and their use with threads (plus the related warnings about what can go wrong if care isn't taken), locks, and avoiding deadlock.

I'm guessing I should also cover conditions and queues, but I don't know which concepts are more important and which might only need a brief mention.

low summit
#

Yeah, maybe so...I figured since teaching was involved I'd try here first.

oak copper
#

Hi, next month the project I'm working on will be finished and it will probably be about a month before I join another, so my company suggested I hold a 2 week long workshop for CS students, probably ones who already got their bachelor's degrees.
Our company mostly does web app and mobile development, so those topics would be the focus. We also want them to be working in teams to get an actual feel of what it's like to work in the company. Other than that, I will be in charge of coming up with the actual program and materials.

I don't really have experience with anything like this, so I'm looking for any advice you might have...
Were any of you in charge of something like this before? What approach did you take? Do you have a project suggestion? Any info or advice is welcome, really

flint goblet
#

@oak copper I'd pick the most confusing tech your company uses, and teach an intro to it

oak copper
worldly dewBOT
#

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

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

split shale
#

Hi everyone. I've been a javascript dev for some time and would like to learn some Python. Anybody know of tutorials for JS devs, maybe ones that have comparisons?

misty dirge
split shale
#

Oh, sorry about that, I'll try there, thanks

frigid mantle
#

Has anyone read the books “fluent python” or “distilled python” and if so which one would u recommend

misty dirge
stiff garnet
#

Does anyone know of any standard or well known systems for creating knowledge banks for knowledge articles?
Looking for a general template / standard practices that could be applied to make learning more streamlined for users through KAs

flint goblet
#

dunno what most of those terms mean, but maybe you want wikimedia? i.e., create a wiki like wikipedia

native hearth
#

but generally, confluence, notion, etc

ancient stone
#

Any recommendations from other lecturers on intro to ML textbooks (obviously using python)?

I’ve used the Hands on with scikit book before and it was okay but not a lot in the way lecture materials or homework/case study data sets.

misty dirge
ancient stone
twin egret
#

@proud wasp This server isn't a place for soliciting paid work, so I deleted your message - please don't advertise your own tuition here again.

plucky tangle
#

Hey, new to the server and python in general.
I know some of the basic functions of python, but i'd like to follow an extensive guide or tutorial to really get familiar with everything.
Any recommendations?

misty dirge
plucky tangle
#

Alr, thanks

worn mural
#

Is there a section on this discord where we could list ourselves and qualifications for offering tutoring services to students/new python learners?

misty dirge
worn mural
#

I see

novel sentinel
#

Idk if this is a known resource but if anyone has used it before id like to get opinions on zybooks

tame dagger
novel sentinel
#

mostly asking because it has become my go to way to learn languages. it’s how I am learning python and I was hoping to see if it is a reliable source of information. and if it covers things necessary for proficiency in programming @tame dagger

tame dagger
novel sentinel
#

yeah definitely, thanks

novel sentinel
#

is it a waste of time for me to learn about reading and writing binary data. I want to go into AI and am in my first semester of a CS degree. I purchased an online python textbook that hasa a long section on binary data and the struct module. I am wondering if this is worth spending the time to really understand. Thank you

flint goblet
#

for what it's worth, I've been doing python professionally for 10 years or more, and have never used that module

novel sentinel
#

thats kind of what I was thinking. I cant think of a scenario where I need to write string using ASCII then manually convert it to english. @flint goblet

flint goblet
#

But I don't know what write string using ASCII then manually convert it to english has to do with binary data and the struct module

novel sentinel
#

probably bad wording. Using struct to pack binary data. or writing binary literals which get converted to english.

#

@flint goblet It is fairly confusing and that is why I asked if I should spend my time really learning it. Or move on to a subject that will most likely be more applicable in my career

tame dagger
#

I’ve had to work with all sorts of binary data formats, often having to write my own decoders/etc. As a new developer, my advice to you is: build a wide foundation… if there’s something you don’t know, embrace the opportunity to learn it. I use stuff all the time that I never thought I’d use.

novel sentinel
#

true :/

tame dagger
# novel sentinel true :/

Of course, to be fair, if you choose to learn something else instead of this, it’s probably an equally good option 🙂

novel sentinel
#

Yeah, I am just on a time crunch to finish this textbook before my next semester starts and I wanted to have a wide enough range of useful skills to be able to work on projects in my free time. @tame dagger

neon pasture
#

I can imagine a scenario where your data would be in some weird binary format and you can't find a library that parses it correctly. Would be real embarassing to be a senior dev and not know how to parse a binary format. (though you could probably just learn on the spot, but it still is good practice).

flint goblet
#

🤷

#

there are a near-infinite number of things that a senior dev might be called upon to do; preparing for all of them is impossible

#

"learning on the spot" is how I learned most of the specific stuff that I know

novel sentinel
# flint goblet 🤷

that makes sense, i ended up skipping that section and I figure if I need something that specific I can just figure it out in the moment

warm cedar
weak timber
#

Can someone read my notes on the basics of Python and see if I missed anything or didn't understand a concept well enough?

#

I have it in a txt so I can't post it here.

misty dirge
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.

weak timber
misty dirge
misty dirge
#

@loud pike

The author of that book uses some strange metaphors/analogies (example: a network of highly intelligent crows that have created a pseudo-internet in order to explain async/await)
that's a great example of trash tier pedagogy. analogies shouldn't be so contrived that you lose track of their communicative intent.

loud pike
#

That's a big gripe on the reviews of the book. An entire chapter is written using the crow network analogy

#

I also found it confusing

misty dirge
#

one wonders how such a thing got published.

loud pike
#

However I still like the tentacle analogy, at least the author doesn't devote an entire chapter to squids

misty dirge
loud pike
#

Yes. I read the book after learning python. To be fair it's not a book recommended for beginners, I thought that analogy was simple enough, but it could be reverse Dunning Kreuger on my part

tame dagger
#

What book is this? Now you’ve piqued my curiosity, I do love some creative analogies, even if they miss.

misty dirge
loud pike
misty dirge
#

good thing it's free...

loud pike
#

Sorry if that made it more confusing Theorem!

misty dirge
loud pike
misty dirge
misty dirge
#

This channel is not for resource suggestions.

indigo escarp
#

I really like this as a teaching model because people can test their understanding and interact with the code without leaving the page or setting up an environment.

cinder fossil
#

Is there a linter that tells people to use a dict or set if someone uses the "in" keyword on a list or tuple?

misty dirge
weak mortar
#

Maybe this is not about pedagogy, but I'm a freshman in software engineering, and wow, there are people who, after 3 months, still haven't learned how to use for loops or while loops in simple algorithms. Despite that, I stand out in my class. I might not be as good as you, but I'm very interested in programming, and I dedicate a lot of time to it.

That's why my classmates ask me for help. They even come to my house so I can teach them, and we end up practicing (simple) algorithms for 5-6 hours. However, they still struggle to grasp the concepts. I asked them if this is really the career they want, and most of them said no. But they do wish they could start liking it, so I continue trying to help them. Unfortunately, they view programming as the most challenging thing ever.

This situation made me realize that being a teacher or educator can be tough when people find simple concepts difficult to understand.

misty dirge
worldly finch
#

What is this channel for? Been having difficulty finding descriptions or making sense of what it’s for.

misty dirge
scenic relic
long narwhal
# misty dirge everyone I know who dropped out of CS did so because they found the theoretical ...

In chemistry we see a lot of students struggle with equilibrium constant in the first year, and then with thermodynamics later on. Both of these are topics that have no clear real world analogies. The equilibrium constants exist on a log scale and cannot be understood in terms of linear phenomena. Similarly, thermodynamics relates to disorder.
I wonder if the theoretical courses in CS face a similar problem.

weak mortar
#

#career-advice message

@worn crest you think this is a question the average human programmer will answer worse than ChatGPT?

worn crest
weak mortar
#

Class or function and where and why

worn crest
#

Therefore, level of the answer of the AI will largely depend on the developer ability to analyze the overall context in order to give a better description that would allow the AI to decide

misty dirge
#

language models can emulate having experience if content written by people who do are in its training data

worn crest
#

(He was talking about using AI to learn programming in other channel, so I am also talking about how using these tools might not be the best idea sometimes)

misty dirge
#

I would not use ChatGPT to learn something you know nothing about, which you plan to learn about in depth.

weak mortar
misty dirge
weak mortar
#

Do you think that if you specify the question adequately the average human programmer will answer it worse than a top of the line LLM?

worn crest
weak mortar
worn crest
# weak mortar function or class, as you said

If you give 100% accurate context about how you intend to test it, design it, use it and debug it... The response might be really accurate (in the future, not now). But do you think a person who is able to give such accurate context will need to ask an AI whether he should be using a class or a function?

weak mortar
#

You can specify how to ask it.

worn crest
# weak mortar You can specify how to ask it.

If the person is a senior programmer, the answer will be better than the average, because he will know which inputs will give the best answer.

If the person asking is a beginner, the answer will be far away from the average programmer

weak mortar
worn crest
weak mortar
#

ChatGPT is, on average, already better than the average human and in being so, can pedagogically help a human learn

#

Which is on topic here

#

Good pedagogy advice? Use ChatGPT, in my view.

worn crest
tame dagger
weak mortar
#

Have you tried it? Give me a question for which GPT's answer is no good Vs an average human.

tame dagger
weak mortar
#

I am willing to make a test and ask the question to ChatGPT

worn crest
#

Reasoning is highly biased

#

You are only thinling about the kind of "problems" that are 2+2

#

Any other topic that is subjective, AI will just give same reasoning as the dataset that was used to train the network

tame dagger
#

Yah, and this is a classic fallacy anyway... fallacy of the average?

weak mortar
# worn crest

I was talking about programming problems suitable for a beginner in programming?

tame dagger
weak mortar
#

ChatGPT is, effectively, a thinking <thing> with a certain degree of intelligence, with this level of intelligence rapidly growing with time. Tomorrow, it will be better than today. A great assistant in human learning.

worn crest
tame dagger
worn crest
#

And also, now I have the criteria to discern what's a shitty answer and what's not because I am experienced. A person who is learning will just take all the shit with no filter

weak mortar
#

Give an example of a shitty answer to a beginner's question?

misty dirge
#

How can you say that ChatGPT is "rapidly improving" when it only uses data up to September 2021?

misty dirge
#

Compute?

weak mortar
# misty dirge Compute?

Yes, which is why GPT performance has been declining, ceteris paribus of training set, etc. Reduced performance per predicted token

worn crest
weak mortar
#

I think it is great advice to tell a human: start but learning alongside an AI. Ask it to explain every step, over and over again. Work through simple problems. The AI will perform for so long.. that the human will have developed some independence through all the learning available by interacting alone.

I'd even say that an AI tutor could work, on a mobile phone, as a teacher, without ever writing a line of code in an editor. Only as a question/answer loop of assisted learning.

worn crest
worn crest
weak mortar
#

Probably will be able to soon

worn crest
#

I think teaching is inherently something somehow human

weak mortar
#

We thought that learning was too. Turns out that's not the case.

worn crest
#

Who "absorbs" all the energy that the kid has?

#

And who proved learning was something not human? I have never read anything like that

#

In the end, a book has all the answers. Same as ChatGPT. Why is the figure of a teacher still needed then?

queen heron
#

The big missing piece here is that ChatGPT is not correct 100% of the time. It's very confident in sounding like it is correct though. I've had it make up method names and give me absolutely terrible examples when asking for certain things (and that's from someone who already knows programming). The damage lies in a beginner blindly accepting what it is told, and beginners are less likely to run tests to verify that that what it was told is correct.

#

I had ChatGPT show me this when asking to explain trig to me

spice thunder
sudden mauve
#

If you are looking for reasons not to use a technology you will find them - ChatGPT is not perfect especially in certain applications. For example, if you try get it to do example rudimentary encryption it will fail miserably quite often - whilst indeed saying it did it perfectly. However, as a tool it can be exceptionally useful in certain circumstances. Need to work with an API, link it the documentation and ask how you query it. Want to understand if there is a better way to approach something, ask, it could give you some really good ideas. Want it to do miracle work with no context - yeah you are stretching it. ChatGPT is a great tool when you 'work with it' giving it good context, the exact same way one would expect you to on Stackoverflow. Students are going to increasingly use this tool, it is a practical and affordable alternative to tutoring, and the technology is only going to get better. I would strongly suggest exploring where it might be able to help on your teaching sides. At the very least - I'd also suggest guiding your students on how to use ChatGPT and how to recognise when it has given brilliant sounding rubbish versus helpful content. These are the same skills one uses when they figure out if a Stackoverflow answer is helpful or irrelevant/bad. This is my thoughts, I hope they help - coming from someone that has found exceptional benefit in using the tool to assist my work in teaching others.

misty dirge
#

As a general reminder, this channel is is about methods and practices for teaching, so be sure that any discussion about ChatGPT is about its utility for teaching. Not its utility in general.

misty dirge
#

sorry, what are you talking about?

misty dirge
#

Let's put this discussion about ChatGPT as a tutor away.

weak mortar
#

Hello, regarding pedagogy and especially python programming.
I am against chatgpt use by students.
There are the reasons:

  • first you can somehow define the result of chatgpt with the first result of a google search (which is not necessary the answer you want). Most of the people using chatgpt don't understand that so there are misled.
  • searching is a key skill when you want to develop. Chatgpt wrap the part where you need to compare result so it goes against this skill development
  • a good developer should know how to read a doc...😂
  • it is quiet difficult to understand language concepts such as object concept. As we use multiple programming paradigms on python (even if all is object 😄 ), chatgpt can answer with a mix of concept and it can be very difficult to undestand things for someone with no coding experience
#

chatgpt is a good tool as a memo for simple things but you need first to be able criticize it's results

royal walrus
#

is writing-an-interpreter-in-go pedagogy?

misty dirge
fathom garnet
#

It’s weird I’ve been “trying” to learn to code for close to 20 years, but this year having actual problems to solve that can only be solved with coding massively caused me to skill up. (In python) I wonder if a teaching method could be created to plumb people’s personal interests and find coding projects that would motivate them?

#

(The thing holding me back has largely been a lack of free time.. but it’s been incredibly enjoyable..)

tidal orchid
#

yeah, that's pretty much the main thing we usually recommend for people to do after they learn the basics

since we don't know much about each and every person that shows up, we typically just recommend generic projects like !projects or build your own ..., but working on projects you are interested (motivated) in is definitely one of the best ways to gain experience

#

!projects for reference

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.

fathom garnet
#

One thing.. maybe to add “learn to interact with every website you use with python. If it has an API use the API if not use bs4)”

tidal orchid
#

nah I wouldn't recommend bs4 unless you want to get banned from that website

true nova
tidal orchid
#

some apis may return XML, in which case you can use standard lib xml or lxml, but literally no API ever returns html
if it somehow does, run away from that website and don't turn back

bleak siren
#

uhhh hi im new here 🙂

misty dirge
true nova
misty dirge
#

are we talking about pedagogy still?

weak mortar
#

Strong claims require strong proof. You state what supports your claim, you do not put somebody else down in terms of their understanding because you think differently. What is your verifiable claim that makes your view (and what exactly is your view) such that in comparison mine appears to deserve "you have no idea what you are talking about". Without substance, your claim is... just aggressive, even if stated with the disclaimer "but... you should not take offence".

weak mortar
#

It is clear, just as it is clear that you should not tell people "you have no idea what you are talking about" without substance behind your strong comment. It's a public offence and it can't be left unchallenged. I did so now and you had nothing else to say, as I expected, so it's ok now.

ebon crater
#

i agree, chatGPT is definitely not """better than the average brain""" and studenta doesn't seem to know what they're talking about

misty dirge
#

The discussion about using ChatGPT as a tutor is permanently over. Please do not continue that thread.

ebon crater
#

chatgpt_discussion_thread.terminate()

misty dirge
#

@wintry forum @twilit hill this channel is for talking about methods and practices for teaching, so be sure that all your messages here are about that. there are off-topic channels for general chatting.

twilit hill
#

yes sir, which Python projects in your view encompass a wide range of tasks that when done perfectly you can feel proud of your mastery of the subject.

weak mortar
tidal orchid
misty dirge
#

!mute 1135518393492066324 "1 day" Everyone was asked to stop the discussion about ChatGPT as a tutor. Please do not continue discussions that a moderator has asked everyone to stop.

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied timeout to @weak mortar until <t:1692111787:f> (1 day).

vivid pecan
#

Could we have a python microbit pedagogy channel ? Would like to share some of my computer-science lessons.

misty dirge
vivid pecan
#

Ha ok. It was not about ads but more about sharing but I can understand

ember jasper
summer quail
#

@onyx narwhal

#

Hi

onyx narwhal
wild elbow
#

i need help

misty dirge
wild zephyr
#

I'm sorry to ask, could anyone provide a more robust encryption program, please?
(Because my current program uses a brute-force method.)

misty dirge
wild zephyr
tawdry shoal
#

Hello guys! Can i have a help?

queen heron
tawdry shoal
#

thank you

misty dirge
#

From the perspective of advanced programmers, beginners can sometimes seem overly fixated on optimization, and often not then kinds of optimizations that advanced programmers care about.

Does anyone have thoughts on how beginners can be taught what sorts of optimizations are actually important?

royal dove
# misty dirge From the perspective of advanced programmers, beginners can sometimes seem overl...

The way I have gone about it in the past is by giving them the tools to figure out if an optimization makes sense. (or at least tried to)

I think it is important for a beginner to learn about Amdahl's Law and the implications behind it. But then also show examples of critical thought about if optimization actually makes sense. Doing that though, is much harder.

I have put people into a trap where they think they are optimizing something but it actually isn't and then show them an example of actual optimization.

pine stratus
# misty dirge From the perspective of advanced programmers, beginners can sometimes seem overl...

I don't really consider optimization a beginner topic at all, and this seems more like non-pessimization, but gone wrong. For non-pessimization, there are some rules of thumb, but it won't really make sense until some explanation of both computational complexity and hardware is given. Which is also an intermediate-advanced topic. But I suppose the general thing is to just time it and tell them that in some modules you care about seconds, some milliseconds, some microseconds, some even nanoseconds. And that they should only automatically apply non-pessimization rules that don't negatively affect the code's complexity and readability. The optimizations that are most important are dependent on the requirements. On personal projects this is entirely different. But I would say that really good optimizations feel like they removed some barrier. They let you do things you could not previously do, not just like 5% faster, it feels more binary than that.

#

TLDR: Optimizations that let you do something you could not do before (in a reasonable amount of time).

pine stratus
#

Example: Octrees (or other space-partitioning trees) in physics engines in video games. Without them you can only have a few hundred objects at best. With them you can have millions. Importantly, this changes the types of games that can be made (e.g. something like Fall Guys which has many physics objects / players).

#

Other example: Fast GPU matrix multiplication (and other kernels). Without it you can only have small neural networks. With it you can have large networks. Larger networks can do new tasks that could not be done before.

tame dagger
# misty dirge From the perspective of advanced programmers, beginners can sometimes seem overl...

I’d posit that the scope of a novice is on a single module, thus their focus will be on optimization of that scope. As their scope broadens, as would the their optimizations. Therefore, I’m not sure there’s much that may be done here, other than to help them progress to the next stage. That said: perhaps more introduction to basic performance measurements early in their work, more projects that involve measuring and comparing… and with different characteristics for small and large n.

queen heron
#

I believe a lot of beginner optimization comes from optimizing their code rather than performance. It seems to come from a place of "There has to be a better way to do this because I'm repeating myself" or "This code seemed overly verbose for what I imagined to be a simple task"

tame dagger
grand ice
#

please is thier gmail web scrapper for python

#

can someone help me with the script

misty dirge
rotund pebble
#

“Premature optimization is the root of all evil.” — variously attributed to Donald Knuth or Tony Hoare

olive oyster
# misty dirge From the perspective of advanced programmers, beginners can sometimes seem overl...

i consider to be 3 kinds of optimizations -
• readability optimization
• run-time optimization
• scaling optimization
* built-in opt'

With the simple rule of being "lazy"; unless its needed, dont optimize.

only when the need arises, like extremely slow runtime or code is hard to understand - would it require optimizing these aspects of it.

otherwise, a code that runs in 2ms versus 27μs wouldn't have much impact on the user (not a noticable differance).

keeping the code neat, and understandable to the dev, thats all.

* the 'build-in' optimization relates to "reinventing the wheel" - if there's already a function thats been made to do that specific action - use that instead; and maybe wrap around it for user's special cases.


tldr; we ain't talking about some major projects or servers that'd be released to the public; with scalability and resources in mind.

anythings fine as long as it works within normal margin; and can be understood by peirs/friends.

no need for standard code formats, docs, tests, time complexity and whatever.
keeping true to some commonly accepted conventions, and keep it understandable.

if possible, split it to functions to prevent cluttering and nesting hell.

thats it.

white plaza
#

somewhat open-ended question - i've been reading martin fitz patrick's book on PyQt5 development and i'm starting to realize "just the one book" isn't going to be enough to get from "i can tinker a couple things" to "i should be able to, with time and effort, code any app i'm capable of imagining".

for now, the two kinds of applications i'm thinking of creating are:

  • video games (2d, the "simple" visual novel / dungeon crawling kind)
  • creativity software (focused on text/image, perhaps a paper doll app for instance)

both of these deal with images, so the bigger question on my mind right now is graphics. it looks like PyQt is meant to handle "the wrapping around the content", but i'm having a hard time evaluating whether it can - on its own - handle graphics. could i theoretically compose a game screen in PyQt, or should i include something else such as OpenGL for that kind of thing?

(also, is there any book recommendation around going in that direction? dynamic graphics in python, i mean)

long narwhal
orchid sapphire
#

I think you can just build coursework for numpy using scipy + mathematical methods for scientists book

#

because what it sounds like is a computational physics course, in a sense

queen tendon
#

CS61A MT1 in two weeks, besties Oswald

misty dirge
queen tendon
#

It's about not pinging me unless you have CS61A hype in your heart, bestie @livid acorn

misty dirge
#

@queen tendon this channel is for talking about methods and practices for teaching. If you aren't talking about that, or you don't want to engage with other people about things that you say, please use a different channel.

I don't know what CS61A is.

earnest meteor
#

!cban 1141977077390774282

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied ban to @valid echo permanently.

weak mortar
#

Any thoughts on pinning posts that have are solid in this channel? Is that doable? I'd like to explore teaching programming

#

Or maybe archiving things somehow

hoary kraken
#

hi

misty dirge
weak mortar
pastel river
#

Hello 🙂 tutoring question. A fresh grad just joined our team at work, needed to modify somd code and asked in what way he should do it.
I could argue for the pros and cons of different refactoring or different split into functions. So I did that out loud to explain my thinking and ended up saying something like "I would probably go for style X here".

But, was that a good way to support him? Hmm!

#

He also boldly jumped into vim on his first day working! 😎

queen heron
weak mortar
pastel river
#

Thanks for your thoughts 🙂

jade loom
#

!code

royal dove
#

I am kinda stuck on how to properly teach/explain to the non tech people about how projects can take longer than originally expected. As in, if someone says it will take a week to be done, don't start building a timeline that relies so hard on that project being done on time. Things happen and they are not predictable. And while this isn't unique to code, it happens a lot.
I have explained proper time expectations to tech people and how to properly scope out an expectation that leaves plenty of time for explosions. But I struggle to get it through to the people waiting on those projects that stuff happens.

The context here is because contracted work is taking longer than expected and someone on my side decided to build up a lot of timelines on the original delivery despite my many warnings that was a bad idea.

royal dove
#

idk. This is a question of lack of being able to teach the concept. This is a "how do you teach people how to handle time expectations from others". While it is related to a specific real current problem; that was more to give context of the issue. But this is something that comes up semi frequently and is important to teach both devs and other corp workers

misty dirge
sterile field
upper flint
undone path
#

Not the one I thought it was

sterile field
misty dirge
#

direct any questions to @viscid mural

sterile field
misty dirge
sterile field
#

im surprised how you quickly you responded in this channel

#

like lucky luke, faster than your shadow

misty dirge
#

Yes... This channel is for the discussion of methods and practices for teaching programming and CS. If you don't have anything to say about that, please use a different channel.

viscid phoenix
#

Can someone look at a learning resources GitHub Wiki I have been putting together? https://github.com/mikestack15/orangutan-stem/wiki/Learning-Resources
I am trying to provide a learning outline for interested data professionals that want to learn more about python, computer science, and other tools used in the field. There are some end-to-end walkthrough activities with supporting youtube videos as well if you're interested in following along! Any feedback/recommendations are appreciated

GitHub

An open-source project dedicated to constructing robust data pipelines and scalable infrastructure. We leverage industry-standard tools favored by data professionals to enhance efficiency and relia...

verbal solar
weak mortar
verbal solar
#

sry..misunderstanding

misty dirge
#

@verbal solar @woven wagon this channel isn't for shitposting. please make sure all your messages in this channel are about methods and practices for teaching CS concepts.

misty dirge
#

Topic: What is the right level of granularity for a university degree? Having gotten a computer science degree with the intent of going into AI, and now having two years working in AI to retrospect, I think I would have been better served if some of my courses had been condensed to give more time for ML-specific concepts. Do those who work in cybersecurity feel similarly?

#

@tame dagger you mentioned this program, "BSc in Interactive Media & Game Development", as an example as an overly granular program. though if someone knows for sure that becoming a game developer is the only career outcome that would make their degree worth it for them, I think they should be able to get a degree (or other professional training) that is specifically for that.

neon pasture
#

The opinion that quite a few Unis hold here in Czechia is that a bachelors degree should be general - just the basics of the field. Any specialising onto a specific part of the field should happen at the masters level, once the student has the foundation to make an informed decision on what they actually enjoy

#

But the overall culture respects bachelor degrees much less than US (at least from what I have noted), so that could play into it

misty dirge
tame dagger
neon pasture
misty dirge
spice elm
#

i really wanna know how can i use chatgpt to learn how to code faster without detreminting the skills of coding. Like imagine if i am a living in a period without AI , i would have developed certain skills that makes independent. I am worried that relying on ( AI ) would make me lose those skills. I might be wrong but i really want any advice

tidal orchid
#

my advice is mainly not to use GPT for coding

maybe Copilot, but definitely not ChatGPT, specially not the free version

you can use it for researching things, as long as you double check everything it outputs, but I wouldn't recommend it for actually writing code

spice elm
#

but i just dont know how to start. like 0 idea

#

if i just ask it to outline to me the proccess, am i losing any skills other devs have?

tidal orchid
#

yes, reading the documentation

true sun
sturdy thorn
#

ChatGPT is so incredibly bad at what it does that using it won't lead to any shortcuts. You'll still have to do all the same work anyways

spice elm
#

i mean isnt that more effecient and all devs are gonna do this

true sun
true sun
spice elm
#

well bingai

true sun
#

AI tools in general cant be trusted (At todays stage)

spice elm
#

provides accurate answers based on search webs

tidal orchid
# spice elm do i really need to know how to read documentations when we got chatgpt like jus...

if GPT was able to read and summarise all projects documentations in real time, sure

that is not the case though - in theory you could feed the entire documentation as part of the prompt, but right now it relies on what it learned from the training data, which will be outdated and not work for smaller projects, and even then it is not reliable enough to use without double checking the output in that very same documentation

Not to mention that you'll probably have to write documentation yourself someday

true sun
# spice elm provides accurate answers based on search webs

do you agree there might be some reason why most good devs (including people who manage communities of thousands of programmers ) know something about these tools more than us ???
do you think they despise these tools for no reason ??

tidal orchid
#

and before "just ask gpt to write the docs?", no. Writing the documentation requires more knowledge than just what the code does - you need to know which problems the project is trying to solve, how it is trying to solve them, under which conditions it'll work (and most importantly, under which it'll not work), what are the drawbacks of the approach, what are some alternatives etc

#

One way or the other, this discussion was not on topic for this channel to begin with (would fit only in off-topic)

spice elm
#

so will it stunt my growth if i ask it to outline the code structure of my project?

tame dagger
spice elm
#

0

tame dagger
#

Then yes, it'll stunt your growth (is my opinion, of course)

spice elm
#

i am taking a course right now

#

ok can you tell me how can i learn how to like organize my code? I need to create a project ( i can send the specifications if you wish ) and i do not know how to start

tame dagger
#

You're basically asking: "Should I give a 1st grader a half-broken calculator when they're trying to learn addition?"

tame dagger
#

The answer is going to be specific to whatever you're trying to do and whatever tool you're using.

spice elm
#

ok thanks

#

@tame dagger last question , using it rather than stackoverflow to solve problems

#

would that detriment any skills

tame dagger
# spice elm <@738234281146712084> last question , using it rather than stackoverflow to solv...

This is just my opinion but: You're just starting off. Do you want to really understand and know the subject? If so, then don't use SO or GPT. Use references/documentation such as what you find on https://www.python.org/doc/, or from a tutorial like: https://python.swaroopch.com/. It's OK to be stuck on a problem and have to think / research your way through it, or come ask #python-discussion for a hint.

spice elm
#

i mean i do appreciate any coder with experience advice

#

but i am just afraid ill be left behind when there are ways to progress in coding faster. For example, i do not know how to do this requirement in my project. I am tempted to ask chatgpt ho

tame dagger
#

It's not a race. Speed isn't the goal: understanding is. If you want help with that, open a help thread, someone will surely give you the hints you need to get started!

#

(also, gpt is terribly flawed and gives wrong answers... but even if it only gave right answers, I'd still say this)

sturdy thorn
#

ChatGPT literally makes everything slower. It's a terrible system.

quiet violet
#

Which gui do you recommend for getting started in python?

weak mortar
#

It is the standard GUI library

old bane
misty dirge
#

This isn't about pedagogy.

sage sundial
weak mortar
misty dirge
weak mortar
#

bruh

#

im sad

void ermine
#

hi guys i am finding a person who will study with me machine learning,my timezone is vienna gmt+2,pls dm m

misty dirge
#

Topic: Bootcamps. We usually talk about them from the perspective of whether or not they're a viable alternative to a university education, or for preparing one for a career change. Setting those aside, how do they approach teaching, if any general statements can be made about them?

grand vault
#

how do they approach teaching
imo they almost always prioritise practical skills and real-world applications, aiming to make students job-ready in the least amount of time possible..
This means they oftentimes skim over the theoretical side of things or even straight up omit them. Eventually this means the student will need to discover and fill in the gaps themselves afterwards.

While on this topic, I recently encountered a candidate who went to a bootcamp where they did peer learning, i.e. no lecturer, no teacher, no syllabus, no thing, just student teaching each other as they start their programming journey. I originally thought this would be a disaster, but he was on par with the average candidate tbh..

misty dirge
grand vault
long narwhal
#

I would guess bootcamps operate is highly dependent on who is giving them
On that tpoic: I am quite curious as to who is actually teaching at bootcamps.
University professors used to have virtually no pedagogy background, this is now changing and pedagogy is becoming a standard part of PhD and postdoctor programs (at least in northern Europe)
It would be interesting to know what qualifications (formal or informal) the teachers at bootcamps have (although I expect there to be huge variance between different bootcamps!)

molten canyon
#

"Proactive learning" vs "reactive learning" to describe two differing learning styles, one in which you learn first and then apply during executing, vs learning as you attempt to execute, does not seem to be a popular concept, yet I find it to be a useful distinction

worldly dewBOT
#

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

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

tame dagger
molten canyon
tame dagger
#

Oh, more about motivation/interest. Yah, I’m the same. It’s hard to learn without purpose

weak mortar
molten canyon
jolly night
# tame dagger I recall some papers arguing against the whole “learning style” stuff. For examp...
molten canyon
jolly night
molten canyon
#

Hell yeah

tame dagger
#

Thank you for sharing. What comes to mind here is maybe motivation styles vs learning styles. People are motivated very differently. Reminds me of a quote from the founder of Montessori, which now I can’t find a citation for but as I recall it’s something like; we complain when kids aren’t paying attention: but it’s not that they’re not paying attention: they’re just paying attention to something they’re interested in.

jolly night
#

they're always attending to something

azure sable
#

Hey lads, sorry if this is a question that is repeated a lot. But I am wondering, as I am on the beginning of my Python learning journey, if I should put additional effort into knowing the basic very well. Aka, knowing right away how to do the tasks that the Crash Course gives me, or if it's better to just move on for now, even though I only understand the basics that the the book is teaching me but I couldn't replicate it without googling or looking things up?

#

Yes it is

stray bluff
#

btw im also a beginner, what are good projects to practise with (so u know my level i made a kg to pounds converter)

misty dirge
#

This channel is more about approaching education as the one doing the teaching, but if you feel like you can't complete the earlier tasks, it might be that the basics will click as you proceed through the material.

stray bluff
#

cant i have a cooldown

#

like 3 down or around that

azure sable
stray bluff
#

6 down

azure sable
#

Sure, although i feel like I kind of got my answer from the combination of yours and Stelecrus's

#

Sooo, thanks guys!

stiff pilot
tame dagger
tame dagger
misty dirge
#

Topic: Pedagogical simplification. Teachers commonly need to teach simplified versions of concepts to avoid overwhelming the student with the full complexity of the concept. For example, when teaching for loops, one might say that loops are for repeating a block of code for each item in a container. And while this is true, the reality is that they're for iterating over any iterable (which is a circular definition), and iterables could be a lot of things with dissimilar properties (like lists vs generators).

What's particularly of interest for me is how things can be simplified without setting up the student for future confusion when they learn the true extent of the topic. As much as is possible (and it might be that it's always possible), the student shouldn't be taught a simplified version of a concept that contradicts the full version.

Can anyone think of concepts where this is particularly difficult, and how you overcome it?

tame dagger
pure fog
#

i also think it's really important to at least mention to students that "there are various kinds of loops, but we are going to start with the simplest case and build up from there"

#

that way they aren't blindsided by new ideas. one of the things that always drove me crazy was when i had no context for what i was learning

#

fwiw i don't think loops are a particularly good example, i think most people i've helped here and elsewhere usually grasp them quickly enough

#

sometimes simplification is also a matter of presentation rather than simplifying the actual content

misty dirge
#

it's not loops that I think are difficult to simplify--it's iterables.

pure fog
#

ok, sure. so i'd say that you absolutely must start with 1) something the student already understands intuitively (looping for a single list), and 2) a motivating example for why you might want to generalize

#

it's very likely that students will already have encountered range() early on, and glossed over what it is. so now you can revisit range() and say "here's this funny range thing, it's not a list, so what is it?" and from there you can go into an explanation of how python actually works by calling next() on an "iterable" over and over

#

sticking to known concepts and examples i think is really valuable, gradually and carefully generalizing one piece at a time

#

this is something that repeatedly kicked my butt in linear algebra. we went right for the moon in some of these topics, going straight for the axiomatic definition of the vector dual space without any buildup for why you might care about this dual space thing

pine quartz
#

One I think happens a lot is with decorators - for some reason tutorials on those seem to immediately go to the standard way you implement them, with closures and nested functions. So you end up trying to simultaneously explain first-class functions, nesting, closures, possibly star-args.

pure fog
#

it's also the downside of trying to staying focused on practical problems, sometimes there is some distance between the pure essence of an idea and its practical applications

#

i actually wonder if callable classes would be easier to teach than nested functions, in the case of decorators

pine quartz
#

I do think callable classes would be better to teach yeah. Definitely do each of the steps individually, not all at once.

old bane
# misty dirge **Topic: Pedagogical simplification**. Teachers commonly need to teach simplifie...

I think this comes into the difference between people who learn a C-like language first or python first.

For someone who already understands the underlying concept of a loop, specifically a for loop with explicit bounds or conditions (for (i=0; i<10; i++) and while ...), building on this to show them that the python interpreter can iterate over iterables because iterables provide the information the interpreter needs to wrap this behavior is easy.

It's also hard to teach this to someone learning python first without either starting with a non-idiomatic example of loops, oversimplifying because python has hidden the underlying detail from them, or showing what is happening behind the curtains slightly by leaving python code for a moment to describe how iterables actually work under the hood.

#

I actually think python hides so much foundational knowledge that's still of importance that it can sometimes make for a poor choice of first language despite being so (relatively) easy for someone to start with because they can get what they need to done but not have learned enough from doing so to always build on that, but that's a bit more strongly opinionated, and I think there are ways that those teaching can still avoid those issues.

finite obsidian
#

context for eivl

There have been many cases where I have blatantly listened to a person, or read a number, but relayed the number incorrectly, most often mixing it up with a different number I heard before, or switching specific numbers.

#

For example, recently I was looking at a timetable for rooms, and I read a room number "12", but it was actually "11" when I checked it again.

#

In order to ensure I remember a piece of information, I have to constantly repeat it to myself to juggle it in my speech center.

#

If I don't, it usually falls into obscurity.

#

This is usually a problem when you have to remember a one-time password, or follow instructions given by somebody else.

#

I distinctly remember a time when another student asked me to check a room number, let's say "28". And I checked room "18", returned, and then awkwardly admitted I didn't remember.

#

As far as I'm aware, I'm also unable to visualize images on command, or do the same with sounds.

#

I asked my family some questions about this, and found that my Mother gave similar answers.

#

I think this would also be a plausible explanation as to why I struggle to recall what people say to me, and sometimes struggle to recognize people, or draw objects.

sick current
finite obsidian
#

Get this! I have another example!

sick current
finite obsidian
sick current
finite obsidian
#

In order to write your name, I had to find it, constantly mouth it, and type it.

#

Otherwise I couldn't.

sick current
#

are you able to read a word up side down?

finite obsidian
#

Well, maybe? I don't consider that a quality of life skill.

#

Okay, just tried, I don't think I can.

sick current
#

i cannot at all

#

some can

#

the brain works differntly for people

#

my wife can read up side down

#

she also are not able to see the differences between a p and b

#

because to her mind, the letter is the same letter, so it confuses her

finite obsidian
#

I'm willing to accept that I have my own skills, I just have no idea what those skills are, or if I can put them to use in the modern world.

sick current
#

a mind that can rotate any object in 3D, in their head have something called dyslecsia

finite obsidian
#

?

sick current
#

so they tend to write words incorrectly

#

and read words incorrectly

finite obsidian
#

Oh, I see what you mean there.

sick current
#

their mind just are differnt

#

people with adhd has problems with focus

#

and not problem in a negative way

#

i mean, unable to at will direct focus

#

or turn focus off

#

here is an example from real life

finite obsidian
#

It's a problem, because the world is not typically designed to work with people with these specific traits.

sick current
#

im driving on the road, my wife sits beside me and said, there (on the field) is a group of deers

misty dirge
#

is this conversation continuing from another channel? can you say what the topic is as it pertains to teaching?

sick current
#

i have no idea to even notice that when im driving 60 miles an hour

sick current
finite obsidian
#

Today I went to a lecture about team exercises, and failed to confidently remember the names of the two people I met.

sick current
#

so what im saying is that you have to adjust how you do something to fit your own mind and not listen to advice from people that dont know there are other ways of learning

finite obsidian
#

I mean, I guess that's a given.

sick current
#

im writing some discord commands that will edit my text and show you some C_OL on the screen

#

alright,, i see that i can change the word i write without much effort, just need to write the commands in anotepad

#

we are going to do a word reading game

finite obsidian
#

Alright?

sick current
#

WORD

#

i will show a word on discord, like this above, and after 1-2 seconds i will change it to a new word. you just read them, try your best to remember them, but do not write them down

#

i will show something like 30 words, and your task is to try to rememeber as many as possible, 1-3 words is perfectly fine

#

but do not write them down, i will let you know before i begin and when im done

#

if that makes sense

finite obsidian
#

Okay, sure. Should I give myself a period where I stop focusing on the word, to verify that I'm actually committing it to memory?

sick current
#

no, it will go by fast

finite obsidian
#

Okay.

sick current
#

as fast as i can change the word on discord, doing it manually might take a few moments, but i think not longer then two seconds

#

ill just write up the list of words and let you know before i start to write them for you.

finite obsidian
#

Gotcha.

#

Am I allowed to mouth them?

#

Like, repeat it continually?

misty dirge
#

Please move this conversation to off-topic.

sick current
#

sure

misty dirge
old bane
# misty dirge What other cases can you think of for Python being a bad language for education?...

I think python is "Fine" for education with the caveat that either the person learning already has certain foundational knowledge, is the type of person self motivated to go learn why things are a certain way when it may not click from only what they are presented, or if the person teaching it takes extra care to ensure certain topics are still touched on.

I think those topics would vary somewhat based on the goals, as well as what depth they should be touched upon at different levels of learning, so it's hard to have a general reccomendation here.

To your point on static typing:

Do most developers need static types? probably at some point in their career, even if it's just enough to write a small bit of cython to speed python up.

What about library developers making sure their stuff plays nicely with type-checkers? Yeah, they need to know a bit.

Do most developers need a strong enough understanding of type theory to know why monadic designs suffer in error handling or how to design a type system for algebraic effects? No, even very skilled Haskell developers manage without algabraic effects.

tame dagger
noble aurora
#

I don't think static typing is necessary for the purpose of learning type theory, but because it helps to make type errors more local

misty dirge
# old bane I think python is "Fine" for education with the caveat that either the person le...

I don't think ones first language should have static typing to prepare them for use of a statically typed language in industry, or because there's some inherent virtue in knowing advanced type theory. I think that being mindful of what the types are of everything in ones code (or what properties everything can be expected to have, in duck typing) is critical for understanding what your code is doing, and that Python beginners struggle especially because they can't articulate what names in their code refer to beyond some general (typeless) description of what it's intended to represent.

old bane
#

I think C is simultaneously the best and worst language for someone to start with, but it's a really hard case to make. If I look at what I've had to re-teach habits wise on people that have been onboarded at my work that started with python primarily:

  • they had weak understandings or partial misconceptions about types
  • they often had poor design patterns when it came to anything concurrent
  • they often reached for subclassing when function reuse was more appropriate

I didn't notice the same from new hires that had experience with any amount of functional programming or with Kotlin

tame dagger
#

In terms of Python being a bad language for education: the two areas that strike me as possibly harmful is the lack of primitives & arrays (which help a student form an intuition around the underlying system), and the lack of free threading / GIL: which interferes with certain parallelism topics. (I'm not saying it's bad, just expanding on the prompt)

old bane
#

The amount of abstraction and "just use this library" hampers understanding of vectorization, hardware primitives (even just knowing they are there, even if you don't need to be the one calling them directly), designing data to iterate efficiently, etc

#

all things you don't always or usually need in python, but that you dont even get a basis for from it

tame dagger
misty dirge
#

are we talking about data science beginners? because I think that DS-python is like its own language

old bane
#

No, but the amount of "data science" code I've had to rewrite for speed is also disconcerting.

tame dagger
#

(in this discussion, I'm imagining a freshman CS major trying to gain an intuition around programming rather than a hobbyist or self-taught)

old bane
#

I think it applies to self-taught, as well as people learning through something like a bootcamp rather than a full degree program. The full degree program should cover the other things in some way at some point, but python still may not be best as the first language for them. I'm not sure it applies to the hobbyist or if it does, in what ways it would differ.

dire reef
#

Some time ago probably a lady made a page where the user could guess the execution time for certain Python scripts - some kind of game, like: guess how much time takes Python to send 100 http requests. It was pretty educational. But now I can't find the page.

Maybe some of you know the link?

viscid merlin
#

the fact that there is under-the-hood object stuff going on shouldn't matter

#

just keep that a secret from the beginner

misty dirge
# viscid merlin the "primitives" in python appear as primitives to beginners, right?

If someone is a complete beginner, they don't know what a primitive is or why they should care that they're different from objects. Likewise, I don't think beginners would find it remarkable that lists and ints are both objects, if objects are just "things" according to their understanding.

BillyBobby's point is that understanding how primitives and memory-block arrays work is important for understanding how memory works in general.

viscid merlin
misty dirge
#

I don't entirely disagree

viscid merlin
#

python is great because it lets beginners jump straight into learning programming, rather than having to learn all the under-the-hood magic we do to get the rocket ship off the ground

#

learn what an array is, conceptually, before you learn about how we encode it using electricity signals in transistors

old bane
#

The under the hood stuff does actually matter though, and when we pretend it doesn't because we are trying to keep things simpler, if there's never an effort to point out that this was a simplification, you get people who learned "as long as it works, who cares?"

At what point we say "oh it doesn't matter right now" and how we say it (or worse, don't) both matter.

The ideal would be not to start with programming at all, but to start with logic, algorithms, functions, and data structures. Jumping straight into programming isn't ideal at all except from the perspective of an impatient learner, and while I think it's "neat" that python has a lot of ways to get things done quickly, I think this makes it a worse language to learn with, not a better one.

to the point about memory layout, it matters in python code bases as well, and rears up in numerical code with numpy and with loop ordering in general. But the person who only learned python and was told they don't need to know that for python will be stymied as to why their code is so slow when they get to this point.

misty dirge
old bane
#

Depends, is this part of a full course program or is this "how quickly can we teach them everything they need and will likely need"?

misty dirge
#

switch out "programming students" with "CS students"

#

(I'm not saying those are synonyms)

old bane
#

Logic, Algebra, Calculus, Statistics, Linear Algebra, Algorithms, Data Structures... Functional Analysis (I can keep going in terms of things which are useful for CS students on just the software side, and CS is broader than that)

In terms of which of those would be "before writing any code" , Logic, Algebra, and their intro level programming courses should have a primer on the importance of algorithms and data structures even without getting as deep as a full course on those would.

#

What I'm getting at here isn't that they need to know everything from the bottom up, but that when we go out of order for the purpose of learning, we need to be mindful of what we skip and what we tell students when something potentially important is skipped. Python makes for a much harder time of doing this both as a student and as a teacher.

students who know a bit of python already may be frustrated by the non-idiomatic python used to teach
teachers may have a hard time contriving appropriate examples of the things that are skipped because of how much python does for the user.
students may miss something that would click much better for them if it was taught when it would be relevent in another language.

unborn skiff
misty dirge
unborn skiff
#

...language agnostic programming is like the base of pedagogy in coding ... or maybe is the 1st course of learning (opinion)

misty dirge
#

hence "real" machine code dont exist in python ... can i get a debate on that?
if you want to debate whether or not python byte code qualifies as machine code, that is not related to pedagogy.

unborn skiff
#

well quiq q is it?

misty dirge
#

I don't know.

unborn skiff
#

where is the slow channel where are discussed the basics of a language?

misty dirge
unreal hull
#

In descending order of importance (subjective):
Software Design by Example https://gvwilson.github.io/sdxpy/
Python Design Patterns https://python-patterns.guide/
Problem Solving with Algorithms and Data Structures using Python - https://www.openbookproject.net/books/pythonds/
How to Think Like a Computer Scientist: Interactive Edition https://levjj.github.io/thinkcspy/
The Architecture of Open Source Applications Vol I + Vol II + 500 Lines or Less https://aosabook.org/en/
Object Oriented Programming in Python for Mathematicians - https://object-oriented-python.github.io/index.html
Understanding Recursion Using Python - https://understanding-recursion.readthedocs.io/en/latest/index.html
Web Browser Engineering https://browser.engineering/
Software Design by Example https://third-bit.com/sdxjs/
Python for Everybody 2023 - http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.pdf [PDF] , https://www.py4e.com/html3/ [HTML]
Think Python 2015 (a bit dated) - https://www.greenteapress.com/thinkpython/html/index.html
Python 3 Patterns, Recipes and Idioms by Bruce Eckel https://python-3-patterns-idioms-test.readthedocs.io/en/latest/
The Little Book of Python Anti-Patterns https://docs.quantifiedcode.com/python-anti-patterns/index.html
Think Python: How to Think Like a Computer Scientist - https://allendowney.github.io/ThinkPython/ - 2024
Producing Open Source Software - Karl Fogel - https://producingoss.com/en/ - 2023
Obey the Testing Goat! https://www.obeythetestinggoat.com/pages/book.html
The Debugging Book: Tools and Techniques for Automated Software Debugging https://www.debuggingbook.org/
The Fuzzing Book: Tools and Techniques for Generating Software Tests https://www.fuzzingbook.org/
https://www.cosmicpython.com/book/preface.html
The Proficient Pythonista https://spookylukey.github.io/proficient-pythonista/ - 2025

Coding Challenges - https://codingchallenges.fyi/challenges/intro

Published Python book reviews: https://www.youtube.com/watch?v=MqywbqLmjp4

slow leaf
#

Hey there guys, i got A question, have anybody here learn from codeacademy? Cause i want to buy yearly pro plan and learn backend starting with python, i są w that there are lessons for almost anything that i would need to start looking for work but i still Wonder if its worth it so i cake here for your opinion, cause i tried their trial of pro and i like it very much

fair sail
#

!!!

#

dead channel, but probably because pedagogy is mostly a solved problem in Python?

misty dirge
#

No? If you have a topic in mind, go ahead and propose it.

jolly night
fair sail
#

It's more about asking, like, what is typical Python pedagogy, since I think this is something Py does extremely well.

misty dirge
#

typical python pedagogy as compared to what?

jolly night
fair sail
#

Sorry, I hope you don't see me as hostile?

#

It's that, Python is very popular as a language because it's very easy to pick up, which is a combination of language and ecosystem design as well as, I assume, a cultural focus on teaching.

jolly night
fair sail
#

I'm guessing the answer to your question is more, is Python being taught in a formal academic environment or an informal or personal environment?

#

For the latter, it's obvious that practice first would be preferred, whereas for the former, you want theory first.

#

Would this be an accurate assessment?

jolly night
fair sail
#

Obviously, there will also be situations where practice-first might be preferred academically, and situations where theory first might be preferred personally.

#

For instance, Python courses intended for secondary-school students, or Python courses intended to get scientists up to speed on Numpy etc for their work.

#

I'm also assuming the theory-first approach focuses more on sanitation, and less on practical coding, whereas practice-first can often discard code sanitation practices.

#

Eh, I hope I haven't caused offense, nedbat?

#

You're saying it's more a matter of personal taste rather than context?

vale current
#

yeah, how people learn can be pretty subjective

#

I do think that hands on stuff should be fairly prevalent regardless - you get better at programming by programming

#

as for how much theory and practice play in respectively in different environments, I dunno if you can really tell which ones are more prevalent.

fair sail
#

I'm wondering if this is more situational; for instance, since it's relatively quick to pick up Python, moving into algorithms early on might be viable, and you have benchmark decorators available.

#

It's more, from my side, as a Haskeller, lots of stuff isn't practical fast enough on our end, and it's sort of adapted to target audience. End result with us is that the student knows FP, then walks off to a different language looking to use FP idioms.

#

From what I've seen in general Python channels with you guys, it seems as though a lot of the time people aren't well-equipped with theory.

misty dirge
#

FP?

fair sail
#

Functional Programming.

#

A friend of mine professionally cleans up Python code by amateurs.

#

I.e, when the codebase is too gnarled up, he gets called in to clean it up and refactor.

misty dirge
#

I wish that was my job

misty dirge
fair sail
#

He likes it, because he's good at Python, he knows how expressive and powerful Python can be, and he's regularly exposed to bad codebases written by people who aren't proficient.

#

At least, earlier introduction to algorithmic complexity, concepts of program design, etc...

long narwhal
#

An equally valid question is why those codebases your friend works with exist in the first place
I'm guessing the people who originally made them have some particular knowledge or skill?

fair sail
#

Yeah, I'm reexamining my assumptions.

#

You have no constant crises in pedagogy; end of the day, you're extremely strong in just building basic digital literacy.

#

So the code bases were built by domain experts who weren't necessary professional developers.

#

If it were done by professional developers, you wouldn't have the understanding of the domain.

#

Likewise, stripping out theory to minimize friction in software construction is desirable for the same reason.

long narwhal
#

The faculty at STEM universities are generally aware that the students in a wide range of fields would benefit from more programming
At the same time, it is unclear what domain courses to remove in order to make way for more programming courses.
Also: many students learn a decent amount of programming on the side, so the student body has very varying levels of programming proficiency, making it difficult to design targeted courses.

fair sail
#

So it's interesting how you're facing different pedagogical problems than others, wherein the challenge is simply to teach in such a way that the language is compelling. 🙂

#

Likewise, IIRC, there's an MIT project that seems to be able to "superoptimize" Python code during compilation 🙂

tame dagger
unborn skiff
#

those days

misty dirge
unborn skiff
#

ohh

#

theres a rule for it?

misty dirge
#

Yeah, be sure to read the channel description of any channel before using it for the first time.

unborn skiff
#

like define pedagogy

misty dirge
#

methods and practices of teaching (this is in the channel description)

unreal hull
unborn skiff
#

what is the difference between py2. and 3. as a programmer pov ? ... like i ask from low end

misty dirge
unborn skiff
#

i want 2 pedogizeze myself

unborn skiff
#

i can do tiktok on som 4chan wat was ur point and what was my q?

#

no in my mind i teach u so pedagogy

misty dirge
#

I don't really understand what you're saying. this channel is for talking about techniques for teaching. not for the actual act of teaching.

unborn skiff
#

if u cant answer u redirecting me to bs channel is not py way ...

#

ohh so u admins teach moron like me ... manners ?

misty dirge
# tame dagger As far as I've seen from US universities, they prefer a practice-first approach....

This is the most recent on-topic message

As far as I've seen from US universities, they prefer a practice-first approach. The first semester freshman year CS course is: "intro to programming" (in Java or Python), with a fairly hands-on curriculum that mirrors that of AP CS or some of the popular ebooks (not very different from A Byte of Python). Theory is then followed up second semester with a DSA course.
If this interests you, please keep the discussion going.

misty dirge
#

No more of this. Please stop displacing on-topic messages.

unborn skiff
#

or how do u do pedagogy? ... like tell me as a child what is a teacher

#

... like who can see a problem there (maybe it is not):

#

ask a pedagogical mindset who owns ur code that is dunned in an vev .

misty dirge
unborn skiff
#

i dont have questions ... is just a statement

#

cant get what u dont get ... like there are known knowns ... ohh i know them ... is and will be a pedagogical q 4 ever ... like when u get payed 4 a line of code .. ull get it

#

ill stop spamming

#

rn

worthy rock
#

Hey, my university teaches C in the first year and then in the second semester Haskell, what do you think about this? (I think it's great and I feel like I learned a lot from that, I just want to see other people's opinions lol)

worthy rock
steady anchor
#

tbh, learning C is necessary for every CS-major student

worthy rock
steady anchor
#

alr

steady anchor
#

that's cool

#

in my country, most of the people learn C in the beginning then learn a object-oritented language next

#

I am a teacher and in my faculty, those students learn C++ in the second semester

worthy rock
#

But it is interesting to learn them, it teaches you to think at a low level

steady anchor
steady anchor
worthy rock
#

Yeah, I think most universities at some point see it when they look at computer architecture

steady anchor
#

computer architecture is one of the 4 basic CS lessons

#

but this lesson is not easy for education bcz it demands high level equipment for the experiment

#

under this circumstance, most universities only offer theoretical part of the lecture

#

and you need to be knowledgeable on electronics somehow

#

all in all, the most very important and basic lesson must be data structure

#

bcz it lays the foundation on algorithm study and practice

#

and algorithm is very important in programming

tame dagger
tame dagger
# steady anchor China

Interesting, what you're describing sounds more like what we'd call computer engineering in the US (C/C++ first plus emphasis on electronics / computer architecture/etc).

steady anchor
#

but what makes me annoyed in my systems is there are some old stubborn professors just offer outdated or inappropriate textbooks to students

tame dagger
steady anchor
steady anchor
#

and those sample codes are still filled with bug

steady anchor
#

named "TanHaoQiang"

#

so more students are forced to learn C and Python on Bilibili

tame dagger
#

It's funny, even 30 years or so ago for me, my first language in college was Pascal... then followed by C++ (and some Lisp). US system hasn't really changed much.

steady anchor
#

Pascal is classic

steady anchor
#

some aged data structure tutorials are implemented by Pascal

tame dagger
#

Does the Chinese university system emphasize DSA at all? I ask because: Leetcode-style questions have become very popular in "big tech" company interviews. I've been wondering how that would affect university educations: as more students worry about DSA, will colleges also emphasize it more?

#

(the tail wagging the dog, I guess we'd say)

steady anchor
#

bcz they just teach within their teaching assignment

#

those students only review DSA when they have interviews

tame dagger
#

That's how it is right now for US, as far as I know, mostly a DSA class in 1st or 2nd years.... and a lot of individual studying when prepping for interviews. I've been wondering whether the "leetcode frenzy" will push its way into universities.

steady anchor
tame dagger
#

Oh absolutely, the curriculum's really haven't adjusted, and I think there's a fair criticism that many programs are weighted a ~~little ~~too theoretical and too little practical. Theory is important, but you don't really grok (understand) many things until you have to use it. I've interviewed many CS grads who failed fizzbuzz style questions.

steady anchor
#

fr

old bane
#

I wouldnt call it "trouble", DSA being taught helps avoid some really really terrible choices when it comes to performance, it's not "just theory", it's highly practical.

steady anchor
tame dagger
steady anchor
steady anchor
old bane
#

I think if you're calling fizzbuzz a DSA problem and not just a "BSer filter", you're setting the bar too low.

tame dagger
tame dagger
steady anchor
#

And ofc, the quality of teaching should be part of KPI

#

Here, I also have to highlights an issue that most of the Chinese students and even teachers are not good at English

#

making them ineligible to most of the updated materials

tame dagger
steady anchor
steady anchor
#

for those graduate students, they use translator for reading papers

fair sail
steady anchor
#

alr

#

cz for functional progamming, I know C a little bit more

#

and C is popular in embed system

fair sail
#

你在什么地方?(Where are you?)

steady anchor
steady anchor
fair sail
#

深圳附近?(vicinity of Shenzhen?)

steady anchor
fair sail
#

Sorry, just practicing my Chinese. And yeah, you were discussing the Chinese educational system.

steady anchor
#

abt 60-70 km like that

steady anchor
fair sail
#

I can see why you'd see it as significantly distant, I'm in Beijing for medical care right now.

steady anchor
#

alr

#

medical imaging is part of my current research topic

#

I hope I can publish a good paper on segmentation

fair sail
steady anchor
fair sail
#

Or Tsinghua?

steady anchor
#

or the top 2 in Shanghai or ZheJiang University

fair sail
#

Ah, so it's more like, average unis are a bit retrograde

steady anchor
#

yup

fair sail
#

Fudan / Jiaotong or Zhejiang University in Hangzhou

#

I see

steady anchor
fair sail
#

I mean that just in a descriptive sense

steady anchor
#

bcz high quality education is pretty difficult to be achieved

fair sail
#

I get annoyed when systems overly emphasize top-end education. As to your preceding comment: and require resources too

steady anchor
steady anchor
#

you have to know most of the well-known scholars only wanna go to the top-end unis

steady anchor
#

they heavily rely on translation

fair sail
#

Yeah, you're in a system where Tsinghua can be ranked higher than any Western university, but you also have stuff that's closer to India

unreal hull
#

I have a question: I wonder why game programming is so widespread as a "teaching method" when it's such a yarnball of complex techniques.
Personally I don't think it has pedagogical value, it's more of a long-term.. career track.

long narwhal
twin egret
#

this, its less that video games aren't the best beginner project, but they're a very enticing and flashy one, learning to make a game sounds much more interesting than learning to webscrape or analysing datasets
That, plus the fact that there are so many different levels of difficulty and projects that are all just "making a game" means you can make it as simple or as complex as you want - a CLI rock paper scissors counts as a game, as does a lunar lander clone, as does a 3D multiplayer game

misty dirge
# unreal hull I have a question: I wonder why game programming is so widespread as a "teaching...

my undergraduate software engineering course had us develop an Android app. And the instructor insisted that it wasn't a UI/UX or Android course, and that developing the app was only a means for applying the various design concepts learned in the course. but I think having to develop the app introduced way too much complexity and detracted from the actual learning goals of the course.

so I agree with you that that sort of thing is a bad teaching technique. I think it's a misguided effort to make the process more exciting for students.

long narwhal
#

There is a principle called constructive alignment which says that it should be clear to the student how the learning activities, learning objectives and evaluation are related.
In your course, it sounds like the learning objectives were not well aligned to the learning activity.

I have seen an example where pygame has been used to teach students about the traveling salesman problem, adaptive programming etc.
The students were supplied a working game, where two AIs would compete to collect the most rewards in a maze.
The students were then tasked with making AIs that, at the end of the semester, would compete against each other in a tournament.
In this case constructive alignment was achieved by supplying the students with everything they would need except the part the course was teaching them about.

tame dagger
# twin egret <:this:470903994118832130>, its less that video games aren't the best beginner p...

It reminds me a bit about how students struggle with Calculus... not because of Calculus, but because of Algebra skills. I think the current "standard" curriculum of a 1 semester "intro to programming" class followed by a DSA class (with little reinforcement of what they learned in the intro class) is akin to pre-calc: not everyone walks away with the skills they need for the next level.

#

I'm not sure what I'd do differently. Would love to see more "connection" between courses, where skills are reinforced, rather than the very disjoint nature of most CS curricula.

dusk vapor
#

I think it'd be pretty good to just get the mechanical aspects down first, which is very difficult to get students to do unless you gamify it... so gamify it?

final crow
#

I Have this prompt for an extra curricular outside university:
Activity Planning: plan a half an hour activity for a Year 10 pupil, to help them develop a skill they will need to be successful at university.

the 'skill' i want to teach them is the ability to not boil things down/ understand nuance/ stuff isn't black/white thinking. think outside of binary things. understand that shit is both logical / illogical at the same time, majority of life is inherently contradictory / hypccritical - want to teach them this? like show how everything is interlated / like yes this is academic (maths problem), but also philosophical, etc. how everything intertwines in on itself etc.

what is the name for this 'skill''?? is it called: (thinking critically???)
i feel like that's too vague / to much of an umbrella term tho i'd like a better name for it and i swear there is one i just can'tt think of it.

misty dirge
final crow
#

i was just spitballing but do u see what im tryna get at?

#

is the term for this lateral thinking? or do u have any idea of a better skill to teach that im missing or a better name for the skill that im tryna currently explain

final crow
#

critical thinking but that seems so vague icl but ya ig that's waht it boils down to

misty dirge
#

please remove your question from this channel and ask it in #career-advice

misty dirge
# final crow critical thinking but that seems so vague icl but ya ig that's waht it boils dow...

You might also call it "thinking outside the box". I would come up with a less controversial example (and this is not an invitation to discuss the topic itself in this server), but a debate in US politics that obfuscated by bad terminology is abortion. It's "boxed" as there being "pro life" (against abortion) and "pro choice" (supports abortion) sides, when in reality, people who are "pro choice" might oppose abortion in certain situations, and people who are "pro life" might support it in some of those same situations.

final crow
#

than 'thinking outside the box'

final crow
oak breach
#

fuzzy logic /j

final crow
#

IM NOT Tryna teach them to see patterns necessarily
i want to sorta teach the opp. like yes there are patterns and yes they are true and form the basis of logic
but sometimes there are outliers exceptions?
but then at teh same time logical shit forms into illogical shit
and it all collapses in on itself ygm
and tahts life?

#

maths --> logic --> illogical / abstract philosophical bullshit

misty dirge
final crow
final crow
#

academic school skill(math) --> philosophy (abstract - applicable to stuff outside of academic settings / general life /guiding principles)?

misty dirge
pine stratus
# final crow do u think my activity plan idea is bad? i shldnt try to get them to solve a mat...

I think methodical thinking, rather than critical thinking, is what you are looking for. A really good example of it is in chess. Without methodical thinking you won't get very far, your moves will be random and maybe 1 step look ahead. With methodical thinking you have a set of heuristics (that you keep checking) and planning. Methodical thinking is very useful in critical thinking (this is when you get to philosophy of reasoning (deduction, induction, abduction, analogical, fallacies, etc)).

#

For example a simple method in chess is to check these things in order: checks > captures > attacks/threats > defense > development of pieces. And combine that with piece values: pawn = 1, bishop, knight = 3, rook = 5, queen = 9. Then when planning ahead, compute the end result value of the moves (are you positive or negative in the end after it's all done?).

#

So there is a method that you follow, rather than waiting for thoughts/ideas to pop up in your mind (any method, even if not perfect, is often a lot better than none).

#

(For stuff such as politics you may have a method involving asking: Who is getting paid by who? What are the incentives for all parties involved? etc (maybe even some game theory if you want to take it further))

final crow
#

i dont have chess with me that i can bring and im not well versed in it

#

so i was thinking of trying to teach them this thru a simple maths problem cus they all need to know maths for their exams and stuff

final crow
misty dirge
#

you also switch between first and second person. Is the hypothetical follower of these instructions "you" or "I"?

misty dirge
#

"How will you know if the activity has been successful?" And then later on you said "I don't have to beg for answers"

final crow
#

I only say I - should only be first person I think hmm

final crow
misty dirge
# final crow i guess i'll take out 'I' cus the lesson plan can be used by others not just mys...

It's not about who can use the lesson plan, it's just about what pronoun you want to use for a hypothetical person. Some languages have a specific pronoun for this, but English does not. It's typically either "you" or "one".

For example, "One will know if the lesson is successful if one doesn't need to beg students to answer questions".

This same sentence can also be said with "you" instead of "one".

final crow
#

and it reads fine

misty dirge
final crow
#

it doesn't have to be gramatically correct necessarily it's bullet points / brief; im refering to this lesson plan but i'll be presenting it ygm? so it's more about how i speak / present it

final crow
misty dirge
#

I think the content is fine. Though I don't have any formal training in education--I just like to talk about it as it pertains to programming, since I do that a lot.

final crow
#

do u understand the justification points im tryna make? but im not phrasing it right idt. and the brief definition is not brief and it's very weak..

#

the entire thing ideally would be a bit more concise as well (im not putting the ill say this whilst presenting ) into the activity paln im just providing you with context

final crow
#

also this:

calm ridge
#

whats pedagogoly

misty dirge
calm ridge
#

ok

glacial tulip
#

there's a possible way to make a big app without oop?

misty dirge
pure fog
#

does anyone here have any preferred tools for teaching Git? i already refer people to the Pro Git book https://git-scm.com/book/en/v2, as well as https://learngitbranching.js.org/.

i find that some people really struggle with the concepts and need a lot of reinforcement and spaced repetition that focuses on the core mental models (dag of commits, branches are references, commit contents vs patches, etc) and tying them to the CLI commands, and i have no systematic approach for handling that.

solemn isle
#

guys I have a question, im going to present a program to some classmates and industry professionals. I was planning on getting them "hooked" to my presentation by explaining how it works, and asking them questions for them to answer throughout the presentation. What do you think of this method of presenting information and teaching it to others?

long narwhal
gloomy thicket
#

I want the best resources to learn and understand python I read books but they kinda focus on what seems to be random topics like pypdf and tkinter
Or they're pretty basic

misty dirge
gloomy thicket
#

Ok

#

What is it for tho?

misty dirge
crystal stratus
pure fog
crystal stratus
# pure fog thanks! i played through the beginning of it the other day but i wasn't sure how...

I see what you mean. I guess it’s a matter of viewpoint, you can view the arrows as pointing to child commits (as they do currently) or you could have them reversed, pointing to the parent (as you suggest). I think I would prefer them in the other direction too, but it doesn’t seem to be a big issue for me.
For me, the main selling point of this game is that you have a direct visual feedback of the various git commands. It helped me to get a better understanding of what happens under the hoop when I use a give git command.

silver patio
#

Hey everyone,

I've been getting into the weeds with deliberate practise a lot and I've noticed something that's missing when it comes to discussions of teaching programming/python; a concise description of what "expert" looks like. What are the skills/abilities that experts have that differentiate them from someone like me?

I say that as someone who is trying to go from amateur to someone who can actually do something worthwhile. What makes Peter Norvig or Abelson different from a plebian like me? I've tried to look it up and I haven't found a worthwhile list/resource online. I'm wondering if anyone has thought about this here.

queen heron
silver patio
# queen heron I'd say it really boils down to experience and exposure. They've been in more si...

Yes, that's true, but it's also true for anything. For example, I've been studying esports too and I've been taking playing FPS games seriously. I didn't grow up playing them. I first touched them when I was in my late 20s (ty pandemic); so I've come in cold.

What helped me was breaking down precisely what professional players do that normal players don't.

— Fight isolation, not just picking a fight with the enemy, but making sure they pick a fight where there is one enemy instead of many, the enemy is isolated,
— Window creation, the post professionals often "slice the pie" and they create narrow windows that allows them to do the above isolation, https://youtube.com/clip/Ugkx4fRs0VkG-U9brYFWd_TEuTHmZSW8QlFt?si=kJFLRNh-vC9IXww6 <---- example here
— Whole arm aiming, they train themselves, very deliberately to use their entire arm to aim rather than just the wrist etc. It's a sequence of, finer movements with fingers, snap adjustments with wrists, large movements with the whole arm
— Comms/Communication, working with their peers to relay a lot of information in tiny windows of time
— Movement, they learn how to "move" their character properly to take advantage of the game's physics engines and the boundaries of what it can do. This allows them to, for example, side step out of the way of someone's crosshair before engaging with them
— Using movement to aim, it's hard to always move your mouse in a deliberate way onto the enemy's head, it's easier to learn how to move in such a way that a) you sidestep them and b) your movement does your aiming for you.
[etc.]

I can go on, but as you can see these are specific skills that are things anyone can learn, you might not have the "raw aim" or talent that some of these insane teenagers have but you can learn these specific things and become better than 99.99% of people.

YouTube

60 seconds · Clipped by areoform · Original video "12 Things to Learn from Demon1" by SkillCapped Valorant Tips Tricks and Guides

▶ Play video
cloud rock
#

Wait You can developing in riot for yourself?

silver patio
#

Could you explain what you mean?

cloud rock
#

I heard about riot develop

#

I'd like to ask: Are cybersportsmens developed it for theirself?

silver patio
#

And knowing these things, breaking down the mechanics and what the fundamental skills truly are, has helped me quite a bit. I've rapidly progressed at the FPS side from someone who couldn't hold a mouse properly and aim straight to someone who can hold her own against the 99th percentile of players.

I'm not good enough to be the 99th percentile, but I've gone from the bottom 5th percentile to the 60th percentile.

I want to apply these observations to programming and becoming good at Python specifically, but there's this paradox here, there's a lot of material on learning to code etc, everyone has a theory, but there's no definition of what the precise set of skills/abilities that distinguish pros from amateurs looks like.

silver patio
cloud rock
#

That is, they developed some of the details in the valorant with the help of riot development?

misty dirge
#

@cloud rock this channel is for talking about teaching techniques, so if you're talking about something else (game development?), please go to an off-topic channel.

silver patio
# cloud rock That is, they developed some of the details in the valorant with the help of rio...

No, not generally no. There's a large ecosystems of analysts, statisticians, coaches etc who do this. Riot doesn't help with such things.

What I'm trying to talk about is what deliberate practise looks like, and I've learned that for the practise to be deliberate + impactful, it needs to start with an idea of what the end state is, what distinguishes those at the peak of their craft from amateurs etc.

twin egret
#

if i were to have to quantify/categorise a few key skills that more experienced programmers tend to have, the ability to communicate and cooperate with others easily, and the ability to lookup and learn things quick are probably two things associated with experience

silver patio
#

(for something mechanical like a FPS where peak performance is more or less clearly seen, it is absolutely easier to list specific skills. But I want to digress and point out that there are things that are likely to be stuff that ordinary programmers don't/can't do but someone like Norvig does)

twin egret
#

I can't say I know much about Norvig, but if he's apparently someone who specialises in AI, then the big difference between his knowlege versus a typical programmer's is probably mostly just academic and theoretical knowledge around that topic

#

that's another thing to mention - programming and computer science is a big subject involving many specialties, so there are gonna be many people who are experts at one thing but not at others, there's less of a set path of "overall good programmer"

silver patio
#

Going through that as someone who doesn't really know how to code much and isn't really good at it and is terrible/horrible at it, here's what I think he has that I haven't seen in other people,

— Fidelity & depth of modelling, he seeks to understand what he is building at a granular enough level that he's able to decompose the idea that to understand what's the most probably correction, we should understand two separate but important things, how likely a mistake is AND how common the "correct" choice is.

— He understands how and where to pare down the choices/computations his program makes, in the spellcheck example, he uses the words list to restrict the candidate model to a search through a much smaller list.

— He knows where his model is limited and where it goes wrong, in this case, it's because he's considering edit distance of one versus possibilities with multiple edit distances.

#

— He has a deep grasp of python as both a language and as a tool and is able to concisely put his ideas down,

This is his spell checker in its entirety,

import re
from collections import Counter

def words(text): return re.findall(r'\w+', text.lower())

WORDS = Counter(words(open('big.txt').read()))

def P(word, N=sum(WORDS.values())): 
    "Probability of `word`."
    return WORDS[word] / N

def correction(word): 
    "Most probable spelling correction for word."
    return max(candidates(word), key=P)

def candidates(word): 
    "Generate possible spelling corrections for word."
    return (known([word]) or known(edits1(word)) or known(edits2(word)) or [word])

def known(words): 
    "The subset of `words` that appear in the dictionary of WORDS."
    return set(w for w in words if w in WORDS)

def edits1(word):
    "All edits that are one edit away from `word`."
    letters    = 'abcdefghijklmnopqrstuvwxyz'
    splits     = [(word[:i], word[i:])    for i in range(len(word) + 1)]
    deletes    = [L + R[1:]               for L, R in splits if R]
    transposes = [L + R[1] + R[0] + R[2:] for L, R in splits if len(R)>1]
    replaces   = [L + c + R[1:]           for L, R in splits if R for c in letters]
    inserts    = [L + c + R               for L, R in splits for c in letters]
    return set(deletes + transposes + replaces + inserts)

def edits2(word): 
    "All edits that are two edits away from `word`."
    return (e2 for e1 in edits1(word) for e2 in edits1(e1))
#

That's... impressively concise and clear at the same time.

twin egret
#

that brevity and clearness of the code is definitely another good indication of expertise, i'll say that - being able to write so-called "clean code" that follows common conventions is usually a pretty good skill to have, though being able to define that exactly is it's own entire can of worms

silver patio
long narwhal
# silver patio Going through that as someone who doesn't really know how to code much and isn't...

The word 'expert' does not have a specific meaning. If someone claims to be an expert, it is up to you to evaluate if their claim is warranted.
You are of the opinion that norwig is an expert (I don't disagree, but it is the first time I hear the name).
You then point to specifics, to argue why he is an expert (fidelity, understanding etc.).

You asked the question: what makes someone an expert?
To me, it seems like you have answered your own question, by pointing out the reasons why norwig is, in your opinion, an expert.
However, there are many types of experts, and other people will be programming experts in ways that are different than norwig.

twin egret
#

I'd say one overarching thing there in the spellchecker and associated write-up is how he's able to link together the theoretical side of how the program is meant to operate with the actual code of it. He's taken some knowledge of probability theory (and a bit of information theory), combined it together into a theoretical idea of how to make a spellchecker (choose the most common word that's within 2 edits of the misspelled word), and has then translated that over into fluent, easy-to-read python code

#

so there's probably another thing to add to the list of good overall programmer skills, being able to connect theoretical knowledge to practical application, as vague and word soup-y as it is

#

also like i mentioned earlier, being able to learn and pickup concepts pretty quickly is something rather important, which i'm fairly sure norvig's also showing there

#

No one person is forever going to be able to keep tons of probability theory and all of the knowhow on how to make an interpreter actively in their head at the same time, so I imagine the creation of that lisp interpreter involved having to do a lot of research into how interpreters actually work (which itself touches on quite a lot of theory)

#

unfortunately though, basically all of the skills i've been mentioning and singling out as good indications of expertise are all things which are kinda hard to specifically search out and gain, these aren't exactly directly grindable in the same way something like bettering aim is

#

they're all ultimately things which come with, well, experience

odd mirage
#

Is anyone using video to teach? I'm currently looking for good recording software that can e.g. zoom to a specific part of the screen (or a way to do it in post) to highlight parts of the videos.

long narwhal
#

I've been using OBS to record and Kdenlive to edit.
Both will allow you to zoom.
I'm on linux so Kdenlive was easy for me to set up, but there might be better alternatives out there, especially for windows/mac

old bane
#

kdenlive is pretty easy to set up on windows too, but if you don't like it for whatever reason, davinci resolve is free for non-comercial use. If you're on windows, https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit is pretty nice for live presentations, can zoom in in real time and annotate the screen. I believe OBS can pick this up too.

Presentation utility for zooming and drawing on the screen.

shrewd sentinel
heavy orbit
#

I've just heard a quote from Leslie Lamport and thought it fit beautifully here:

"Programming is to coding what writing is to typing. Writing is a mental effort, you're thinking about what you're going to say. The words have some importance but in some sense even they are secondary to the ideas. In the same way, programs are built on ideas, they have to do something, and what they're supposed to do is like what writing is supposed to convey. If people are trying to learn programming by being taught to code, they are being taught writing by being taught to type, and that doesn't make much sense."

tame dagger
heavy orbit
# tame dagger I love it but struggle with the last sentence... how do you teach someone to wri...

Lamport preceded that quote earlier in the video by saying "One of my epiphany moments as a computer programmer was that I wasn't writing programs, I was writing algorithms."

In this way, coding is the medium between the ideas of the algorithm and the construction of the program. "Coding" itself is easy, there's a reason experienced programmers can translate so well their knowledge from one language to another. That being said, "coding" and "programming" are separate skills. A "programmer" is a creator of algorithms. Programming is enabled by coding, so it needs to be taught. The dissonance here is the common trap subpar "programming" courses fall into, trying to teach programming by teaching coding.

In other words, you need to know how to type to write (digitally), but learning to type does not teach you how to write. Whether you are teaching yourself or others, it should be understood that learning the medium to accomplish your job does not equate to learning how to accomplish your job.

tame dagger
heavy orbit
foggy oasis
#

100 days of code, jobs prospection and dev roadpath

I'm currently on day 17, doing 2 days in one. I found the course pretty basic in the beggining but at my current day I found difficult doing fast as I was doing...

What the anons find of this course? Have better ways to speed up this process?
After I make all the project she put on the course is possible I found a homeoffice job as a dev?

long narwhal
unreal hull
#

Pertaining to Pedagogy

misty dirge
unreal hull
unreal hull
#

@misty dirge your opinion on this quote please

native hearth
#

random quotes or shorts without context arent that conducive to discussion for any topic
the boy on the video has not learned anything other than that his version of "boomers" are just abusive

vale current
#

!warn 1010614094753185952 don't recruit people here.

worldly dewBOT
#

:incoming_envelope: :ok_hand: applied warning to @void ermine.

solemn isle
#

guys what do you think is the best way for someone to learn something new and be able to dedicate themselves in it?

misty dirge
solemn isle
#

oh shoot mb

#

then lemme change my question then

#

how would you teach someone something new and actually have them be curious and dedicate themselves in that subject?

misty dirge
#

You can't make someone be curious or dedicated if they aren't or don't want to be. There might be teaching techniques for maintaining or increasing curiosity.

misty dirge
solemn isle
#

what about if that person is curious about that subject. How would you teach to them to actually retain the information you give them?

misty dirge
royal dove
#

To build on what I mean; curiosity can act to help with retention. And there might be correlation between the two. But there is arguable causality between the two.

solemn isle
#

oh ok

#

I asked my recent question because of an experiment that was done by NASA to find out how geniuses are made. and results from that experiment were that schools were giving people intelligence but decreasing the "genius" within them. So to conclude, I just wanted to know what schools are doing wrong in a pedagogical sense.

royal dove
# solemn isle I asked my recent question because of an experiment that was done by NASA to fin...

To once again oversimplify complex problems. The answer to "what schools are doing wrong" is closer attuned to "not enough resources/funding". There are flaws in school systems and their style of teaching. But the blame is not solely placed on the instructors. It is equally the fault of the infrastructure for students and faculty.

But even ignoring that. I feel like I am missing something. How does this NASA experiment have anything to do with your line of questions?

solemn isle
#

it just made me wonder, how can we develop more geniuses? if results from NASA's experiment showed that school systems teaching styles are affecting negatively to this creative part of us humans(also accounting for what you just said), then what are some ways we can teach to have an increase in more geniuses than a decrease.

#

sorry if my line of questioning is confusing

#

i will work on it