What We Talked about in class this week:
We talked about intellectual property.This is issue is closely related to other topic, security and safety. The idea of internet is pretty paradoxical itself: people want to share but not everything, there is a limit between sharing and privacy. In order to avoid this security violation aided by computers, people should create solid passwords,be sure to know the cooperation where downloading stuff from or divulging identifying information to, apply security patches to software, and avoid reading dubious email.
How do we define property then? A long time ago, people believe that the mixture of labor and nature is your property.However, raw materials are not unlimited, and sometimes, they are rather scarce. A human being is usually considered to be the owner of his/her body, having the right to use it as he/she will. Intellectual property , as a human being's thought, is recognized when the press industry was boomed. Computer and Internet doesn't change essence of copyright.Music, software with copyright usually requires payment depends on the person or organization with the ownership.Bill C-11 is enacted to increases penalties for some copyright infringement (like the DCMA), generally lower penalties, increase the scope of fair dealing, and introduce strong penalties for breaking digital locks (DRM).
My Feedback:
The computer or internet-related copyright issues are always interesting. Since modern technology copy software, music or movies so fast and easily, people don't bother to buy the expensive original copy. I tend to download music a lot (in China it is legal). Now I realize they are someone's ideas, intellectual property. If we infringe it, it is the same as stealing or robing a cell phone or wallet from the owner.
What I think about CSC104 at the end of school year:
Basically, it is a pleasure to take this course. Danny is funny and obviously enthusiastic about what he is doing.He likes helping students with all he has, so does my TA, Orion. I don't feel like stupid when I ask questions. I am now fairly familiar with DrRacket, I learned definitions, aggregation, recursion,creating events. It can be my calculator and Photoshop.Sometimes I just like to mess with it randomly.I am also exposed to a bunch of information about the history of computing and computers.If I didn't take this course, I might never know how early computers look like and how computers operate and take orders. Moreover,it is a great experience to struggle for completing a difficult project with a friend. we developed very intimate friendship. simultaneously, my problem solving skills get improved a lot.
Bye Bye CSC104. Bye Bye Danny.Bye Bye Orion.Thank you all for making my first year a great one! But I won't say goodbye to computer, since I will definitely explore and learn more and more.
Friday, April 5, 2013
Thursday, April 4, 2013
Problem Solving log -- paper folding problem
Program:Take a strip of paper and stretch it so that you have one end between your left thumb and index finger and the other between your right thumb and fore finger. Fold the strip so that the left end is on top of the right end. Repeat this several times, each time folding so that the left end is on top of the right end of the strip.
When you're done, keep holding the right end and unfold the entire strip. Some of the creases point vertex up, some down. Can you predict the sequence of ups and downs for any number of times you carry out the folding operation?
Understand the problem
I know that I can take a piece of paper, and stretch it and hold it using both hands. Then I fold the paper so the left end is on top of the right end. After I unfold it,there is a crease point down, we call it "down". We refold it like we did before, then fold it again (time 2), after unfolding, the pattern is up, down, up. Now we know how to fold the paper properly.
I know that I can take a piece of paper, and stretch it and hold it using both hands. Then I fold the paper so the left end is on top of the right end. After I unfold it,there is a crease point down, we call it "down". We refold it like we did before, then fold it again (time 2), after unfolding, the pattern is up, down, up. Now we know how to fold the paper properly.
The question is clearly asking for a method to predict the crease pattern, say, at time 5, what pattern of "up" and "down" folds do you get?
- Devise a Plan
- Plan A: write down the pattern and observe if there is any pattern.
- Carry out the Plan
- Plan A: write down the pattern
- time 1: d
- time 2: u d d
- time 3: u u d d u d d
- time 4: uuduuddduuddudd
- time 5: uuduudduudduddduuduuddduuddudd
- conclusion: it is pretty hard to see any pattern.
- Devise another Plan then...
- Plan B:
- visualize the problem, draw pictures.
- Carry out the Plan:
- Observation and Conclusion: After drawing what pattern looks like every time we fold the paper, We draw a red straight line through it center.We can see that the left half of the picture is the previous picture, and the right half is a rotated- 90-degrees-counterclockwise version of the left half. The blue line indicates this pattern.The center crease is always "down".
- After visualizing and find the pattern, we go back to the plan A to confirm it.
- Plan A: write down the pattern
- time 1: d
- time 2: u d d
- time 3: uud d udd
- time 4: uuduudd d uuddudd
- time 5: uuduudduuddudd d uuduuddduuddudd
- Pattern:
- the center is always d. left part is the copy of the previous one's pattern. The right part is symmetric to the left part with respect to the center point.
Monday, April 1, 2013
Weekly Log 10
What I learned about computers, networks:
Huge impact on everything: Computers have a huge impact on society in terms of work, leisure, privacy, education, and democracy, and other social conditions. Some people say technology is the driving force of society while others believe that social forces that are dependent on technology impose a great effect. It is hard to determine since our sources information regarding computers and society are partisan.
computers and work:
Shifts in the way how humans work: First,computers are the first dramatic shift in the way humans works. Probably the first shift is from hunter-gatherer to agricultural humans, then from production based on humans and animal muscle and individual crafts to manufacturing (industrial revolution).During industrial revolutions, technology increase production, meanwhile, it deprives traditional workers (e.g. weavers) of a livelihood. Some of the workers even smashed the machinery. Those who did gain employment with the new machinery often had to work 12, 14 or even longer every day. In a sense, industrial revolution decrease workers living standard in the first a few decades (ironically).Reports shows that productivity grew very slowly during the first decades of the industrial revolution.
Same paradox happens in computer era. Even though technology largely increases our productivity, it seems to lengthen our working hours. Moreover, many blue/while collar jobs disappeared and lots of people work for longer due to the fear of losing their jobs. In 1980s and 1990s, reports showed that household incomes dropped as productivity went up. Some argue that we have traded more stuff for less time.
Unemployment and jobs: ebb and flow with the cyclical recessions. Many jobs created (services, computer-related sectors) while others disappeared (typesetting, watchmaking, machining, telephone operators) due to the development of technology.
Working mode changes and telecommuting: Working mode changes dramatically as well.Increasing numbers of worker spent their working time in front of a computer and some use telecommute.Pros of telecommuting include flexible work hours, lower cost for office infrastructure,and a smaller social impact of commuting. Cons include intrusion into home life(lengthened working hours), reduced impact with co-workers, and less "visibility" to superiors.
Technology and privacy
We want network to share and there is a limit of how much we want to share. Some privacy is needed while some is bad, thus a balance is required. Using computers, privacy can be deliberately or inadvertently violated. Even though we can choose to share information narrowly with a certain group of people or with general public, privacy is often violated and information can be widely spread.Truth is, the surveys we do, our website viewing history, credit information, stuffs we buy,even current location can be accessible due to technology.Even laws are enacted to limit the privacy intrusion, computers accelerate the collection and spreading of this information. They also make it possible to combine information from several sources, so that you end up revealing a great deal more than you realized.
Huge impact on everything: Computers have a huge impact on society in terms of work, leisure, privacy, education, and democracy, and other social conditions. Some people say technology is the driving force of society while others believe that social forces that are dependent on technology impose a great effect. It is hard to determine since our sources information regarding computers and society are partisan.
computers and work:
Shifts in the way how humans work: First,computers are the first dramatic shift in the way humans works. Probably the first shift is from hunter-gatherer to agricultural humans, then from production based on humans and animal muscle and individual crafts to manufacturing (industrial revolution).During industrial revolutions, technology increase production, meanwhile, it deprives traditional workers (e.g. weavers) of a livelihood. Some of the workers even smashed the machinery. Those who did gain employment with the new machinery often had to work 12, 14 or even longer every day. In a sense, industrial revolution decrease workers living standard in the first a few decades (ironically).Reports shows that productivity grew very slowly during the first decades of the industrial revolution.
Same paradox happens in computer era. Even though technology largely increases our productivity, it seems to lengthen our working hours. Moreover, many blue/while collar jobs disappeared and lots of people work for longer due to the fear of losing their jobs. In 1980s and 1990s, reports showed that household incomes dropped as productivity went up. Some argue that we have traded more stuff for less time.
Unemployment and jobs: ebb and flow with the cyclical recessions. Many jobs created (services, computer-related sectors) while others disappeared (typesetting, watchmaking, machining, telephone operators) due to the development of technology.
Working mode changes and telecommuting: Working mode changes dramatically as well.Increasing numbers of worker spent their working time in front of a computer and some use telecommute.Pros of telecommuting include flexible work hours, lower cost for office infrastructure,and a smaller social impact of commuting. Cons include intrusion into home life(lengthened working hours), reduced impact with co-workers, and less "visibility" to superiors.
Technology and privacy
We want network to share and there is a limit of how much we want to share. Some privacy is needed while some is bad, thus a balance is required. Using computers, privacy can be deliberately or inadvertently violated. Even though we can choose to share information narrowly with a certain group of people or with general public, privacy is often violated and information can be widely spread.Truth is, the surveys we do, our website viewing history, credit information, stuffs we buy,even current location can be accessible due to technology.Even laws are enacted to limit the privacy intrusion, computers accelerate the collection and spreading of this information. They also make it possible to combine information from several sources, so that you end up revealing a great deal more than you realized.
Wednesday, March 27, 2013
Weekly log 9
What I Learned about OS:
operating system in the early days of electronic computers prepare a sequence of computer jobs to be run on computers. In order to deal with the delayed gratification, a job control software was developed and could provide the users with output nearly instantly. Rather than have everyone users wait for the first one to be finished,the feedback is provided to everyone at the same time. The is achieved by having a single CPU slice time between the various users. This is efficient because CPUs spent too much time waiting for resources to become available is there is no time-slicing.
For personal computer OS, initially, that means no OS required since each application took charge of the low-level details.There was only a single application running at a time, so no time-sharing was required. Rudimentary OS meant that the details of interacting with hardware could be delegated to hardware drivers, so that applications could more easily be written too run on different machines. Examples include CP/M and Geco. Apple and DOS made their appearance.
Then, OS for PC has time-slicing to run multiple applications.The power of hardware for personal computers made possible of time-sharing between multiple users, complete networking capabilities, accounting and logging of all system activity. Unix found its way to PCs in the form of linux and the Mac's OSX, and many capabilities found their way to the desktop with microsoft's NT.
An operating system should contain a kernel, providing access to hardware while shielding application soft ware; and a system utilities for file compression, dis fragmentation or formatting hardware.
My question:
How does the time-slicing work? I am quite confused about it .
Friday, March 15, 2013
Weekly log 8
What I learned this week:
sierp
; sierp : number -> image
; Sierpinski's triangle of depth d
(define sierp_0 15 "solid" "green")
; sierp : number -> image
; Sierpinski's triangle of depth d
(define (sierp d)
(cond
[(zero? d) sierp_0]
[(above (above (sierp (sub1 d))
(beside (sierp (sub1 d)) (sierp (sub1 d))))]
How does it work??
first, if d is zero, DrRacket produces sierp_0, which we define as a size-15 solid green triangle. If d is greater than 0 (above 0),say d = 1, we get
[(above (above (sierp (sub1 1))
(beside (sierp (sub1 1)) (sierp (sub1 1))))]
=>
[(above (above (sierp 0)
(beside (sierp 0) (sierp 0)))]
=>
now we get a sierp_0 above two sierp_0 sitting side by side together.
basically, sierp_0
sierp_0 sierp_0
Feedback on the test:
I think this test is harder than the last one because neither my friend nor I had time to check it over, compared to the last time which we got 30 minutes left. And I think I got the first question wrong because I didn't know what the question was asking about by "how is the way computer store info differ than the way viewers see the info?". Can I say viewers view a picture while computer store a bunch of bits?
Reminder for myself and my friends in this class:
The deadline for wikiproject is approaching (next Friday),please make it adjust your schedule and to-do-list! I hope this time I can ace it!!
sierp
; sierp : number -> image
; Sierpinski's triangle of depth d
(define sierp_0 15 "solid" "green")
; sierp : number -> image
; Sierpinski's triangle of depth d
(define (sierp d)
(cond
[(zero? d) sierp_0]
[(above (above (sierp (sub1 d))
(beside (sierp (sub1 d)) (sierp (sub1 d))))]
How does it work??
first, if d is zero, DrRacket produces sierp_0, which we define as a size-15 solid green triangle. If d is greater than 0 (above 0),say d = 1, we get
[(above (above (sierp (sub1 1))
(beside (sierp (sub1 1)) (sierp (sub1 1))))]
=>
[(above (above (sierp 0)
(beside (sierp 0) (sierp 0)))]
=>
now we get a sierp_0 above two sierp_0 sitting side by side together.
basically, sierp_0
sierp_0 sierp_0
Feedback on the test:
I think this test is harder than the last one because neither my friend nor I had time to check it over, compared to the last time which we got 30 minutes left. And I think I got the first question wrong because I didn't know what the question was asking about by "how is the way computer store info differ than the way viewers see the info?". Can I say viewers view a picture while computer store a bunch of bits?
Reminder for myself and my friends in this class:
The deadline for wikiproject is approaching (next Friday),please make it adjust your schedule and to-do-list! I hope this time I can ace it!!
Monday, March 11, 2013
weekly log 7
What I learned about contemporary computer architecture:
some main features of hardware architectures: a Central Processing Unit, which contains an ALU and a control unit.
Control unit is responsible for sequencing the operations. Evolved from physically soldering together circuits or connecting them with plugs, the sequencing instructions are now stored in main memory. These information are represented by a list of numbers, called op codes. This is how Von Neumann architecture works basically.
The choice of instruction set is important. One is a small set of simple instructions and the other one is a large set of more complex instructions.The CPU communicates with main memory over a bus which refers to a set of wires.The CPU can get smaller amounts of memory for immediate use, called register; and intermediate amounts of memory called cache, and main memory requiring small, medium and large amounts of time respectively.
Here is how machine cycle works. Say there is a demand to add two numbers stored in main memory. The first number is loaded and being copied the contents of Address A1 into register R1. Next the machine cycle loads the second command into instruction register and decodes it and advances the PC to the next command address, loads the contents of main memory A2 into register R2. The result of the operation is stored in R3. Next the machine cycle loads the third command into the instruction register, stores the contents of register R# into main memory location A3. The next command is loaded then and the machine cycle stops.
Feedback about Project:
The project ecosystem is not easy. Especially for the last definition. It was not until that I went to helping center that I realized that in order to make the big bang work, ecosystem should contain variables to update every time instead of constant numbers.Because I didn't pay enough attention to the instruction on top of the DrRacket File,I thought I did something wrong because when I clicked "run" nothing happened. What I learned from this is always be meticulous and careful, plus contact with Professor and TA in time to avoid tortuous path.
Question about the coverage of upcoming test:
Does it cover recursion videos (4 of them)?
some main features of hardware architectures: a Central Processing Unit, which contains an ALU and a control unit.
Control unit is responsible for sequencing the operations. Evolved from physically soldering together circuits or connecting them with plugs, the sequencing instructions are now stored in main memory. These information are represented by a list of numbers, called op codes. This is how Von Neumann architecture works basically.
The choice of instruction set is important. One is a small set of simple instructions and the other one is a large set of more complex instructions.The CPU communicates with main memory over a bus which refers to a set of wires.The CPU can get smaller amounts of memory for immediate use, called register; and intermediate amounts of memory called cache, and main memory requiring small, medium and large amounts of time respectively.
Here is how machine cycle works. Say there is a demand to add two numbers stored in main memory. The first number is loaded and being copied the contents of Address A1 into register R1. Next the machine cycle loads the second command into instruction register and decodes it and advances the PC to the next command address, loads the contents of main memory A2 into register R2. The result of the operation is stored in R3. Next the machine cycle loads the third command into the instruction register, stores the contents of register R# into main memory location A3. The next command is loaded then and the machine cycle stops.
Feedback about Project:
The project ecosystem is not easy. Especially for the last definition. It was not until that I went to helping center that I realized that in order to make the big bang work, ecosystem should contain variables to update every time instead of constant numbers.Because I didn't pay enough attention to the instruction on top of the DrRacket File,I thought I did something wrong because when I clicked "run" nothing happened. What I learned from this is always be meticulous and careful, plus contact with Professor and TA in time to avoid tortuous path.
Question about the coverage of upcoming test:
Does it cover recursion videos (4 of them)?
Thursday, March 7, 2013
Weekly log 6 post reading week
This week we learned:
We learned a coding/decoding method called ROT 13 and we actually created a function on Dr.Racket to mess with. The idea is easy to comprehend to humans, however, like the peanut butter sandwich recipe, we need to be very specific and consider each situations, like considering the case that our input is not a letter, for instance, “?” or “=”. In this case, we need to use a function called “cond”
(cond
[question1 answer1]
[question2 answer2]
...
[else defaultAnswer])
If question1 evaluates to true, answer1 is produced. Otherwise we move on to the next question/answer pair. If none of the others match, we get else/defaultAnswer.
[question1 answer1]
[question2 answer2]
...
[else defaultAnswer])
If question1 evaluates to true, answer1 is produced. Otherwise we move on to the next question/answer pair. If none of the others match, we get else/defaultAnswer.
Thank to Danny’s explanation, not it is really clear.
If we input an “?”, we should get a “?” back.
My questions about assignment 1:
The ecosystem one:
; update-ecosystem : ecosystem -> ecosystem
; Produce a new ecosystem accounting for new
; mouse and fox births and deaths.
(define (update-ecosystem eco)
(make-ecosystem
; max makes sure mouse population doesn't drop below 1
(max 1
; !!! fix the expression the comment below describes.
; subtract number of mice that get eaten annually from the number
; of mice in eco, plus the new births
(- (+ MICE-START (new-mice MICE-START )) ;mice in eco plus the new births
(eaten-mice (+ MICE-START (new-mice MICE-START )) ;eaten mice (mice) (foxes)
(+ FOXES-START (new-foxes (+ MICE-START (new-mice MICE-START )) FOXES-START)))))
; max makes sure fox population doesn't drop below 1
(max 1
; !!! fix the expression the comment below describes.
; subtract number of foxes that die annually from the number
; of foxes in eco, plus the new births
(- (+ FOXES-START (new-foxes (+ MICE-START (new-mice MICE-START )) FOXES-START)
foxes in eco plus new births
(dead-foxes (+ FOXES-START (new-foxes (+ MICE-START (new-mice MICE-START )) FOXES-START)) ))))))
dead-foxes nf nm
(dead-foxes (+ FOXES-START (new-foxes (+ MICE-START (new-mice MICE-START )) FOXES-START)) ))))))
dead-foxes nf nm
However when I run it, the mice eat all of the foxes immediately!
What did I do wrong?
Sunday, February 17, 2013
Weekly Log5
What I learned this week:
1. Digital and Binary Concept
Computers are based on two ideas, digital and binary. Digital means the discrete states in stead of smoothly-moving states. Binary is the smallest and most easily designed states. It is a number system with a base 2 instead of 10 in our most frequently used number system.
2.Boolean System
Professor explained Boolean logic by using electric circuit.
(and a b): the output is true if and only if both a and b are true.It is false if either a or b is false.
(or a b): the output is true if either a or b is true. It is false if and only if both a and b are false.
(not true) is false.
(not false) is true.
3.binary operation
0 + 0 =0
0 + 1 =1
1 + 0 =1
1 + 1 =0 (carry 1 to the next digit)
how to convert binary number to number:
for example: 110 = 0 *1 + 1*2 + 1*4 =6
My questions on DrRackt:
key-press : image string -> image
; Produce the current image for any key except
; down arrow, but STOP for down-arrow
(define (key-press im k)
(cond
[(equal? k "down") (stop-with STOP)]
[else im])) ------> here I don't understand "cond" and "equal?" What is the "k" for?)
(check-expect (key-press BAR "hello!") BAR) ---> What does this mean? what is the "hello!" for?)
(check-expect (key-press SH "down") (stop-with STOP))
Questions on the lecture:
How to write numbers in binary?
1. Digital and Binary Concept
Computers are based on two ideas, digital and binary. Digital means the discrete states in stead of smoothly-moving states. Binary is the smallest and most easily designed states. It is a number system with a base 2 instead of 10 in our most frequently used number system.
2.Boolean System
Professor explained Boolean logic by using electric circuit.
(and a b): the output is true if and only if both a and b are true.It is false if either a or b is false.
(or a b): the output is true if either a or b is true. It is false if and only if both a and b are false.
(not true) is false.
(not false) is true.
3.binary operation
0 + 0 =0
0 + 1 =1
1 + 0 =1
1 + 1 =0 (carry 1 to the next digit)
how to convert binary number to number:
for example: 110 = 0 *1 + 1*2 + 1*4 =6
My questions on DrRackt:
key-press : image string -> image
; Produce the current image for any key except
; down arrow, but STOP for down-arrow
(define (key-press im k)
(cond
[(equal? k "down") (stop-with STOP)]
[else im])) ------> here I don't understand "cond" and "equal?" What is the "k" for?)
(check-expect (key-press BAR "hello!") BAR) ---> What does this mean? what is the "hello!" for?)
(check-expect (key-press SH "down") (stop-with STOP))
Questions on the lecture:
How to write numbers in binary?
Tuesday, February 12, 2013
Weekly Log4
What I learned last week:
Last week I learned something new to mess with pictures in DrRacket. First one is "list". Obviously, "list" function can list strings, pictures and numbers.For example,if we define "menagerie" as "list" several pictures, we can get the first picture of the list by inputting "first menagerie". We can the rest of the list by inputting "rest menagerie". Similarly, "reverse menagerie" gives the reverse version of the list.
Also, "struct" is like a customized combination which can include numbers, strings, pictures, and so on. We can define-struct something as a combination of picture, name and number of feet(place holders).For example, define-struct "venus" name pic feet.Then define specific things by "make-venus" and tells DrRacket the exact name, picture and number of feet.(define venusA (make-venus "elephant" jumbo 4)). We can get particular elements, such as the number of feet, by saying (venus-feet venusA), DrRacket should give us "4" back.
We can also see the whole list of colors of a picture by inputting "(define pingu-list (image->color-list pingu))". DrRacket will give us a long list. The first number is the red color, second is the green, third is the blue and the last is the level of opacity.
What I am confused about:
How many arguments can "define-struct" contain? What is the maximum? How does DrRacket list all the colors? Through which order? From Top right to bottom left?
Feedback of the Test:
I studied for the test with a friend and we talked about things we were confused about and exchanged notes. This helps both of us and we both think the test is not as hard as we expected it to be. Here is one thing we need to improve that we should focus on memorizing instead of understanding stuffs. it is more efficient to try out new functions in DrRacket.
Tuesday, February 5, 2013
Weekly Log3
What I learned about computer history:
This week we finally finished the computer's history. We started from 1930s, the era of mechanical computing 1930c mechanical computing devices continued to develop information stored and manipulated in the macroscopic position of devices such as gears, relays, and inputs include punched cards, paper tapes.Examples are Hollerith's device for tabulating US census and analog computers, which store information in a smoothly-varying form. Then there comes electro-mechanical computers which use both electronic components and mechanical components. All electronic computing devices store information in vacuum tube, such as American Atanosoff-Berry machine which is not programmable. Later, ENIAC invented and could solve all problems Turing machine could solve.Transistors finally replaced vacuum tubes in 1950s due to its small, reliable efficient features compared with vacuum tubes'large power consumption, large space requirement and unreliability when warmed up. Then Von Neumann architecture developed, meaning storing both data and instruction to manipulate in the same memory device,Small-scale experimental machine and EDSAC implemented it. Then UNIVAC mass produced computer appeared. The invention of microprocessors in 1970s implied the dawn of contemporary computers.
More familiar with Dr.Racket:
I learned the big-bang function and can make an event now.
My refection:
Then tendency of the development of computers seems to be more portable, programmable, engery-efficient,and electronic.
The funding is vital to technology since Charles Babbage designed difference engine and analytic engine (the prototype of modern computers) but failed to produce them due to inadequate financing.
My Questions: Does electro-mechanical computers more advanced than mechanical ones? How? Is Electro-mechanical considered "electronic"? What is "Electronic" except for the usage of vacuum tubes.
Sunday, January 27, 2013
Weekly Log2
Something new I learned this week:
This week I learned the steps to solve a problem. Take the classic paper-folding example, first step is to understand the problem: "Given the number of folds, figure out the crease pattern." It is important to know that the crease pattern means whether the lines made by paper folding are up or down. Then we need to devise a plan, like "try small cases and look for a pattern". Then execute the plan, and look back. In the first class, when professor brought up this question, I had no clue what he was talking about, the core issue was misunderstanding of the word "crease".After asking my neighbor,I finally figured it out.
I also learned the evolution of computers and programs. The history of computers can be traced back to 5 thousands years ago, the ancient tally system: clay tablets and abacuses.The number system Hindu-Arabic in ancient world uses positional notation.
In machine age, there arises gears to extract taxes, called Pascaline. During industrial revolution, French inventor Jacquard invented Jacquard loom that could automatically weave complicated patterns. Babbage difference engine would have evaluated polynomials if the fund was adequate.All those inventions and progresses lead to our computers today.
Reflection about my study method:
I think it is important to get out the shell and ask for help actively. I used to be ashamed of my inadequate English and tried to hide it by keeping silent when encounter problems, now I realize that the more you hide, the less likely you will ever improve.
Questions and Challenges:
However, even I can digest the general information, I can't understand
analog computers model wold using smoothly-varying quantities such as water", what is analog computers model? And why is it "smoothly-varying"? Hope my knowledgeable TA can help me out.
My achievement:
I also learned another interesting function of DrRacket, which is designing definition. I can handle the basic operation such as defining identifiers to stand for values,defining a function with a place-holder for a value used repeatedly.
Friendly remainder for everyone:
One important remainder for everyone especially myself -- always check your email -- because I don't know my tutorial room changed from MP to BA, I missed my tutorial...True story.
This week I learned the steps to solve a problem. Take the classic paper-folding example, first step is to understand the problem: "Given the number of folds, figure out the crease pattern." It is important to know that the crease pattern means whether the lines made by paper folding are up or down. Then we need to devise a plan, like "try small cases and look for a pattern". Then execute the plan, and look back. In the first class, when professor brought up this question, I had no clue what he was talking about, the core issue was misunderstanding of the word "crease".After asking my neighbor,I finally figured it out.
I also learned the evolution of computers and programs. The history of computers can be traced back to 5 thousands years ago, the ancient tally system: clay tablets and abacuses.The number system Hindu-Arabic in ancient world uses positional notation.
In machine age, there arises gears to extract taxes, called Pascaline. During industrial revolution, French inventor Jacquard invented Jacquard loom that could automatically weave complicated patterns. Babbage difference engine would have evaluated polynomials if the fund was adequate.All those inventions and progresses lead to our computers today.
Reflection about my study method:
I think it is important to get out the shell and ask for help actively. I used to be ashamed of my inadequate English and tried to hide it by keeping silent when encounter problems, now I realize that the more you hide, the less likely you will ever improve.
Questions and Challenges:
However, even I can digest the general information, I can't understand
analog computers model wold using smoothly-varying quantities such as water", what is analog computers model? And why is it "smoothly-varying"? Hope my knowledgeable TA can help me out.
My achievement:
I also learned another interesting function of DrRacket, which is designing definition. I can handle the basic operation such as defining identifiers to stand for values,defining a function with a place-holder for a value used repeatedly.
Friendly remainder for everyone:
One important remainder for everyone especially myself -- always check your email -- because I don't know my tutorial room changed from MP to BA, I missed my tutorial...True story.
Thursday, January 17, 2013
Weekly Log 1: Starting to Get Familiar with Algorithms
Before listening to the Computer Science lecture, I, as a not-so-much tech-savvy type, believed that computers tend to be more like artificial intelligence, which is manipulated by humans and secretly planning to free from chains. In addition to fear and concern, I, like everyone else, rely on computer programs and applications tremendously without thinking about how those amazing tools were created. After the first lecture, I sort of gain a sense of why humans civilizations need such a machine to promote progress and how programs are created. The thing is, we need computers to do work for us and facilitate our life (obviously they won't get bored). We create programs by giving computers direct and definite commands step by step to solve certain problems. Like tutoring a toddler to make a peanut butter sandwich, we need to give very specific instructions to avoid vagueness and misunderstanding.
A good example of creating simple algorithm is "Euclid's GCD" using DrRacket. To be honest, I was completely lost when Professor Heap talked about Euclid's method. Then after reading the numeric examples on Wikipedia, I understand. Now everything makes sense. However, the thing confuses me the most is the plenty of brackets needed as part of input. Guess I will develop my computer mindset along with the course.
Week 2 we dig deeper about algorithms and basically understood that algorithms are not perfect. There is no such algorithm that can solve every problem. Partially because sometimes the problem itself is self-contradictory like " this statement is false", the algorithm to decide whether declarative English sentences are true cannot process it.
Another drawback is that algorithms may take too long when the operation is lengthy such as Fibonacci number, (by definition, the first two numbers in the Fibonacci sequence are 0 and 1 (alternatively, 1 and 1), and each subsequent number is the sum of the previous two). In order to know the (fib 30), you need to know fib 29 and fib 28, which leads to fib 28, 27, and fib 27, 26 and etc. Even computers are expected to be fast, they cannot process such large amount of operation in a short time. The thing I found frustrating is that when professor was typing the instruction on the DrRacket platform, I had no idea how to read or interpretate those daunting codes. I really need to talk to my TA.
When it comes to debating between two algorithms designed to solve the same problem, we definitely should choose the simple one. The dictionary example illustrates how linear search and binary search work, the former clearly requires a huge amount to time while the latter is terse and fast.
When considering about creating a new algorithm, we have to know the core of the problem, then devise a plan or more plans then try the plan(s). After testing, assessment and evaluations is necessary to improve and polish the algorithm.
Subscribe to:
Posts (Atom)
