As the final days of CSC236 came to a close, a 236 student thought back and looked at everything he had learned and (in vain) tried to remember. Test 3 was actually not as hard as I had expected and I am very happy for it. Fortunately I had learned enough about regexes to do well, and I had finally understood most of DFSAs to do well on the exam!
As much as I was nearly moved (read: bored) to tears over much of the material, I did find enjoyable several topics, including PSI, regexes, and DFSA machines (now that I understand them). Its been a hard semester, not only for me but for Danny Heap too. Thank you for your time and patience =D Maybe you'll be my prof again @_@
~fOrTT
Friday, December 5, 2008
Episode 12: Pumping lemmings...er..lemmas
Well, almost the last test (which imho I find ridiculous since it is our last class and our exam is in a week...I mean, come on...cut us some slack...)
Material about pumping lemmas and finding whether a language is regular or not!
I'm more worried about test3...its the last thing before the final exam so I want to do well to have a "safety net" before the final. Anyway, I'd write more but I have to do some hardcore studying for the test.
Material about pumping lemmas and finding whether a language is regular or not!
I'm more worried about test3...its the last thing before the final exam so I want to do well to have a "safety net" before the final. Anyway, I'd write more but I have to do some hardcore studying for the test.
Episode 11: (Too lazy to think of a witty title)
Well, working on A3 certainly was not fun. I did not even get much done for the creation of DFSA machines. I had mixed reactions from my peers as well- it seemed that some tried to do it with two machines, while others wanted to complete it with only one.
In class we learned more on DFSAs and then their evil cousin (twice removed)- NFSAs. I keep wondering who creates these crazy methods, but I suppose it is useful for something (such as doing csc236 assignments...but these are a result of someone creating the methods...paradox???)
I did enjoy seeing that it was possible to write a regex using a FSA. Of course drawing little circles and linking them with lines is also enjoyable ;D
Anyway, tired from working on A3 and getting denied and denied again on a good solution for the machine question...good night and good luck :D
In class we learned more on DFSAs and then their evil cousin (twice removed)- NFSAs. I keep wondering who creates these crazy methods, but I suppose it is useful for something (such as doing csc236 assignments...but these are a result of someone creating the methods...paradox???)
I did enjoy seeing that it was possible to write a regex using a FSA. Of course drawing little circles and linking them with lines is also enjoyable ;D
Anyway, tired from working on A3 and getting denied and denied again on a good solution for the machine question...good night and good luck :D
Episode 10: Return of the Assignment (special appearance by regex)
Well, A3 is due in about a week, and I am looking forward to finishing the last of a series of demanding questions == Did relatively well in A2 (well...almost a 200% improvement to the first) so hopefully this good work streak continues.
This week we continued our discussion about regex, which I had previously found quite simple, so not much to whine about there...
However, DFSA machines are quite difficult to understand. To me it seems like its writing a whole lot of if-clauses in Java. Basically each transition state is like an if-clause. Designing DFSAs seemed simple at first but the fact that we have to do DFSAs for modulus numbers (such as numbers with remainder 2 or 3) and doing everything in binary (which is simple because it only uses 0 and 1 in the alphabet, but very difficult since I don't really know binary by heart and have to take forever to remember how to convert to a binary number) made everything quite tedious.
This week we continued our discussion about regex, which I had previously found quite simple, so not much to whine about there...
However, DFSA machines are quite difficult to understand. To me it seems like its writing a whole lot of if-clauses in Java. Basically each transition state is like an if-clause. Designing DFSAs seemed simple at first but the fact that we have to do DFSAs for modulus numbers (such as numbers with remainder 2 or 3) and doing everything in binary (which is simple because it only uses 0 and 1 in the alphabet, but very difficult since I don't really know binary by heart and have to take forever to remember how to convert to a binary number) made everything quite tedious.
Episode 9: Regex- Making the lazy even lazier
This week we finally covered regular expressions. I had never used them before, nor known how they worked, but I had heard from my programming friends that it was insanely useful and easy to use; therefore I was very excited to learn about how to be as lazy as possible.
Fortunately, things did seem quite easy, as language operations just seemed like sets that we learned in 165, and regular expression examples were cool. It was like learning a complete language, and material like + (or), and * (Kleene stars) were not too difficult to learn.
The most difficult part of this (thus far) was proving equality of languages.
Not only did I have to prove that a string \in L1 (a language) implied that a string was in a language denoted by a certain regular expression, but I had to prove it the OPPOSITE way. The first proof was quite simple, but the reverse direction was a lot more difficult to comprehend (and the example in the txtbook did not help much in my understanding). Anyway, hoping to do well in this section since I do understand about 80% of the material and could do more with studying.
Fortunately, things did seem quite easy, as language operations just seemed like sets that we learned in 165, and regular expression examples were cool. It was like learning a complete language, and material like + (or), and * (Kleene stars) were not too difficult to learn.
The most difficult part of this (thus far) was proving equality of languages.
Not only did I have to prove that a string \in L1 (a language) implied that a string was in a language denoted by a certain regular expression, but I had to prove it the OPPOSITE way. The first proof was quite simple, but the reverse direction was a lot more difficult to comprehend (and the example in the txtbook did not help much in my understanding). Anyway, hoping to do well in this section since I do understand about 80% of the material and could do more with studying.
Episode 8: Test 2...soon.
Well, a week from now I will embark on another journey to hopefully pass the 236 test. I dislike how course coordinators seem to conspire to put everything at the same time. Either we don't get any hw or assignments, or we just get owned by a #&$*(^load of homework, assignments, tests, and projects. Note to future CSC students- you are screwed.
This week we covered iterative correctness (testing correctness for recursive proofs). I don't really understand loop invariants, but it seems like its basically a part of the FINAL solution, a piece of the puzzle if you will. At the end, the loop invariants will be found and the recursive function will terminate.
This week we covered iterative correctness (testing correctness for recursive proofs). I don't really understand loop invariants, but it seems like its basically a part of the FINAL solution, a piece of the puzzle if you will. At the end, the loop invariants will be found and the recursive function will terminate.
Episode 7: The Assignment Strikes Back
Well, A2 is around the corner...and from past experience for A1, I am NOT excited.
We learned how to determine program correctness, which I feel is trivial...hopefully my mind will change (or else I wont study it for exam xD). Why do we really need to determine pre/post conditions when we can just look through a relatively simple function and just know what it returns? Instead there was so much material covered about correctness which I found very confusing =/ Guess I'll pore over the txtbook and try to make light of it.
Please Please Please be nice for A2 marking T_T
We learned how to determine program correctness, which I feel is trivial...hopefully my mind will change (or else I wont study it for exam xD). Why do we really need to determine pre/post conditions when we can just look through a relatively simple function and just know what it returns? Instead there was so much material covered about correctness which I found very confusing =/ Guess I'll pore over the txtbook and try to make light of it.
Please Please Please be nice for A2 marking T_T
Subscribe to:
Posts (Atom)