3 ms·
> I recently conducted a large number of remote one-on-one interviews of candidates to a new master program in software engineering. > Assume that A implies B.
by seanwilson 6y ago
> I recently conducted a large number of remote one-on-one interviews of candidates to a new master program in software engineering.
> Assume that A implies B. What can we say about `not A' and `not B'?
Maybe I'm missing something but there's no "implies" operator in programming languages and it isn't used this way in casual language so why would you expect software engineers to understand a very precise definition of an operator they don't use?
I've taught formal logic classes and people new to it including programmers always have problems with "implies". Formal logic isn't intuitive and needs to be taught.
- clairity 6y agoit's also underspecified if the desired answer is "not A implies not B". there are an infinitude of examples of that particular conclusion being false in the real world.
- seanwilson 6y agoI think you're demonstrating my point. It sounds like you're going with what you intuitively think "implies" must mean like you would if you saw it written in a news article, when instead the article is using a formal logic definition that would appear appears often in logic/math proofs. You really need to look at the truth table the implies operator and read off the answer from there. There'd be no confusion if the operator didn't have a name that roughly matched something we say in casual language.
- clairity 6y agoand that's exactly my point. you need to specify 'formal logic', otherwise, it's underspecified.
- seanwilson 6y agoAh, okay. Yes, it's ambiguous to the point of being a trick question to me.
- clairity 6y agoyah, if the author wants to assert a (perhaps deceptive) pedantic logical conclusion about others, then they should be particularly keen to avoid making pedantic logical errors themselves.
- teawrecks 6y agoIt does exist. You know it as the assignment operator.
- seanwilson 6y agoNot quite - logical implication maps to function types in programming via the Curry-Howard isomorphism: https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence#General_formulation https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspon... i.e. knowing "A implies B" is like having a function that accepts a value of type A and outputs a value of type B.
- BeetleB 6y ago> so why would you expect software engineers to understand a very precise definition of an operator they don't use I wasn't in grad school for a CS program, but one of my friends was. One thing I noticed is how often the papers he read, as well as the course material, used formal logic symbols.[0] His research area was very much applied - not theoretical. Not knowing "basic" things like what implies means formally is likely going to hurt you in a MS program. [0]: http://www.philosophypages.com/lg/e10a.htm http://www.philosophypages.com/lg/e10a.htm