Tuesday, October 28, 2014

Week 7

     This week we learned about proofs by cases, we reviewed proofs, and learned about algorithms.
     First, we were introduced to the concept of cases. This concept allows for us to split the argument into different cases in order to make sense and add structure to the proof. It allows for us to examine the possibilities that lie within the proof, and then actually moving on to proving them. We then did an example of a proof in which cases were used, and found that cases helped in the organization of the proof, as well as helped me visualize all of its components. We then learned about the mathematical prerequisite of uniqueness, which can be denoted with the phrase "one and only one." It is a type of existential quantification which indicates that there is an argument with a certain property.
We then talked about the proof patterns of introduction (smaller statement implies larger statement) and elimination (larger statement implies smaller statement).  We then learned about the different rules for both patterns by negation, conjunction, disjunction, implication, as well as their universal and existential forms. It is important to practice in order to understand and apply these concepts effectively. I plan to do more practice problems in order to better register this new information in my mind.
     We then learned about algorithm analysis and asymptotic notation. We were introduced to this concept with an example of bubble sorting and merge sorting. We checked which of the two aforementioned methods of sorting was the most effective by analyzing their respective algorithms (the process they use to complete the task). Algorithms are of most importance because they determine the running time of a given program.  We also learned about how we do not really care about the number of steps withing an algorithm, but about how the number of steps increases as the size of the input increases.
    Later, we learned about asymptotic notation, did a few examples with the new greek letters introduced for this type of notation, and then learned how to analyse the time complexity of a program. We learned to make this type of analysis through examples with python and linear searches. I found this part of the lecture interesting as an insight into how programs work.
     In the tutorial we did the tutorial exercises, which I was more prepared for solving because I had asked Professor Zhang for help. I understood the material better, but I was not able to complete the quiz question correctly. I plan to ask for help from the T.A. next time in order to have a more complete understanding of the material during the notation.    

Week 6

     This week we learned about cases, quantifiers, and limits.
     First, we talked about non-boolean and introduced the notation to the floor function. The floor function always rounds down a decimal number to its integer. An important thing I took note of was that the floor of a number is not a variable, it is a function. This means that a quantifier cannot be applied to it since quantifiers are only used on variables. Next, we tried proving a statement with the application of this new knowledge about the floor function. We were able to use its definition as an aid to construct the actual proof. I found learning about the definition of floor of x very helpful since using the definition of a function to construct a proof is something that we will constantly use in the future.
     We then learned how to disprove a statement effectively. In order to disprove a statement, you need to prove its negation. It is important to negate the statement correctly to facilitate the 'disproof'. We then did a couple of examples on disproving statements.
     Next, we moved on to proofs about limits, which seemed like an intimidating concept at first. We learned about the use of the greek letters delta and epsilon. Professor Zhang taught us how to manipulate these letters in our favor, and that the best choices of where one might want to take the proof are often encountered when working backwards in the proof. Also, I personally learned that proofs about limits are not necessarily as intimidating as I thought they were.
    I found the content of this lecture easier to grasp than that of the previous lectures. I believe I still need to do more practice with proofs so I plan to go to Prof. Zhang's office hours and doing practice problems from the course website on my own.
   

Saturday, October 11, 2014

Week 5

   This week we learned about proof using contrapositive, proofs using contradiction, proof for existence, and proof about a sequence.
    First, we learned how the contrapositive can be used to construct proofs more effectively. Instead of proving what is asked of us exactly the way it is presented, the contrapositive allows us to solve the problem with it's equivalent. This method works well when the reverse direction of the proof is easier to prove than the original. It is a matter of rearranging the problem into the contrapositive and then continue building the proof, This was shown by Professor Zhang through various examples.
   We then learned how to use the contradiction to construct proofs. The contradiction is a variation of the contrapositive. It happens when you say something is and isn't in the same respect. We then did more examples on how to prove with the contradiction. I am not entirely sure how this works in its entirety, and I plan to review the course notes to better understand it.
   We then did some more challenging example. It had to do with prime numbers, and it was interesting because the proof at the end led to contradiction. I then realized how important it was to always be aware of the contradictions withing the proof by assuming the negation of a statement. This helps avoid said contradictions to make a valid proof.
     We then learned about proofs in existential sequences. How we can make proofs basing ourselves on the fact that for an existential statement to be sustained, a single example of it is necessary. How proofs consist of layers and layers within its structure that can be manipulated within the guidelines of certain logical rules to make valid proofs.
    I found this week's material to be the most challenging, and I plan to review the course notes and see Professor Zhang during office hours to better understand what was explained.
    During the tutorial, T.A. Elias solved the tutorial exercises explaining each step. I still had a hard time understanding the entirety of the problem, so when the quiz came along I was not entirely confident. Yet, I believe I did better than expected because of parts of the explanation that I grasped. I plan to ask more questions during tutorials so I can gain a more complete understanding of how to solve the problems.
 

