Sunday, December 2, 2012

Final Post-Summary and Feedback



      
          When I evaluate a course after studying it for 3 months, I am always trying to figure out how my mind is influenced by what I have learned in the course. Marks are important, but they are not everything. Overall, I think CSC104 is really good although this course has lots of assignments, quizzes, and tests. I will recommend this course to my friends who are still in my high school and will study in U of T next year.

         I have worked with computers for years, but since September, my perspective about computers has changed so much. I never thought about how human beings invent this smart machine steps by steps in the past. I knew some terms like “cpu” and “main memory”, but I didn’t know how the hardware interacts with the programs we see on the screen. I knew how to use computers, but I did not know why and how of computing. By taking this course, I learned everything which I didn’t know before. I also became familiar with DrRacket, and could create some simple animations and do some calculations by using it. In brief, I have a better understanding about the machine that I work with. I find that computers have a lot of functions which I have never utilize before, and they also have some limits in some particular areas.

         I like the professor’s teaching. He combined the principles about how computers work with the demonstration in DrRacket. DrRacket part was interesting, and it helped students understand the complicated parts regarding theories. The only suggestion I can make is that if our professor can improve the quality of in-class notes, students will follow his teaching more easily. 

         Finally, I will try my best to prepare for the exam. I wish I can get a good mark in the course I like.

Sunday, November 25, 2012

Test #2 and Project #2



         The result of the second test didn’t reach my expectation. I found some my problems which caused the mistakes in this test. Here is a brief summary.
         First of all, I did not pay enough attention to some details during the learning process. For example, regarding the first question of the test, I knew how each type of the networks is built, but I was not clear about their uniqueness and disadvantages compared to each other.
         Secondly, I did not solve each question carefully. In Part II of the test, I knew how the codes work and what they will produce in DrRacket. However, I did not read over them entirely. I didn’t realize that I actually jumped over several lines when I was writing the test. That’s why I lost 4 marks in part II.
         I will definitely improve my learning quality in class, and have a better review before the final exam. I wish I can do a better job in the final one.
         Moreover, I finished the second project last night. I encountered one problem which took me almost one hour to solve it. When I was adding two check-expects before the lines below,

(define (interpolate-image i1 i2 n)
    (local ; f is defined only inside interpolate-image
    [(define (f c1 c2) (interpolate-color (/ n DENOM) c1 c2))]
(map-images f i1 i2)))

I replaced i1 and i2 by pic: hacker and pic: calendar in my check-expects, but the tests failed. DrRacket told me that all the lists must have same size. I didn’t know where the mistakes were. I tried my best but I still couldn’t make it work. Then I decided to replace pic: hacker and pic: calendar by (circle 5 "solid" "green") and (circle 5 "solid" "blue"). To my surprise, the tests passed. I was glad the check-expects finally worked, but I don’t know why the tests passed exactly even now. I guess the two pictures must have same size so that their color-lists have the same size too. I am not quite sure about that. I think I will check with my TA during my tutorial section.

Sunday, November 4, 2012

Working on Project #1




         Frankly speaking, I like this project.

         I am always wondering what could be created by using DrRacket. I have been studying DrRacket for almost two months, and I have learned many commands regarding manipulating images, numbers, strings, and lists. I know DrRacket is powerful, but I don’t know what kind of work I can produce in DrRacket. However, this project shows me what DrRacket can achieve. It is about a simple animation of a clock with working hour, minute, and second hands. Although what I need to is to fix some disabled features, I still become more passionate about DrRacket.

         All the mapping and listing parts in the file are hard for me. My mind was messed up at least three times with check-expect and definitions of make-clocktime and set-clock. The way I solvde my problems was to download all the files about DrRacket code in the previous classes. I reviewed them, and compared some particular lines in those files with the corresponding lines in the project. The review helped me understand the functions of some commands that I am not familiar with. I also learned how I can write those commands properly by consulting our professor’s works. For example, the file about changing the colors of a clownfish is really helpful for me to fix the first part of the clock. Besides that, right-click on the commands was also helpful. The documentation explained everything in details, and it also revealed some good hints to let me work through the project.

Sunday, October 28, 2012

Storage and DrRacket




         As usual, I find the hardware part of this course is harder for me than the operation of DrRacket. The lecture in this week is about hardware architecture. Our professor explained how different hardware saves data in their storage. I took some time to understand the load instruction by recalling the carry-in and carry-out principle in the previous class. However, I didn't really get the storage of hard drive. The only thing I got was the speed of hard drive is a major shortage compared to the other types of hardware. After class, I read over the extra notes online. It is helpful, and explains everything in a detailed way. 

         Regarding DrRacket, it is the second time to use the "cond" command. The first time was when the professor did the animation of clock in class. He used the "cond" command to define different keys of stopping the clock. I checked the file of the clock again in order to have a better understanding about how the "cond" command works. The "cond" command means that I can create some simple rules to let computers work with. So the computers can produce something particular or something else according to the rules.

Sunday, October 21, 2012

Algorithm Questions



Algorithm Questions

         Before this week's lecture, I attempted to solve the problem of folding paper, but I failed. After the lecture, I tried it again, and applied what our professor taught us in lecture. I created a plan, and I was ready to accept that it would be wrong. To my surprise, it works. I checked this way several times to make sure it is correct. However, if you find I am wrong, please leave me a comment to inform me that. Here is my way of solving this problem. (It is a little bit long.)
         First of all, I want to know how many creases the paper contains corresponding to how many times I fold it. I made a table for these numbers.
         #Time #Creases
   1       1
         2       3
         3       8
         4       15
         Then I found that the number of creases is (2^n)-1, where n is the nth time of folding the paper.
         So
         #Time #Creases
   1       2^1-1=1
         2       2^2-1=3
         3       2^3-1=8
         4       2^4-1=15

         Secondly, I want to find the pattern of creases. I made another table.
         #Time #Pattern
         1       D
         2       uDd
         3       uudDudd
         4       uuduuddDuuddudd
         Each row of characters is symmetrically opposite due to the way of folding the paper (Every time you fold the paper from left to right). Each row has a central character which must be D. The last character of each row must be d. Besides that, I discovered that the right side of nth row's D is exactly the entire row of n-1.
         I applied the rules which I discovered to find the 5th row.
         It should be (uuduudduuuddudd D uuduuddduuddudd).
         You don't have to write everything until the fourth row to find the fifth row. As I mentioned, each row of characters is symmetrically opposite. So the right side of each row is also symmetrically opposite. If you want to know the fifth row, you can make a table like the one below.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31















D







D



D

D
d
         After that, you can just plug in all the characters which are opposite to the right side of each D.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31















D
u
u
d
u
u
d
d
D
u
u
d
D
u
D
d
         You will ultimately get the same answer, which is (uuduudduuuddudd D uuduuddduuddudd).
         Please let me know if I made any mistakes, thanks a lot.