#pedagogy
1 messages Β· Page 14 of 1
i didnt used to either but i thought i should practice "tutoring" and this is as close to it i can get
I did tutor someone in person who was either stubborn or just didn't "get it" no matter how much we went over the same thing. For one whole semester I just tried to grin and bear it and remember that he was paying me like $80 for each 1-hour session. But after that I couldn't stand it anymore and decided that I was done tutoring.
not me trying to find a volunteer tutor gig to fill up my free time lmao
I think you have better things to do in your free time than torture yourself for no pay
Unless you're tutoring disadvantaged kids, that's a noble enough pursuit that I would consider it worthwhile volunteer work. But personally I wouldn't be into it.
The most important aspect when I help people like that is just be patient. I haven't read the session you gave as an example, but I have encountered what I think you're explaining.
I think that, at some point you'll eventually find yourself in that position too; it happens for everyone. It's not necessarily a personality trait but more-so a situation one gets stuck in (and some people put themselves in this situation more than others).
We might actually be talking about the XY-problem.
It can be hard to spot, but once you do and categorize it as such it's much easier to help. Most of the times, someone will have trouble expressing what they're trying to do and why (because it isn't clear to them either), or they will try to and realize that their solution doesn't make sense.
I think that's when you get in that situation, because you feel like you know the solution and there's just this very tiny bump you can't get over... when in reality you're on top of a hill of playing cards.
So really, the best way to help is probably to help identify the actual problem and then come up with a solution for that. Otherwise, what they may be asking for could be impossible or isn't very satisfactory. It's like going into a maze and instead of going back to the middle and asking for directions you're asking someone to give you directions when you're already lost in a corner somewhere
The way out of the maze will be more messy than had you started from the middle.
it sounds like you're saying, unions are not completely finished and ready for use
Huh? Bee, FarmArt, and I were talking about how unions are very hard to statically analyze. Not that they don't work.
yeah, I remember that question too, I didn't know they may have been related
you can check out a help channel, see #βο½how-to-get-help
(this channel is the wrong place)
@sage jasperno worries, the message I deleted was a reply to another message, that could have been at least a half hour old (and the person is/was gone anyway)
The function takes as argument a list of marks scored by students in Programming.
You are required to implement the function such that it computes the number of
students who have scored B in Programming, and returns that count.
Note that marks 70 - 79 are assigned grade B.
this isnt a help channel, read the instructions in #βο½how-to-get-help
look at the pandas api. some parameters can be dicts or functions or booleans or strings
to be clear, I think pandas generally makes valid use of such interfaces, but when beginners do it, it tends to be absolute chaos
and i think even in the case of pandas, it's pushing the limits of what you can reasonably do with static types
i spent many hours attempting to write correct type stubs for it. it's possible but you have to use a lot of overloads
obviously a true statically typed programming language, with strong type inference and multiple dispatch built into the language, makes this a bit easier
Every time I write ```py
if isinstance(...):
inside a function, I die a little inside
right
to be fair, this is what pattern matching was supposed to fix
at least in part. my argument against pattern matching is that it doesn't actually help you structure your programs differently, it's just syntactic sugar
whereas in ocaml & friends it's somewhat more tightly integrated into the core language, but ironically in those languages it does not support adhoc polymorphism like in python or other "traditional" type systems
it also arguably makes more sense in languages that explicitly promote and support syntactic and data structure uniformity, such as lisp derivatives
but back to the polymorphism topic, in principle of well-designed application provides a highly polymorphic (but well documented and statically typed) interface, but internally dispatches to individual functions with "stricter" types
The point is that, with static types, you can't "accidentally" build an interface like this. It must be a deliberate design decision
It also has the usual benefits of eliminating categories of errors like "oops I returned the wrong thing"
as I understand it, the annoyance of statically typing APIs like pandas is why apache spark favours scala, it is a powerful enough type system to deal with it without too much annoyance.
I think even the experience of learning to consider such situations as "errors in software design" as opposed to "oh that's just how I wrote it" is valuable, which is why I think some hands-on experience with static typed is good for programming education, even if you intend to spend most of your time working with dynamically typed languages
I assumed they chose scala because the system is built on the JVM and it was supposed to be the new hotness in 2012 π
that is also an option, yes
I would also argue, perhaps controversially, that learning the wonders and power of a really good type system helps you learn to not try so hard to make Python more sophisticated than it is, leading to stupider, safer, cleaner, better python code
Python is never going to be haskell or clojure, don't bother!
(I know there is a persistent arrays library but I don't know how well it performs, and it's certainly not integrated deeply into the language like in clojure)
at the same time, you do want to avoid this kind of thing (go), which is the alternative to passing a number of flags to a function.
valid
but if all of those things return different types, then maybe it's necessary. in which case i would suggest that maybe the type structure has been overly specialized
(what language is this)
golang
I did once have a colleague suggest writing a function to return different types depending on its input parameters. I was like, "um, no"
(and it was not an abstract factory)
why is this bad?
You'll need to spend extra effort on understanding what kind of value you're getting when the function is called. Especially if the "flag" is not statically provided
Also, it won't play nicely with static analyzers/type checkers
Example from Python: re.findall returns either a list of strings or a list of tuples of strings, depending on the regex. This function is really awkward to work with, and its return type is specified as list[Any].
list[Sequence[str]] /s
vaguely recall typecheckers special casing for str to not match Sequence[str]
Yeah hence the special casing :p
I don't think that's the case
str is perfectly valid Sequence[str]. I don't really like that we don't have a special character/codepoint type, but oh well
hmm i misremembered
there's issues about it though https://github.com/python/mypy/issues/5090
Realizing that 30 years later doesn't change much really. Embrace the cringe you always embraced, but now with more love.
this person left the server. ||also your face is cringe.||
Anyway, how do we feel about having beginners use IDEs?
Against: It's important for beginners to understand how to edit and run code from a terminal, because they'll need this ability in the future anyway, and it's more difficult to teach retroactively than to present it as the default assumption. it's also difficult to help beginners with environment-related issues when their environment is being managed by a GUI that they don't actually know how to use.
For: IDEs help beginners see and learn from their mistakes, and that is good.
It's important for beginners to understand how to edit...code from a terminal
Could you explain what you mean by that?
well, I don't actually mean vim/emacs. I should have said "edit code with a simple text editor, and run it with a terminal"
I wouldnt recommend something like pycharm, that can be overwhelming at first, even more so for someone new to computers in general. Thonny is pretty beginner friendly on the other hand
I think an IDE is good for beginners, as it helps highlight important concepts such as indentation and other syntax problems, but most IDEs do a little too much as well. Linting and venvs create a lot of problems for beginners who don't even know where to start with all that
Half of the help channels are basically venv questions
(The other half d.py π€‘ )
But I certainly agree on the running portion. CLIs are a huge part of how you interact with Python (and general programming) tools, and learning to use them is most certainly necessary. Personally, I use an IDE and then run the code in a separate terminal.
Overall, IDEs are specialist tools, in the sense that they do a whole bunch of stuff that most people don't understand if they haven't had prior exposure to the concepts. A lot of the features in IDEs are absolutely wonderful, I think they just need to be introduced incrementally.
idt the point is specifically writing code in a terminal, but to have general proficiency with using a terminal
yeah, I figured that's what Stelercus meant, but I was wondering if there was something good about terminal editors that he was thinking about
use vim from day one. evergreen skill
although terminal editors are nice in the sense that a lot of functionality is opt-in. they start out pretty minimal at a glance, and there are different ways to activate different features (whether that be keybinds or config files or whatever)
/s btw
Bad advice?? Banned
you're banned π
that's unironically a good idea as long as you're willing to go through some pain
idk about that one. maybe if you only stayed in insert mode. dealing with a relatively frustrating editor + learning something hard might be annoying. although it doesn't take that long to learn the basics of vim, maybe like 20 mins
I'm specifically talking about these benefits ^
Well, with vim or emacs, you do have to end up learning more of a framework for working with and configuring the editor
Which imo isn't really ideal, even with whatever incremental feature benefits they may have
I think a barebones editor + standalone terminal is a good way. Let the editor catch some basic syntax errors with linting, and run the code from the terminal. PyCharm does too much for people starting out and ends up being more confusing
what about vscode? I wouldnt be against recommending it
I do suggest it, as its an editor that is extended to an IDE in my opinion
I'd be more against recommending Spyder and PyCharm for beginners
Why VSC and not one of the other IDEs?
Pycharm I'd be against recommending
Personally, I think it has the same problems as the other ones, but now you've gotta configure it by installing a bunch of plugins yourself π
It's a single plugin, and your good to go
It doesn't have anything like auto venv creation that pycharm does
That's not what 90% of help questions say
And the interface is fairly intuitive
my only beef with pycharm for beginners is the default venv, i wish that was opt-in
A lot of beginners have venv questions for VSC
where did you get that stat from lol
I have seen a fair bit of problems with multiple python installs and pip
It was an exaggeration, but yeah I do see a lot of venv questions
I agree, but I don't think that that's because of VSC, unlike with PyCharm
Hm that's interesting
How do people keep ending in that situation if VSC isn't setting it up for them
It's not exactly easy to accidentally type the command for creating one π
Well, VSCode doesn't auto create venvs, so I'm not sure? Maybe they're gravitating from another editor like pycharm which does, and they can't figure out the venv
you are cringe
@weak mortar @weak mortar see #βο½how-to-get-help
I am a beginner in programming, but I like to learn python.
its a great language to learn then
ditto
the IDE interpreter setting / IDE using venv but user isn't, pip / python interpreter using different versions, Scripts folder missing from path, venv not activated or not used when installing packages are the common problems I usually see
Anyone recommendations on what kinds of python exercises I could be doing?
@twin geode I think a good idea is to work on something you personally find exciting or interesting, maybe start a little personal python project
i dont know if this is the right channel or if theres a pinned post in some channel but ive heard people saying pycharm is bad for begginers. im a beginner and i've been using pycharm, so far i dont think it has any issues, but i have no experience of other IDEs which may be more efficient for me to use
I don't think PyCharm is necessarily bad. There was a discussion in here a few days ago about whether IDEs make a good beginner experience or not. I think the main difficulty is whether you understand how to set up virtual environments and activate them appropriately. It seems this is the greatest source of confusion for beginners, that is exacerbated by trying to deal simultaneously with the complexity of an IDE.
we were actually discussing that in this channel a few days ago. the discussion starts here: #pedagogy message
Correct me if I'm wrong but isn't a IDEs job to make programming simpler? like identifying errors and autofilling text
yes, but there's a learning curve, that's all. It's tricky to learn programming and learn your IDE at the same time. But I don't think this is necessarily bad, I love how the IDE takes care of all the little details
makes sense, I'm willing to put time in and learn both, but should i switch from Pycharm to thonny as a different user here suggested?
I have no idea. At work I use PyCharm, and I think it's brilliant. At home I've been using VS Code. Both VS Code and PyCharm CE are free, but PyCharm CE doesn't do Jupyter notebooks or Cython, which is why I'm using VS Code.
There's #editors-ides if you want more opinions
Thonny is an IDE that's specifically geared towards beginners. It does some things that experienced developers would find annoying, but that beginners find helpful (like the way that it syntax highlights unclosed parentheses, or the way that it shows call frames in its debugger). It's also designed to gradually expose more complexity to you, to avoid overwhelming beginners with lots of options they don't need. So, I think Thonny is an excellent IDE for people new to programming. That said, if you're already using PyCharm and are growing comfortable with it, you don't need to switch. Thonny probably would have been a better starting point, but it's not the only option.
Any tips for how to get motivated again when you stopped studying.
Any time I try to get back into it, like staring at a brik wall
what is recursion?
this channel is for discussion about how to teach computer science, but you can open your own help channel from #βο½how-to-get-help
thanks
why do , self proclaimed , graduated electrical / computer engineers ask questions that pressume they know how to do research , yet they ask it ? - would you hire a engineer who could not do basic research ?
What do you mean?
Are you asking why programmers sometimes ask questions?
when i was in elementary school , i had a class , library arts , so .... they offer a name ... Thomas Edison , go find a book on him , tell how you found it , then write a basic outline about Thomas ... the lesson is . how to find info in a big library , then expalain about topic
i can give you a fish .... OR teach you how to catch fish ......
I'm not sure I understand your point. Whether looking up the topic in reference materials, source books, example videos, or speaking with peers it is all research.
the fastest way to research a thing to ask someone who knows the thing about it once you get to anything but the bare basics. And well, your goal isn't to rediscover existing knowledge, your goal to make working things.
"back in my day" - yes, I will open with this - we used libraries as the primary source of research. Internet wasn't too valuable back then. One the tricks you learned with library research was two-fold. First, you asked the librarian about the topic you were researching. Next, you asked others you met in the same area about what they were researching. Just because we asked others, in an open forum, does not mean we weren't doing our own research.
One of the best soft-skills out there for learning, in my opinion, is the ability to ask questions!
didn't you just ask a question right now πΌ also sometimes people just want to be sure
@tranquil zinc wow , very good .... you kinda get it
@sick flint your question is off-topic for this channel. kindly remove it and re-post it in #software-architecture
@misty dirge I looked at the definition of "pedagogy" -- "the method and practice of teaching, especially as an academic subject or theoretical concept."
I'll post there though.
this channel is not for teaching, it's about teaching
Fair enough.
@sick flint it's like the study of teaching... or the methodology of teaching.
what's a good procedural language to learn to introduce someone who already knows a language like python to procedural languages
I started with Bash (I figured there was a practical aspect to knowing my shell language better), but was that a good choice, and if not, what is a good choice? (if you answer please explain your reasoning and ping me in the response)
thanks
Python is procedural.
There isn't really an opposite of object oriented. And even though python has objects, there are lang
The are languages that are more object oriented than python
But if you want a big paradigm shift, try a functional language
Haskell has some cool features and ideas
I did..
I'm looking for good one to teach a beginner who has never seen any thing like it before
thank you
I will look at haskell
thank you for fixing my English
my vocabulary is bad and I get words confused so is a big help to be corrected
thank you for your help everyone
I appreciate
C is a pretty good example of a non object oriented procedural programming language. Rust is (arguably) another.
I am thinking c is hard to teach to beginners
with my bad English that makes teaching c hard for them to understand me
I will look at rust
thank you for your help
if C is going to be hard, rust will be way worse
Haskell would probably need a fair bit of effort to teach too
a lisp would probably be a good choice
oh or maybe elixir
im sorry but wtf is a pedagogy
^
Can someone please answer this stack overflow question: https://stackoverflow.com/questions/72522866/issue-with-addding-roles-to-people-in-a-server-with-a-discord-bot-leveling-syste?noredirect=1#comment128115164_72522866
this channel is for discussion about how to teach computer science, but you can open your own help channel from #βο½how-to-get-help
I know, sorry.
Guys I need Help
I need To know how to make image matching in python like in gta 4 or police verification systems
What really helped C "click" for me was coming to understand that, unlike in Python, data in C exists as a given location is memory, and to move it requires either literally moving it or copying it
It sounds simple, but when you're so used to objects floating around in the abstract like they do in Python, its a big mental leap
@honest temple your question was off topic. Try one of the off topic channels
yo guys, anyone knows a beginner friendly open source project?
you can go to #dev-contrib and ask how to help with our projects.
I'm thinking of offering a 1 week evening crash course in python. teach the basics. like 2h every evening in a group of 6 or something like that. Do you think, assuming I do a good job, that such a format is good? Or should I rather try and do personal lessons?
I know people want it because I keep seeing python tutoring flyers which are empty.
Hey guys what do you think about the current format of python tutorials? My interest here is mainly on beginner level. Personally the first youtube search results are extremely long or somewhat old videos that could use some revamp.
!resources we have a comprehensive list of quality tutorials on our resources page
The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.
(not sure if this is the right channel, please understand if I am wrong)
Has anyone else felt that FreeCodeCamp's scientific computing Python course is seriously lacking when it comes to their "Networking" chapter?
I haven't had problems understanding anything up until that point, where it all broke down? And the concept is soon forgotten after 6 videos. I was thinking, - if I ever need to use the "socket" library I'll just learn it from somewhere else.
Doesn't seem like that much of a must know for a beginner?
Implement the data structures and algorithms. If you can't implement them, you don't really understand how they work.
alright, so resources are needed?
not sure what you mean. you would need some reference to learn how the algorithm works.
ah yeah that, thanks
there is a book floating around
"Data Structures and Algorithms Using Python"
a pdf file
I would use this: https://github.com/TheAlgorithms/Python
and I would most certainly not use geeks4geeks
Hello! I really want to learn how to write code and master the python language, but I can't find free training and material. Please if anyone has links to learning python send me thanks in advance
!resources
The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.
Here are some more DSA resources in order of publication date @wind sierra
A First Course on Data Structures in Python, 2020 https://web.archive.org/web/20201112033724/https://donsheehy.github.io/datastructures/fullbook.pdfhttps://web.archive.org/web/20201112033724/https://donsheehy.github.io/datastructures/fullbook.pdf
Python Data Structures and Algorithms, 2017 https://web.archive.org/web/20210708010219/https://edu.anarcho-copy.org/Programming Languages/Python/Python Data Structures and Algorithms.pdfhttps://web.archive.org/web/20210708010219/https://edu.anarcho-copy.org/Programming Languages/Python/Python Data Structures and Algorithms.pdf
Fundamentals of Python: Data Structures, 2014 https://web.archive.org/web/20190715053337/http://bedford-computing.co.uk/learning/wp-content/uploads/2015/10/Fundamentals_of_Python.pdfhttps://web.archive.org/web/20190715053337/http://bedford-computing.co.uk/learning/wp-content/uploads/2015/10/Fundamentals_of_Python.pdf
Data Structures and Algorithms in Python, 2013 https://web.archive.org/web/20220412153422/http://xpzhang.me/teach/DS19_Fall/book.pdf
Data Structures and Algorithms Using Python and C++ , 2009 https://web.archive.org/web/20220614055628/https://gnanavelmeblog.files.wordpress.com/2018/06/data-structures-and-algorithms-using-python-and-c.pdfhttps://web.archive.org/web/20220614055628/https://gnanavelmeblog.files.wordpress.com/2018/06/data-structures-and-algorithms-using-python-and-c.pdf
Tysm
hi
!mute 983934401081647104 6h You were told not to spam, and decided to continue spamming.
:incoming_envelope: :ok_hand: applied mute to @sick iris until <t:1655241578:f> (5 hours and 59 minutes).
hi, i want to create document where i evaluate my tech knowledge with topics like, SQL, Security, Clean Code, ORM, Patterns, GIT etc and fill all my skill gaps
Did u advice any template or similar document that i can base
When i create and fill that document, i can ask my co-workers about rate my knowledge
also i can prepare projects or learning path based on this document
but no idea how to start ;)
something like this but for programming stack
Is Python Programming 2022 MOOC by University of Helsinki based on sound pedagogy?
Can't speak about that one specifically, but I have done some other UoH courses and they were excellent.
I actually really liked that course. I feel other UoH courses might be excellent too. But I was just wondering what even makes a course ' pedagogically sound '? Would you say the UoH courses you personally tried were pedagogically sound? And why or why not?
"pedagogically sound" as in "good" or "sound" as in actually like... audio?
as in " good " lol
BASIC.
(It's probably best to make a small language for teaching if you can't find one, a really simple one like BASIC or Logo)
What really makes it nice to learn in those old BASIC languages was that the environment was really simple. Drawing stuff on the screen and such was really straight forward. Doing the same in something like C is at least 100 lines now on a modern OS.
(A failure of OS design, but you can create a made up simple environment to go with the language)
Stuff like Goto actually makes more sense for beginners, and when they try to make more complicated things they will naturally end up wanting Gosub (structured programming). Procedures will make more sense for them (why they are wanted over Goto), and how to structure their code.
Idk if this is the right channel, and if it isn't please tell me which one it is but ive been learning python for about 14 days now casually, maybe half or one hour a day, I'm willing to put time into it but i feel like I'm making nothing more then just basic programs which takes a input and does a tiny thing to it, like calculators, randomizers, ect tldr it feels like I'm making zero progress and i don't know what to do.
If you feel like u need to build more logical progress in the domain, you should try and do some hackerrank or similar coding problems. This will help to boost your confidence regarding programming. After this try to come up with some project idea which you think is worth solving and try to do it in python. If you need help regarding any of the above mentioned paths, you know where to come π
I recommend trying some old Advent of Code and seeing how far you can get, when i was at that point in learning i found it to be quite fun. Don't worry if you can't complete the whole thing by yourself, it gets pretty challenging and covers a lot of compsci things you may not know yet. There's also plenty of well-documented walkthroughs if you get well and truly stuck. https://adventofcode.com
Also I'd get exploring some of the popular libraries on PyPI and seeing if you can think of any projects you can do with them. Projects are a great way to learn since they finally give you a purpose for the language you have learned and you can pick up a ton of specific knowledge you didn't have before
alright, ill take a look at both of the sites and see how far i go
after im done with my current project, thanks for the help ill send what i come up with in this server :>
I also got my start with BASIC and Logo, but that was ages ago. Surely there's something more modern that focuses on simplicity for learning
Yeah that is why I think one should make their own language, a more modern version that just removes all the annoying and strange things from those languages past. Logo had a lot of effort and thought put into it for teaching programming and mathematics, and I have yet to see another language with that level of effort and understanding. If a new language is to be made, one should probably study Seymour Papert's work.
Constructionist learning is the creation by learners of mental models to understand the world around them. Constructionism advocates student-centered, discovery learning where students use what they already know, to acquire more knowledge. Students learn through participation in project-based learning where they make connections between differ...
One important thing is the ability to learn more on their own from the language / environment that comes with it. Without even needing outside input.
(Many applications could benefit from this approach (even small things like good tool tips help a lot) (a built in implicit tutorial, not an explicit one that you have to follow step by step, non-verbal puzzle videogames do this))
Windows 3.1 came with some QBASIC games, where the graphics were drawn with ASCII art. I learned a lot by deconstructing those games and changing bits of them.
But we can do better. More hindsight. However, it coming with the OS by default is a really big deal. Defaults control a lot of what people do with their computers and it's why companies pay a lot of money to be the default option on phones and such.
(Despite Batch being really annoying to program with, I still see a lot people using it just because it comes with Windows by default)
(So maybe Windows should not be the default OS in schools (we can craft a specific Linux distro for example, probably the most simple solution rather than a whole new OS for now))
Other than Papert I would also listen to AK: https://www.fastcompany.com/40435064/what-alan-kay-thinks-about-the-iphone-and-technology-now
Does anyone have any particular tips on tackling logical challenges when programming? I know python is particularly easy to learn on due to it's syntax but sometimes mathematical challenges can be a bit of a pain since I have ADHD and I'd like to know if anyone's been able to work with it or a way to approach teaching people with ADHD
I like to work things out on paper first if they are complicated
sometimes just like drawing pictures and diagrams and stuff too
My main issues with for cycles and lists for example. even if I draw the idea I end up with a mess trying to have a for run through a list to get values
@marsh tulip your question was off-topic; try #user-interfaces
@simple urchin this is not a help channel; see #βο½how-to-get-help
eew discord mod
Whatβs the best way to learn data science and other programming languages or types
first take some basic things(variables-sintax-etc) then start making small stuff ,there is three rules:
1-dont be lazy
2-dont procrastinate
3-dont overwhelm yourself
how not to be lazy ? how not to be procrastinating ?
re the three-step plan:
best way to learn anything is to practice it
How to not be lazy and procrastinating? Do what's important to you, not to other people.
But this is a channel where we discuss how to teach programming, not how to learn.
I don't see a proper channel for this. Maybe #python-discussion, or maybe would be better to open a sibling channel named #programming-learning.
well, if someone has a python question, we have pygen, a slew of topical channels, and help channels
It's not a python question, it's about learning in general.
general advice on how to learn programming would be fine in pygen as well
there we go
there are "whats a good way to learn python", and "I'm a beginner anyone have advice" kinds of questions that pop up
Sorry if it isn't the right channel for this question - Do you think learning how to program in a specific "easy" language, such as python, is better for learning the process involved in programming in general? Since many topics are common in more than 1 language, I think that learning that topic in python (for example) will make things easier when learning the same thing in other ones.
I'm in doubt about it because I don't know whether it's better to focus on only one specific language and learn these general topics just from it or to go into all languages
Well, sure, having experience in a previous language will make learning other ones easier
A lot of concepts will carry over
so its fine to focus on python
Hi. Not sure if this is the right channel. I am currently working through 'automate the boring stuff' python beginner book (only on chapter 4). Is there anything you think I should be doing alongside this book or should I just go end to end then figure out the next step?
this channel is for talking about the practice of teaching, rather than how to learn. though to briefly answer your question, it really depends on what you want to accomplish for having learned to program. and that's something we usually discuss in #career-advice
thanks for the reply. I will head over there instead.
better for learning the process involved in programming in general
compared to what? a different language?
compared to learning a lot of languages at the same time. I think that focusing on only one language, that is easy to interpret, learning as much as you can, will turn things much easier when you get yourself in the same topic but in another language.
learning a lot at the same time sounds like an easy way to confuse yourself and make no progress at all
for example: imagine you have been focusing in python for a long time, then you already know how to deal with Regular Expressions. When you go into any other language, you will already know how it works. The same for any other common-topics between languages.
Because I see a lot of people who learn the basics from one language and already changes to other one, instead of getting really good in a specific one
the basics can also translate over
that sounds inefficient. if you do that, you can't really do anything useful, you can just do "hello world" in different languages
what
<@&831776746206265384>
:incoming_envelope: :ok_hand: applied mute to @dry yacht until <t:1655944517:f> (59 minutes and 59 seconds).
I focused on python for 2 years Trying to learn all about it and coding in general and after that it was easy for me to learn other languages
lik tjay got shot
Hi and welcome!
This channel is about the pedagogy and ways to teach. It's also an english speaking server.
Can you restate your sentence or question in english?
hows that not english
Your english does not have to be perfect, but it has to be understandable. And that's okay, everyone learns
what do you guys thing about w3schools?
Bad
And it was probably better to do it in python than in C, for example, right?
I think it works the same way as learning a new language really, some people find it easier to learn in a certain language and some in other the same way some people have it easier learning chinese instead of Spanish, for example
For example a friend of mine couldn't learn python even if he tried but he started learning Java and understood everything easily
I should say, instead of understood, nailed the syntax*
I can't imagine how someone without a prior programming background could find Java easier than Python, considering that Java requires you to embrace or deliberately ignore OOP right out of the gate.
That's why I'm considering that it's like learning a language
I'm not sure how it works, it just does lol
Maybe the syntax or the way in which they understand the explanation?
I'm a computational linguist, so I'm the most qualified of all possible humans to assess this, and my assessment is that they are not similar.
I'd love to understand if you'd like to develop
so, there are similarities between natural and programming languages, and they're interesting. but you can't really use them to draw conclusions about the other.
for one thing, with very exceptional exceptions, everyone learns at least one language starting when they are born
and ones ease of picking up additional languages in adulthood depends in large part on the similarity between their native language(s) and the target language
but no one has a native programming language.
So if I understand correctly, what you say is that despite some languages having syntactic similarities, it's not really defining for the languages and there's no way to relate it's syntax to anything else to understand it easily?
My brain's a bit damaged so bear with me lol
I never said anything about syntax. syntax is just one dimension of language.
I assume cause of the similarities part, mb
I meant with my initial idea that given some languages' syntax, perhaps it's easier for some to understand programming logic than with other languages
It happened to me for example when learning python, which I still am
syntax is part of grammar, as well as morphology, and probably other things that don't immediately come to mind.
For cycles and lists to me were super confusing due to their syntax but in Ruby they were super easy to grasp
another big hurtle in natural language learning is phonology, which is the sounds that exist in that language. a given language might have sounds that your language does not and which may be difficult for you to produce, or even distinguish between.
Right, that much I learnt when learning Japanese because syllables sound very similar to Spanish ones
But I guess what I really meant was in terms of logic in the syntax
Although I might be mistaken in that as well
What'd you study to become a computational linguist?
computer science and linguistics.
Is it like a master? Or just a whole career within CS?
I don't have a masters, no.
Here in Argentina we just have Engineer and CS and then just courses and stuff
syntax is what order different types of symbols can come in
and the different constructs that you can make
Right
and then what it means is semantics.
But that does change the difficulty among individuals no?
For example in my case with for and arrays
I couldn't ever get right the syntax when using for i in range(list) to loop over a list and whatever I wanted to do in a program
But in Ruby for items in names just made sense to me
And they're essentially the same afaik
not sure I follow. you're not supposed to do for i in range(len(list)) in Python.
That much I don't know, in the intro class the teacher taught that lol
if you're still in that class, see if you can drop out and get a refund.
I'm not anymore, my brain was struggling
at best, you had an instructor who didn't really know Python. at worst, they were also just a shit teacher.
I decided to learn on my own now, but anyways for a while I had this issue with the for cycle and looping over lists
Definitely))
I agree with this, I think starting with a programming language that revolves around some main "big idea" (that is enforced) that is meant to solve some problem previously encountered by others when programming is a mistake because that context is not there for a beginner. It's like starting with Rust and not having the context of why they went through all that ownership trouble, while you can understand the idea, you won't know its value (and if it's actually a good idea / implementation of it) unless you have encountered the problems the language creators had when using other languages.
Now for example my friend who's more advanced than me couldn't really get down the concept of classes in python but nailed it in java and kept on going with it
well, if you make a Java class that only has static methods, you haven't actually learned about classes in any meaningful way.
That much I don't know haha
Python's __init__ methods can be difficult to wrap ones mind around, but beyond that, Python classes aren't at a basic level more difficult than Java classes
Anyways my idea was that in some way languages turn out more appealing and easier to learn than others
Maybe I just can't quite put my idea into words
also, if they made a Java class that just has a bunch of getters and setters, and no methods that do anything interesting, seeing all that boilerplate code on their screen may have tricked them into thinking they had accomplished something.
(as you can see, I don't like Java.)
How so?
Thats fine, I'm a cobol guy myself for all the wrong reasons
I remember finding them confusing, but I don't remember in what way. and a lot of init methods just look like this
def __init__(self, a, b):
self.a = a
self.b = b
and this is very boilerplate-y, and one might think that Python should just know what to do based on the init method's signature.
Magic functions confuse me tbh, but I need to relearn them
you mean dunder methods? they're just called "in the background" at certain times.
a + b
# is the same as
a.__add__(b)
I see
That's literally dataclasses. Idk the way I understand to make classes they either being behavior or data orientated the boiler platey init you described is the data orientated variety for sure
it's hard to teach dataclasses to a beginner without handwaving
lol, I just took a look at the exercises I did for Introduction to Programming and our teacher taught us the same (I'm also from argentina):
def dondeEsta(lista, elem):
for i in range(0, len(lista)):
if lista[i] == elem:
return i
return -1
@misty dirge Wasn't just my teacher it looks like lol
Either teachers here in Argentina don't know python or this is valid but very crappy
Either way that always confused the crap out of me
my teachers used to say they wanted to teach us more general solutions to stuff, but yeah, it's kinda sad that they ignored some of the nicer stuff python had to give
Honestly all I ever hated was crappy mathematical exercises
like "Do a program that prints the fibonacci sequence, but it has to be completely manual and you can't use functions or methods"
can't relate because I tend to like maths
I don't hate them I just hate how they make one do them
What's the point of making a fibonacci sequence in a program and not using all tools available to you?
I guess they meant you couldn't use functions that came from a library? like, you could make your own function if you wanted?
Torture? lmao
No, it was like an intro class so even your own functions were not allowed
that's dumb
Only loops, conditions and that's it
tho I had a classmate that tried to use lists in every single exercise we did in my intro class even if the teacher didn't taught the class how to use them yet XD
a lot of Python instructors think there's some inherent virtue in thinking about list indices, and calling them "arrays" instead of "lists". I'm surprised this code doesn't say arraya instead of lista
hahah well there's that and there's also the fact that lista just means list in spanish XD
array in spanish would be arreglo not arraya :P
I thought it was "list a", to be followed by list b, etc.
yeah definitively, but at least in my case it was more of an introduction to programming class that just happened to be in python rather than a python class
nope, just the spanish word for list
It is now called Arraya, because yes
@weak mortar I DMed you a copy of your question and a link to the C++ discord.
ask in #python-discussion
@muted stream your question was off topic
isn't it for i in list for python?
sorry I don't do that much python, mainly do Java and C# so I can't remember
generally yes
It is but what he meant is that you're not supposed to do a loop "For i in the range of the length of a list"
I guess because it's a bad, crappy, or confusing practice π
it's an obvious leftover from more "traditional" (I guess?) languages, usually a dead giveaway that the author didn't bother learning Python's idioms much and just wrote Java/C++/<language> with Python's syntax. If you don't need the index, you'd just do for item in list, and if you do need it, you'd use enumerate: for i, item in enumerate(list)
That is, there are cases where rangelen is perfectly acceptable, but simple iteration is not one of those
@novel jewel see the message above this one
I usually call these C-style languages.
Makes sense
Your question is off topic for this channel, #python-discussion would be a better place.
But if you want an explanation, try running if-name-main in #bot-commands.
What is pedagogy
the method and practice of teaching, especially as an academic subject or theoretical concept
Then what is the difference between Python General and this?
Wait, so, by theory do you mean like general concepts?
this channel isn't for teaching, it's for teaching how to teach
Oh... Damn...
Pretty weird
Why not just return lista.index(elem);
Hello! My name is Karl and I'm teaching a class next semester. Could anyone give me feedback for my class (it's my first time teaching a class!!) https://lazy.rice.edu/
COLL 128 - The Art Of Lazy Programming is a class that teaches students how to master their Programming environment
because the teacher didn't like that kind of functions lol
True, but howcome she looped by index and not by element
not sure, I think they hadn't taught us to loops by element yet
but that is looping by element
it's constructing a range object and looping over the elements of that
although now i can see why i see learners who think that for _ in range(_) is one thing and not two
Your looping over a list of indexes.
when in reality for can occur without range and range can occur without for
actually not quite, in python 3 range is its own class, so range objects aren't lists
Let me reword myself, what I was saying is that why iterate over a range object rather then just iterating over the lista list itself.
Yo, I'm 16 I have gone over python before and know a few basics in school and now that summer has begun for me I want to learn python completely in depth π
that's a very good question, the answer is that there is absolutely no point
Good luck! Im currently trying to learn c++ over this summer.
I also have to learn c# for colledge
is it better to use list comprehensions? I find it to be more readable than using for loops
depends
I saw nothing hugely out of place, that said I am not sure whether you wanted feedback on any particular part. It all seemed very reasonable!
...okay, depends on what?
pretty much everything
you want to use a list comprehension when you're actually constructing a list, and you want to avoid having too much nesting
I think it's generally better if you find they solve the problem the easiest. Not that they are the first solution you come up with, but that they are the easiest way to solve the problem for others to understand.
I also really like list comprehensions and I use them wherever I can. I've found that for the most part they make sense wherever they fit because they are limited to one expression and one condition.
That said, sometimes I still opt for a normal list iteration depending on who I am showing the code. Newer coders may not have run into them yet, and it is unnecessary to introduce two new topics at once (the solution to the problem, and list comprehensions).
[[i if i > 3 else 10 for i in range(5)] for i in range(8) if i < 3]
``` for example would be better off as just a loop
which I guess isn't the greatest example, but I have written listcomps which end up with a similar level of nesting and conditions and starts to effect readability
I like this list comp. If it's perceived as unreadable in a code review, you could break it up into chunks
i like ur cut g
Ive found sonarlint is a good linter for this and ternary operator expressions
it also has some sort of metric for function complexity that shouts at you when its time to decouple the logic
What would be the best way of introducing someone to programming? (I.e., the very first thing they ever do in programming)
Iβm thinking starting with:
print("Hello, World!")
And then getting them to play with that, say switch it to say hello to them and their friends, and then printing other text to the screen.
What do other people think of this?
I think that's a great way, purely because it starts of with doing something. Being able to see the results of the code you write is very encouraging, and provides a basis for further expansion.
your first program has to be print hello world as an incantation to the programming gods
otherwise they'll just reject you until you do it.
hello, I'm brand new to python and I'm looking for someone who could help me do a whole thing because I'm lost
Lost is correct... Perhaps you mean to be in #python-discussion
Well, thats quite off topic. Anyways since we all started from somewhere, i recommend checking the official python.org docs and also try search for some python books. There are lots of free ones that are quite good actually.
Check this out https://docs.python.org/3.10/tutorial/index.html
actually on-topic: I think the official tutorial is a pretty terrible introduction to programming. It's a great introduction to Python for someone who already knows a language or two, but it moves far too fast to serve as a useful introduction to someone who has never learned a programming language before.
After some reading, imo the python docs are quite helpful in a way of extending the knowledge about specific topics. (A learning path most likely is applied at the course/book it self)
@pure heron . Srry for ping forgot to tap reply
I agree - I think the Python tutorial is pretty great at the intermediate level
if someone already knows Java or C or something, I usually point them at the python.org tutorial
@weak mortar @twin jackal @slender raft please refer to the channel description before making any additional comments in this channel
how to import ProfileReport from pandas_profiling in anaconda
this channel is for discussion about how to teach computer science, but you can open your own help channel from #βο½how-to-get-help
I'm currently using the automate the boring stuff with python book to teach myself python. What are your guys' thoughts on the book? I'm new to python and programming in general. What are other sources you guys would recommend me to learn python?
!resources
The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.
that's one of the books we recommend, though I have not read it.
my life is incredibly exciting and full of explosions and shit, so I don't have any boring stuff to automate.
So playing some print function here
Does print function allows printing int or float as its arguments?
Hello, I'm a little stuck on the Django framework. I have a mockup (a form in my templates) that a user dynamically creates by clicking a (+). The problem is that I don't know how to recover its data.
hey you'll probably find better help in #web-development, this channel isn't really for that kind of questions
yeah , sorry
How do I avoid getting myself into the situation of a tutoring student inadvertently trying to get me to do their assignments for them?
I met someone on here who I helped with a problem, and when I mentioned I was available for tutoring he was all for it
He talked the talk for the first lesson or two, but pretty soon it was clear he had no real interest in actually learning the material, and just wanted the work done for him π
You have same pfp as my YouTube channel
I don't think he actually realized that was what he wanted, and I know he was doing his best to get through it all. But it was awkward, and something I'd like to avoid going forward
@dim flint this is not a help channel. see #βο½how-to-get-help
Well, you could ask them to try and come up with some code after you've given them an explanation
When I've tutored people, I've refused to write any code. Or if I did write something, I would do it in a REPL in front of them, rather than ever saving it into a file.
I've answered questions for them, or I've given them assignments and asked them to write some code to solve those problems.
!rule 4 - You'll need to speak English on this server.
4. Use English to the best of your ability. Be polite if someone speaks English imperfectly.
The topic of this channel is how to teach programming to people.
Yes !
Are you American ?
yes, I am
but that's not on topic for this channel. This channel is about how to teach people to code.
if you just want to chat, you can use an off-topic channel:
!off-topic
Off-topic channels
There are three off-topic channels:
β’ #ot0-psvmβs-eternal-disapproval
β’ #ot1-perplexing-regexing
β’ #ot2-never-nesterβs-nightmare
The channel names change every night at midnight UTC and are often fun meta references to jokes or conversations that happened on the server.
See our off-topic etiquette page for more guidance on how the channels should be used.
This server is from the United States?
The majority of the staff is European AFAIK
Oh yes! Nice! But what is "AFAIK"?
As far as I know
AFAIK is an acronym for "as far as I know"?
Yep
AFAIK yeah π
Any tips on reading docs for python API and stuffs? I feel it harder to understand some of the stuffs that I read in the docs
Some of these docs are just hard to read, the tip is to read more and more so you have more examples of documentation
Imagine trying to get a beginner to google something python related and actually get to the docs and not w3schools, g4g or even stack overflow
There is a type of person who has more appropriate cognitive profile to programming?
I'm not familiar with research into that.
this channel is for discussing how to teach programming, so that's not relevant here
the off topic channels #ot0-psvmβs-eternal-disapproval #ot1-perplexing-regexing #ot2-never-nesterβs-nightmare would probably be a better place
@dense cipher see above comment ^
Dose anyone know how to fix pc shutting down every 5 min plz dm
this channel is for discussing how to teach programming, so that's not relevant here
the off topic channels #ot0-psvmβs-eternal-disapproval #ot1-perplexing-regexing #ot2-never-nesterβs-nightmare would be a better place
When teaching students web development; should I teach them variables first (in JS or in Python) or the core web essentials?
PS: The lessons are for beginners
You mean how to declare variables? Like the very beginner stuff?
Yes, how are you supposed to explain DOM access if people dont even know what an object is
Yeah, I don't see how not starting with programming basics makes any sense.
Everything else builds on that.
so
HTML, CSS, How to declare variables, DOM
yeah in order to write any javascript you have to know how the basics work
No, they need general JS tutorial, not just how to use const or let
Oh okies, thanks!
You might as well put all the web stuff on hold until the student knows basic programming.
Yeah, I thought that too
You could teach them HTML and CSS, but what's the point?
Quick overviews to get them out of the way but also keep them engaged with the ability to quickly put together something and see it in the browser
I suppose.
Oooh, lemme see if they can comprehend that
I can link my syllabus/curriculum here (incomplete):
https://docs.google.com/document/d/1VVo3gvamK3R5fTfeQx_TeLYiLg29dGCjAf03vAutOFQ/edit?usp=sharing
The curriculum/syllabus of learning front-end development by Gene Lorenz Sarmiento Heavily inspired by Scrimbaβs FDCP Curriculum Module 1 - Introduction to Front-end development and Basic Html Module 1.1 - Introduction In order: What are Web and front-end development and what is its importance? ...
For JS i would do the very basics up to objects
I would also skip classes, i dont think theyre that necessary
What is unnecessary?
Classes
They're not necessary for basic web dev, but you would want to introduce them once you start working with web frameworks.
Ah I see....
My classmate wants to learn React so....
my girlfriend took a beginner python course at one of these charities and they skipped so much lol
the course project was to use some web api, but they hadnt covered 3rd party packages or even classes in Python
first day of the project period and she was asking me what type this <Response [200]> thing is lmao
I think it's a good idea to get familiar with classes before you start with React.
you dont need classes for React, function hooks are preferred
That's the thing with webdev, there are just so many concepts and technologies involved, there's just no way to get a beginner fully up to speed with it in just a day or two.
Oh yeah I misinterpreted it lol, ik React can use Functions, but I will also teach them OOP because it IS crucial for ALL (that supports OOP)
To go from zero to doing proper web dev with a complete understanding of the concepts I think you'd need like three consecutive uni courses or more.
they had 8 weeks with 1 lecture a week to at least get them to somewhat understand classes
i don't think someone smart and interested would need longer to do some simple http requests and print formatted results to the console
Sure, it's not like you can't do it. You can always just imitate what the teacher is doing. But I mean, if you want to know what it is you're actually doing, you'd need to grasp basic programming, OOP, computer networking, TCP/IP, HTTP, HTML, CSS, client-side JS, async I/O, a JS framework, SQL, maybe an ORM and/or a backend framework.
OOP isn't curcial in JS? Now you've confused me. Classes in Python are extremely important, in JS not so much
OOP IS crucial
It is not so essential
idk why I said the "I will also teach OOP"
So, these would be the curriculum of my lessons, in order
HTML,
CSS,
Core essentials of Programming using JS,
DOM,
Frameworks
Not in JS? Will you be teaching them OOP in Python?
my sentence is not complete, I should've said "OOP IS crucial for ALL (that supports OOP)"
I'm in rush when I made that lol
Functional components in React are more limited than class components
So you will probably end up having to use the latter eventually
Hmmmm... intresting... I have never heard it that functional components are more limited (or idk, I probably forgotten it, or just I haven't really heard it)
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
Oh thanks!
I haven't really touch Class components in React so...
What youtube channels do you suggest me for learning python?
This channel is for discussions of teaching practices. If you just need Python help, you can ask in #python-discussion.
Also, refrain from aimlessly spamming your question in every channel you can find.
sorry , I just started working with discord and I don't know the rules very well I so sorry
Ok, no problem. Each channel has a topic, please make sure to stick to that topic (aside from the off-topic channels)
Can I ask any question in python-general?
Anything Python-related.
i need 50 messqges
if you spam to bypass the voice gate we will temporarily ban you from speaking priveleges
hello
This channel is for discussions of teaching practices. If you just need help with AI or data science, please ask in #data-science-and-ml.
yep, my bad, thanks
maybe this channel should be named just #pedagogy
It's not for pedagogy in general though, it's only for discussing how to teach programming.
i think people who want to talk about how to teach things other than programming will be more rare than people who want help with programming and see "programming" in the name of the channel
absolutely, but I think a lot less people will believe is for general pedagogy
Feel free to open a suggestion on the meta repo
@amber hill literals are used every time in assembly
why this channel tho
we were redirected here by the mods
hmm
how do you expect ebx to have like number 5 or number 17
mov 5, ebx
there
you just used a literal
bruh i meant literal memory addresses
ok
yeah you're not supposed to use literal memory addresses because you don't know where something will be stored unless you're a compiler
thats what i meant to say
ok that makes more sense
you guys actually learned asm. ok
this channel is for discussion about how to teach programming, so a conversation like @waxen grotto wants to have about whether it's better to start closer to the metal than Python when teaching people to program belongs in this channel.
nope, i know literally only know mov and lea and xor and the like
π
I learned MIPS assembly in college, though I can barely read x86 assembly at all.
i know how to use some intrinsics
Topic: Group projects/assignments. Proponents argue that (a) being able to work effectively in a group is critical in virtually any career, and (b) group projects help develop pertinent skills. I agree with point a, but I contend that group projects don't effectively emulate what group work looks like "in the real world", and that we can see this because they often break down into the most motivated-competent (or most domineering) person doing all the work.
arguably that's because the stakes/incentives are higher in the real world. And because professors are unwilling to fail individuals on group assignments.
I agree that group projects have little to do with working in a group, e.g. on a job. The power structure, incentives, and duration of the project are all huge factors in how people work together and very different between the two settings. Fwiw I loathed group projects in school and have absolutely no problem working with others at my job (or in pydis for that matter).
I feel that group work is another stage of development that can only really be achieved after the individuals feel comfortable with their own capabilities. Often most people in the group are not at that stage yet. And it's not exactly fair to expect them to be when the courses they are currently undergoing are for individual capabilities. When hiring, we hire those that we assume are already comfortable working as individuals (shows some level of individual skill), and then after that try to gauge if they can work in a group (being able to work in a group without the individual skill does not add much value except in some cases). In addition, many school assignments can not really be done in parallel / with highly diminishing returns (to the degree that you only want maybe at most 2 people). This is often because their scope needs to be sufficiently limited to fit within the school's course system.
Some people happen to be more motivated for a particular topic (or just in general in their studies at that point in time) and so they stand out and want to get good grades. But I would expect the opposite in general with the current learning structure (at that stage of development).
(a) Yes. (b) Yes, but depends on project and when / at what point in their development. And if everyone involved is there because they care about the topic (in an actual job you care either for financial reasons and/or (probably both) because you care about the topic), or just drifting through the system.
(And the problem is that if you try to solve this by making the projects more accessible they tend to be too simple to be a group project (group projects are group projects because they are too hard for any one person to do within some given time frame (making it especially cruel for those that decide to carry all the burden if the rest are not at that stage yet)))
In addition, many school assignments can not really be done in parallel / with highly diminishing returns
I think this is a really good point. I can think of several group projects from college that either I carried, or I and one other person carried - and off the top of my head, I can't really think of how work could have been better parallelized for any of them.
one major difference is that in the professional world, someone is helping to both split the work into parallelizable pieces and to assign those pieces to individuals. And, for that matter, to mediate conflicts between the individuals. Group projects in school lack someone in that role.
While it would be ideal, they don't have to map 1-1 with how it would happen in real life.
But they do force the students to think about items such as:
- How to scope and divide the work
- How to coordinate the docs/code
- How to validate their work prior, during and after integration
- How to consider that not all the members of the team will be available or contribute at the same level
Ah yes in many cases it was me lmao
I don't remember whether this was from someone's personal anecdote or the result from a study, but I have read that female students are particularly/disproportionately demotivated by performing under social pressure before they've had a chance to master the material they're supposed to be using. I share this sentiment.
I think this is the biggest problem
Another issue I see with the group projects I've done is school/university assignments are done while you're taking other subjects, so your week is split up among all the subjects. That means you're not going to have daily meetings, constantly switching off to do other tasks.
@solemn elm this is not a help channel; see #βο½how-to-get-help
Anything you guys wish you knew before you started coding?
How to print hello world
!eval print('hell world')
@brittle sand :white_check_mark: Your eval job has completed with return code 0.
hell world
ooops
Failed
See I told u itβs hard
Hence I wish I had guidance before hand because some programmers still canβt do it π
This channel is for talking about the practices of teaching, consider asking in #web-development
i really hated group projects. your time is just dominated by the luck of the draw -- do you end up in a good group, or not
hated my grade being up to chance like that
and even if you get to choose your group, that still isn't fair -- it just means you get a better grade if you happen to have smart and motivated friends
profs would say: oh if someone isn't pulling their weight, just say so and we'll reassign them. but nobody wants to grass someone else up
oh we grassed hard lol, the problem is when profs dont do shit
I think it teaches you how unfair life is before you even get to work for shit management
+1 to the stuff above about work that just can't be fairly divided. or work that has dependencies so one person ends up idling while another is frantic
i've heard many justifications for group work and absolutely none of them stand up to scrutiny.
if it's to teach students how to work in groups then why not actually teach that? there are whole professional industries and courses dedicated to this sort of thing. it isn't obvious, it had to be discovered. there are "agile coaches" and so on. it's a skill that has to be taught. and it never actually gets taught explicitly, students are just expected to figure it out on their own. is it any wonder that they fail?
if grown-ass adults argue about how best to run a software team and there are different schools of thought and so on, what chance do students have who still have trouble with for loops
There is one group project which I liked, where the actual difficulty was very low (the entire thing could be done in about 12 hours solo), and it was entire class on working on software projects in groups. If you rolled a poor group, you could just solo the whole thing and give them a small share of the points (git was mandatory, so it was quite hard to fake contributions), but if you got a good group, it was a valuable learning experience.
ive been on both sides of it. ive carried groups and ive just checked out and contributed zero
and obviously it's not like a real job at all. if someone isn't pulling their weight, they get fired. deadlines can be negotiated. etc
in general, that's how our school sort of makes up for bad groups. You just do ~20% of the work, give yourself 100% of the points, and get 20% of the points for the project, but those points are for the whole team. Of course, it does need to at least somewhat work.
what do you mean give yourself 100% of the points
you can set how much of the final point pool each group member should get
so if someone did half the work, and other two team members did a quarter, you do a 50/25/25 split
oh right. i think we had that a few times. but in most group projects everyone just got the same mark within the group
based on the overall submission quality
we can't even make concurrency easy on machines, that are completely programmable and execute instructions perfectly one by one, so take that and put humans in the mix and no wonder it's hard
I'm debating between getting a Dell XPS 13 or a M1 Macbook Air as my new main computer. I'm going to be using it for surfing the web, coding, and watching videos. I can't decide on which laptop though. The XPS would let me use Linux easily and all the time (As opposed to being basically locked down with Mac), but the Macbook has far better hardware. Any insights?
this channel is for discussion about how to teach computer science, but you can ask in an off-topic channel
Alright thanks
Returning to this topic. I think it's true that group projects don't resemble real-world collaboration very much. But people also don't just come into existence with natural collaborative abilities. They need to practice them, and I think in this sense group projects are valuable (even though I hated them for all the typical reasons).
For what it's worth, I have never once had a good experience with a group project. In the ones where the rest of the group carried their weight, the others didn't know git, so we had to use the Google Drive method of version control (if you can call it that). Dividing work and coordinating was so annoying that it might have been less effort to do it all independently.
Agreed
In my experience it generally boils down to one person somehow turning into the leader and doing most of the work when it comes to group assignments in uni
teach them git
i totally agree with stelercus
This channel is for discussing teaching practices, not for general help. Please see #βο½how-to-get-help for where to ask questions. I will be removing your message, @burnt blade.