Saturday, October 4, 2014

Week 4

     This week, we learned about bi-implications, transitivity, mixed quantifiers, and proofs. We also had a problem solving session. 
     A bi-implication is a type of condition statement where a statement could be combined with its reverse to make a similar statement. I found this part of the lecture somewhat difficult because of the fact that the topic was new and I had no practical experience with it. We did a few examples in negating bi-implications before moving on to transitivity.
     Transitivity occurs in the relation between statements. When one element is in relation with the second, the second with the third, and the third back with the first one. Through an example on the slide, I was able to realize that transitivity is always true when statements imply one another. 
    We then learned about mixed quantifiers, when different types of statements (existential and universal) are combined and how their existence together affects the nature of a statement. 
    Then we got into the part of the lecture which I understood the least. A proof is used to convince someone else of the truth of an argument logically. In order to make a great proof, one must first understand each part of it, which I think was my issue. We then learned to use structures to construct the proofs. Different types of laws were used for the construction of the proofs. I had trouble applying all these laws because I was not sure how to use them effectively. In order to solve this issue, I will go over the laws and attend Professor Zhang's office hours.
     In the tutorial, we went over the tutorial exercises with T.A. Elias. I still did not understand how to make proofs by the end of the tutorial, so I am not confident about my performance on the quiz.
    This has been the most challenging week for me in CSC165 so far, and, like I mentioned before, I plan to go to the Professor's office hours to get the help I need.



Thursday, September 25, 2014

Week 3

     This week I learned about conjunctions and disjunctions. I learned a few new logic notation symbols for " and" (used in conjunction statements) and "or" (used in disjunction statements). "And" combines two elements so that both of them are true, and "or" combines statements so at least one of them is true.We then applied both of these to the concept we learned in the previous class, predicates. I found this part of the lecture interesting, as I learned to combine this new topic with a previous one.
     I then learned about the negation and its symbol. We did a few examples with it, recognizing that the negation of a universal quantification is an existential quantification, and the negation of an existential quantification is a universal quantification. I found the fact that the negation of both types of quantification is each other very interesting.
     We then talked about scope, and how a parentheses helps define the scope of a statement. The placement of the parentheses is very important in determining the order in which the statement if evaluated. This makes all the difference in determining whether statements are true or false.
     We then learned about truth tables and how to use them. It turns out that truth tables can be used for a variety of different reasons, including evaluating expressions, determining the satisfiability of a statement, and proving equivalence between statements. Professor Zhang even demonstrated through an example how we could prove DeMorgan's law through truth tables.I found truth tables to be very practical, and will definitely be using them in the future.
       We briefly reviewed some other laws, such as the associative law and the commutative law,(among others) before ending the lecture. I will further review these laws before the next lecture in order to refresh my memory.
      In order to remember the material seen in this lecture, I will review the course notes and go over the Professor Zhang's slides.
     In the tutorial, we reviewed the exercise given beforehand. A lot of people, including myself, had trouble getting through the worksheet. I was slightly more confident about the material after T.A. Elias explained the questions further, but I still had my doubts. I did not feel confident as I did the quiz at the end of the tutorial, but I still managed to think of a solution which made sense. This is what I put on my paper, and I hope it is correct.
   





Thursday, September 18, 2014

Week 2

     This week in class we learned more about quantifiers.
     First, we reviewed the methods to prove and disprove universal and existential quantification. We did a few examples with data tables and Venn diagrams. Personally, I enjoyed the examples with the Venn diagrams because they helped me visualize the universe where the quantifications take place, which parts of this universe are empty, and which ones contain elements. (Professor Zhang included X and O symbols to show which parts of the Venn diagram are empty and which contains elements) We then used logic symbols to solve more problems with Venn diagrams.
