How to Prove It is a great introduction to proof-based mathematics. It covers some logic, set theory, number theory, etc. All the good stuff to get you started.
If you're more of a audio-video learner, I recommend Prove It from The Great Courses. The instructor Bruce Edwards is truly excellent.
If you hurry up a bit, you can still join Logic: Language and Information I without penalties affecting your score. The first deadline is around April 6th, depending on your time zone. It should be a perfect match for you.
Edit: replaced link.
I'm not OP, but I'm in my second year of my computer science major. Software engineering, better known as programming, is very logic-based. If you haven't programmed before, start there. I've heard good things about Codecademy (http://www.codecademy.com/) so I recommend starting there learning to code in Python. There are plenty of other resources you can find online yourself. Sorry I can't provide more info or tools; I'm on mobile right now. Oh yeah, definitely check out /r/learnprogramming.
Picked this one up at Barns and Noble in the philosophy section. I got through it in two sittings. Here's an online sample: <strong><em>Introducing: Logic, a Graphic Guide</em></strong>
This sounds like a knowledge base. Knowledge bases are used in artificial intelligence when the agent needs to be able to make conclusions about its environment.
A good example of a knowledge base in use is Wumpus World. An agent must navigate a grid of squares using knowledge gained from perceptions gained from the square it is on. The rules are outlined here http://www.cs.uku.fi/~mnykanen/TEK/teklectures6.pdf.
The perceptions are stored in a knowledge base by the agent as true statements about the world. For example say the agent travels to (1,2)[row,column] in the example on page 99. The agent perceives a breeze and stores Breeze(1,2) => Pit((1,3) V (2,2)) in the knowledge base.
Let's say that the agent is being cautious so it goes back to the origin and up to (2,1) and perceives a stench. Stench(2,1) => Wumpus((3,1) V (2,2)) is 'told' to the knowledge base.
Because the agent is now at an impasse it will begin to ask the knowledge base about its 3 possible moves, and on the bottom of page 112 the inference is made.
We choose what formal logic our knowledge base uses. We can then encode the grammar, semantics, and inference rules for that logic into the knowledge base so that it can infer from the true statements given. In the Wumpus world this was used to see if the knowledge base entailed (2,2) was a safe move. If a statement P entails a statement Q, then we say that Q logically follows from P. Or that the models of Q are a subset of the models of P (read more about it in the linked pdf, it can be confusing). Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig is a great book to learn more about this.
So as far as I know there are probably implementations out there, but I don't know of any websites or commercial software.
It's not exactly what you asked for, but it's a good place to start looking.
EDIT: words
I gather from the post that your institution doesn't offer many courses in pure logic. The field is broader (and more disjointed) than you might expect, but the math courses you'll find most useful would be abstract algebra (usually offered as a year-long sequence) and point-set topology. From the philosophy side, courses on early analytic philosophy/logicism/logical empiricism (Frege, Russell, Wittgenstein, Carnap, etc.) would be beneficial.
If you're considering graduate study in logic, you should talk to faculty and see if you can arrange independent study. As an example, a start into Marker or baby Hodges would give you exposure to more advanced topics and accelerate your grad work.
I know just enough about Davidson to know that if not extremely careful, I will surely get the details wrong. However, I think you are on the right track, and just need to remember that sometimes an intersection can coincide with a union. That does not mean that intersection and union are the same. The example you chose of Job walking and eating could be a case of that sort (depending on how you set the details up). But you can imagine the event of Job eating and Sam walking, where the event is the sum (union) of "Job is eating" and the event of "Sam is walking" but, for example, the event of "Job is eating" is followed by the event of "Sam is walking", in which case there is an empty intersection between the two sub-events which make up the sum total event.
As to texts, there is a book of essays by Davidson: Essays on Actions and Events
https://www.amazon.com/Essays-Actions-Events-Donald-Davidson/dp/0198246374
Is calculus necessary? Absolutely not. It wouldn't even help. Forget it.
But part of why logic will help you, if it will, with your reasoning, problem-solving, and critical thinking is that it requires you to work systematically and carefully, perhaps more systematically and carefully than you might be used to. In this respect, it's a lot like most math. When you encounter this, it can be tempting to think "Oh, I'm just not cut out for this" and give up. Really, though, it's just like any other unfamiliar skill: you'll probably start out bad at it, and you'll get better through practice.
If you want to look at a MOOC, it might help. I'd recommend https://www.coursera.org/course/logic1 (also recommended by /u/co_dan in an earlier comment) if you want to go this route. You should be ready, though, for the exact notation and systems used to be different from whatever your university offers. There are lots and lots of different logical systems, and most introductory courses only deal with one or a very few. So although the skills you're building will transfer from one course to another, the exact content may not.
Welcome to logic! It can be difficult at times, but very rewarding if you stick with it.
If I don't understand something then surely you should be able to find the error in my reasoning and correct it? e.g Educate me.
Here is another version: https://repl.it/repls/SizzlingThinUnderstanding
Indeed, you understand perfectly. I have constructed a type which returns false for all A = A.
A class in Python is the same thing as a Type in lambda calculus.
It doesn't really matter if the language is or is not strongly-typed. If I can do this in a weakly-typed language I can also do this in a strongly-typed language.
​
The implementation of the "==" method for all objects of type Human is on lines 23 and 24 of https://repl.it/repls/SuperficialShimmeringAnimatronics
​
As a supplementary, reference or introductory material, i recommend the very concise book Philosophical Devices: Proofs, Probabilities, Possibilities, and Sets.
>This book is designed to explain the technical ideas that are taken for granted in much contemporary philosophical writing. Notions like "denumerability," "modal scope distinction," "Bayesian conditionalization," and "logical completeness" are usually only elucidated deep within difficult
specialist texts. By offering simple explanations that by-pass much irrelevant and boring detail, Philosophical Devices is able to cover a wealth of material that is normally only available to specialists.
From your description, i think it fits you.
I had a course on this, mostly for curiosity. We used The Description Logic Handbook: Theory, Implementation and Applications, along some papers from the lecturer. I'm not sure that fits the "self-learning" tag (or even "textbook"), but i think is very readable and has enough motivation around the topic. Anyway, doesn't hurt to read a little of the theory.
If you're interested in learning more check out Arthur Schoepenhauer's Art of Controversy. Free Audio on Librovox!
Oh, and if you want to get into Universal Algebra, having knowledge of Abstract Algebra as a foundation is pretty essential. Once you have a solid understand of logic and basic set theory, I highly recommend checking out the book Contemporary Abstract Algebra by Joseph Gallian. It's a very approachable book, plus it points out the links between abstract algebra and practical applications to fields like chemistry and computer science throughout the text, which I think might be really helpful for someone coming from a software engineering background.
I had this book in graduate school: Metalogic by Geofrey Hunter https://www.amazon.com/dp/0520023560/ref=cm_sw_r_cp_apa_fabc_LMd0Fb6DCDMAY The book is mostly just step by step through two proofs: soundness and completeness of first order predicate logic. At the time, I could reproduce both of the proofs, but sadly that was 30 years ago 😞.
I highly recommend WVO Quines' Elementary Logic. It's a small book that explains everything in a very interesting way. Also it's less than 10$ new. Plus it's logic from a Philosophy of mathematics background so it should give you some interesting things to smackdown on those math grads that they haven't necessarily thought about yet.
For some reason several of the amazon postings for the book are like 500 usd which is ridiculous. This amazon link has new for 40 usd or used for around as low as 5 usd https://www.amazon.com/dp/0130625485/ref=cm_sw_r_sms_apa_i_t.HpCbMQVGM03 I can't seem to find a decent pdf right now let me know and I can look around some more.
I would recommend taking a look at
Metalogic: An Introduction to the Metatheory of Standard First Order Logic by Geoffrey Hunter
which will give you an easily comprehensible treatment of metatheory. You can pick up a used copy anywhere from $5.38 (https://www.ebay.com/p/239128?thm=3000)
to $20.58 https://www.amazon.com/Metalogic-Introduction-Metatheory-Standard-First/dp/0520023560
You should be able to get quite a way through it, before your class starts.
Consider Raymond Smullyan's A Beginner's Guide to Mathematical Logic. It has some history of logic mixed in with pretty good coverage of propositional and first order logic, as near as I can tell. Lots of exercizes, which helps me personally.
I'm just a beginner but Peter Kreeft's book on Socratic Logic is very good. I've learned a lot from this introductory book. He's very effective at communicating rather complex concepts with simple language. There are also a plethora of exercises in the book at the end of every section.
https://www.amazon.com/Socratic-Logic-Questions-Aristotelian-Principles/dp/1587318083
I can recommend two books which I have read recently. 1. An Introduction to Mathematical Logic is more structured and formal description of logic. 2. Introduction to Logic gives more insights and helps to get a big picture of logic. I enjoyed both of them a lot and going to read them again.
I would recommend the book <em>Essentials of Symbolic Logic,</em> 3rd ed. by R. L. Simpson. It can stand on its own as an intro text, though it's also concise which might not be good if you need an intro text that expands on the fundamentals. It is at least a good compendium.
This is the basic structure of the book:
This is also the basic structure of most undergraduate Intro Symbolic Logic courses, though some might also push into modal logic.
>plus , a wiki guide ,would be useful here or any online guides.
This is something I have in mind to do in the next couple months before the next semester.
Side note: Regarding commas, the space goes after, not before.
I'd recommend to him the books <em>A Mathematical Introduction to Logic</em> by Enderton and <em>Naive Set Theory</em> by Halmos.