Later, we moved on to quantifiers about sets. We used symbols about sets, which I found useful as a review of these aforementioned symbols I learned about in the past.
We then moved on to evaluating quantified claims. I enjoyed examples Professor Zhang included with Python notation (we were shown two boxes with code and we were to choose which one corresponded with the quantification) since they demonstrated how to convert human language into computer language.
     Next, I got to learn a new concept, sentences and statements. Professor Zhang demonstrated the fundamental differences between sentences and statements, where sentences have subjects and predicates, and a statement is a sentence.
     Then, we talked about predicates. I learned that the predicate can be represented by L(x) (where x has property L.)
     The next topic we covered was implications. I found the relationship between the antecedent and the consequent interesting since it is not causal in nature. One does not cause the other. We learned about contrapositives, or the contradiction of the subject and the predicate, and how to express them in logic symbols. We used if-then statements to decide which part of the sentence was the subject and which was the predicate. I found this part of the lecture challenging as well, but I plan to review the course notes and Professor Zhang's slides to better understand this topic.
      Next, we talked briefly about what I believed to be the most interesting part of the lecture, vacuous truths, a truth that claims that all members of a group have a particular property. Statements such as "pink elephants have 7 legs" could be true because there are no pink elephants around. I found this interesting because it is a type of truth that could apply to members of a group that don't exist (i.e. pink elephants). Next we talked about equivalence (statements that mean the same thing), its vocabulary (i.e. necessary and sufficient.), and idioms (other ways of saying things in math).
     During the tutorials, we solved tutorial exercise number 1. This exercise included some proofs we were to express in natural language for the first questions, and in Venn diagrams in the second question. I found these proof exercise challenging at first, but with some help from T.A. Elias, I was able to solve them. I then took the quiz which was verifying another proof with Venn diagrams and natural language. I think I did fairly well.

Wednesday, September 17, 2014

Week 1

  This week I learned the importance of mathematics for all Computer Science applications. In order to make compelling and interesting programs, mathematics is required. From artificial intelligence, to graphics, mathematical applications are needed (i,e, probability, linear algebra, and geometry).
      I also learned about precision and ambiguity in computer languages. I learned that computers are not only extremely precise, but they require a certain type of mathematical precision. (By mathematical precision I mean a certain type of precision where the meanings of the words put into the program are restricted.)  Then, I learned about the relationship between human language and computer language, and how they translated into one another. Professor Zhang managed to include both human language and computer language into his examples with python code and Venn diagrams, which helped me understand the relationship between the two aforementioned elements better. I also learned how human language has an adequate level of precision and ambiguity (or intuition) to help us solve problems effectively.
     I then learned about more problem solving with quantifiers. First, Professor Zhang gave us useful steps to follow in order to solve problems effectively. These steps include: Understanding the problem, trying more than one plan, executing the plan, and then reviewing the plan by convincing a doubtful peer. I then learned about universal and existential quantification, their respective symbols, and how to prove and disprove each statement (To prove universal quantification: Prove that all elements in the domain satisfy the quantification, to disprove show one counterexample that does not satisfy the quantification. To prove existential quantification show that there is one example that satisfies the quantification, to disprove show that all the elements of the domain are counter examples that do not satisfy the quantification.) We did a few examples with a table of employees that had different salaries to demonstrate both types of quantification and their vocabulary. Vocabulary words that correspond to universal quantification are: all, every, or any word that describes the entirety of a population (ex. male and female.) Vocabulary words that correspond to existential quantification are: Some, there exists, at least one, where not all members of the population correspond to the quantification.
      I enjoyed the examples Professor Zhang included in his explanations this week, since not only did they apply to real world situations, but they were also humorous. I particularly enjoyed the problem where two people meet on the street, and one is trying to figure out what the ages of the other person's children are. We solved this particular problem algebraically as a class, assigning values of x,y, and z to each child and using inequalities. This showed me the importance of problem solving with mathematics not only in computer science, but in day-to-day situations.  I found this problem compelling, and the humorous aspect of its presentation decreased my anxiety caused by not grasping the entirety of the information being presented.
     I initially found using the universal quantification and existential quantification symbols in problems slightly challenging, which led to a slight frustration, but as did examples of a class, I started to grasp the material. Currently, I feel confident about the material covered this week, but in order to remember the information I will review Professor Zhang's slides and the course notes throughout the rest of the week.
   There were no tutorials or assignments due.