My Courseplan

This is a preliminary courseplan

Intro

More content soon to come...

.

Work

More content soon to come...

Summaries

Preliminary research on some Computer Science topics

Programming Languages

A programming language is a language that lay out instructions that can be understood by systems like computers and used to carry out tasks to produce outputs. Most programming languages require the code to be written in sequential order, and the systems execute them in such sequene. Troughout time many programming languages were created, actually yhr earliest example of a programming language came before the digital computer. It was invented in Baghdad in the 9th century during the Islamic golden age. It was created for an automated flute player. Programming languages could be described by their form and meaning, Form, also known as the syntax, is the most visible layer of a programming language. It tends to be textual in form butthere exists some programming languages that are graphical by design. The syntax of a language determoines the level of complexity a language could have, languages with a high amount of syntax such as fucntions, tend to me more complex and diverse. Not all programs that are correct in their syntax are correct in their meaning however. There are some instances where although the code makes sense, it does not return the desired result. Or sometimes could return an undefined result. If I could explain using natural languages, an example for such a statement would be “Colorless green ideas sleep furiously’ whci was introduces bu Noam Chomsky in hos 1957 book Syntactic Structures While the sentence makes gramattical sense, it does not make any sense semantically. Programming languages share some properties with conventional languages in the sene that they are vehicles for communication and they are described using both ehteir syntax and theyr semantics. But they differ from natual languages in the sense that programming languages can be studies in their entirety and changes in their structure is made clear to the users of the language. On the other hand, natural languages can never be studied in their entirety since they constantly evolve to meet the needs of the users whom are a part of many different communities

Links for Further Study

Some Questions for Further Research

  • What are prototype programming languages?
  • Why cant programming languages be written in natual languages and still have high functionality?
  • How are programming languages ranked by their capabilities?


Robotics and Artificial Intelligence

While Robotics and Artificial Intelligence are very separate fields, often they get mixed together. Neither of the fields can be classified fully as there is a lot of variation between applications. For example, some would define robots as machines that interact with humans, or can think by themselves. But probably the most widely accepted definition of robotics would be programmable machines which can act autonomously to some extent. Artificial Intelligence on the other hand could be defined as computer systems that can execute tasks that would have requires human intelligence. AI is commonly used in search engines, and satellite navigation systems. The basics of AI solving probles is pretty simple, however when it comes to execution, things start to get very complicated. The computer must gather data by itself, analyze them, and decide on what to do with it. It might not have the appropriate data to solve its problem and has to decide if it has enough data to accomplish its task. Even then this type of computers are not exactly smart. They are good at solving the problem they were programmed for, and lack analytical thinking abilities. In between Robotics and AI, there are Artificially Intelligent Robots. More often then not, they are robots controlled by artificial intelligence. Most robots are not artificially intelligent; therefore are limited in their functionality. For example, a factory robot could be programmed to only pick and place objects, and it wouldn’t stop until it has been powered off. On the other hand, an artificially intelligent robot could perhaps differentiate between the objects it is interacting with, and place them at different spots. The real challenge of Artificial intelligence is to understand how human brains work. Although we know what it looks like, what it is made of and what it does, we don’t know how it does what It does.

Links for Further Study

Some Questions for Further Research

  • Could the problems of human society like corruption, injustice, crime, etc. be solved by means of artificial intelligence and robotics?
  • Artificial intelligence and robotics are progressing at an ever increasing pace. What should be done for the displaced workforce?
  • What is the next step of evolution for artificial intelligence and robotics?


Theory of Computation

Theory of Computation is concerned with the study of the general properties of computation, and understanding the nature of efficient computation. Theorists work to answer questions like how the resources used to solve a problem change with the size of the problem, or what kind of problems could be efficiently solved? And on top of that they provide new approaches to common problems. Although it directly impacts our daily life, the Theory of Computing mainly orbits around a core of fundamental ideas and problems. An example to these problems would be the P vs. NP problem: The problem questions whether that if a problem can be quickly verified, given the solution, could also be solved just as quickly without the solution. Since this is an abstract idea, one of the simpler ways of explaining is using a Sudoku example. It takes more time to solve a sudoku puzzle than it takes to check if a solution is true. Especially as the grid gets bigger, time to solve the puzzle increases exponentially. On the other hand, time spent on verifying a solution would increase in a relatively linear manner. Another fundamental problem is to find more efficient ways to solve a problem. Computational theorists work to improve the efficiency, be it related to time, money or other resources. A real-world example of such would be a delivery company who restricts the number of left turns made by its trucks, while at first it may sound inefficient, but by reducing time spent idling on stoplights, the trucks can deliver more packages with the same amount of resources. While its abstract nature makes it hard for us to relate to the real world, the Theory of computation also had a significant impact on the development of computational technology. Some examples are the invention of different encryption algorithms, secure electronic commerce and efficient algorithms used to route data through networks.

Links for Further Study

Some Questions for Further Research

  • What's the difference between the turning machine and current computers?
  • What would the effect of proving the P vs. NP problem?
  • Could we create numbers that are truly random?


Natural Language Processing

Natural language processing bridges computer science, linguistics and artificial intelligence. It is used to allow computers understand human languages and connect them with meanings which would let them execute tasks. Natural Language Processing (NLP) systems rely on machine learning to analyze and identify language structures. This way developers don't need to input large amounts of predefined rules and structures on top of that, the system becomes more robust in the cases of unidentifiable input or input errors. Until recently, most research has went into increasing the learning efficiency however currently research has been focusing on unsupervised learning. This way, systems could learn from input that has not been inspected by humans. While this approach creates more undesirable results, the amount of data available currently makes up the difference for poor quality. Most users see the impact of NLP on translation services. As our world gets more connected through the internet, it becomes more and more important to have the same information available in many different languages. The problem in this case is not to translate words, it is to preserve the meaning of the phrases and sentences. The complexity arises because computers have to recognise the meaning of words and understand sentences; they then have to divide the text into words, translate and stitch it back together without losing the meaning. This could cause words used in the final product to be much different than their direct meanings. Because of this challenge, computers can’t translate text as good as humans can, however they can translate it well enough that the meaning would be very similar to the original. To make translations more accurate, computers are fed with a plethora of human translated documents. Therefore, the more human translated documents are available in a language, the more accurate the translation becomes.

Links for Further Study

Some Questions for Further Research

  • How possible is it to tell apart a bad machine translation from a bad text that a foreign learner wrote themselves?
  • How does Google Translate or other online translation deal with words that don't exist in the other language?
  • How does machine translation services translate poetic language such as sayings?


Embedded Systems

Embedded systems are combinations of dedicated hardware and software that are often characterized with low power consumption and specialized workload. They also differ from conventional desktop computers in the sense that they are built into the system they control/ There are no hard rules when it comes to their implementation. For example while some have complicated user interfaces, some don't have any and their tasks could range from simply controlling lighting to complex tasks such as telecommunications. In simple cases like the latter, microprocessor based systems are most often used whereas microcontroller based systems are used in tasks like robotics and automation. Their main difference is while microprocessors do not have ram and storage built into the chip, microcontrollers could have communication ports as well. The software aspect of embedded systems is also similarly differentiated. While microprocessors are often programmed directly using simple languages, microcontrollers tend to have operating systems and even stripped down desktop operating systems in systems that are more capable. Embedded system design combines both the hardware and software designs, usually led by a single group of designers. This allows for high levels of optimization and result in very cost effective systems. This synergy is beneficial not only because of the optimizations it creates but also because most applications of embedded systems require high predictability and low fail rate operation. Such predictability is often not found in conventional computers because they tend to have many more tasks at hand. Development of embedded systems differs strongly from conventional computers. While a conventional developer can both run and debug the software at the same time, an embedded systems developer would tend to use specialized hardware attached to the target system in order to debug it. In some cases they could also run simulation software on conventional computers to be able to debug the system while running it virtually. Some examples of embedded systems are Automated teller machines, thermostats and calculators.

Links for Further Study

Some Questions for Further Research

  • What is the future of embedded systems?
  • What are some advancements in embedded software engineering?
  • Could machine learning be combined with embedded systems?


Randy Pausch's Time Management Lecture

Professor Randy Pausch gave his lecture on time management to a full auditorium at the University of Virginia. In his lecture Pausch explained the importance of time as a commodity as well as effective time management techniques and some mistakes. Pausch was a professor of Computer Science, Human-Computer Interaction and Design at the Carnegie Mellon University (CMU). Besides co-founding the Entertainment Research Center at CMU, he is also known for his contributions to the Alice project, a graphic programming teaching system, his interdisciplinary approach that combines arts and sciences as well as his pioneering efforts in the field of virtual reality. Pausch’s Lecture was concise as he delivered information with pinpoint accuracy. He introduced a four quadrant planning system to his audience where tasks were grouped according to their deadlines and importance. An example of the four quadrant to-do list can be found below this summary. He continued to stress the importance of planning throughout his lecture by how a good filing system could make lives more efficient as it would make the need for asking someone where to find appropriate paperwork obsolete. To top that off, he took the filing system to another level by separating trash paperwork from the rest, as it would take longer for that bin to fill up, it created a back-trackable despising system. Pausch also spared a significant portion of his lecture on explaining to his audience the difference of productive and poor delegation. For example he reasoned that if people are taken to do some work, they should also be given the necessary resources (funding, support, etc.) as well. Otherwise it would give the impression of distrust. He also touched on why the manager in the situation should do the ugliest work, as it would set an example for the subordinate. He also makes it clear that it is more efficient to make a task as specific as possible as to reduce the unknowns the suboırdinate may have. His lecture on time management has been praised as he delivered it in an engaging and entertaining manner as well as its high density of useful information. As he wrapped up his lecture, his audience stood to applaud him.

References

About Me

Hello. I’m Kaan.

So far, I’ve lived in three countries, I have an insatiable urge to keep moving around and exploring. Maybe it has something to do with my passion for sailing; I picked up sailing as a hobby when I was in elementary school, and am quite fond of it (as you can tell by the theme of my website). As I grew older I started sailing competitively, first in the Laser 4.7 class and then the Laser Radial class. I also worked part time as a sailing instructor. Although I stopped sailing when I moved away from Turkey, I am looking forward to the day when I will feel the warmth of the sun on my shoulders and hear the waves crashing on to the hull.

I moved to Miami, Florida midway through high school. With a group of friends, we achieved our science teacher’s dream (Salute! Mr. Donovan) and formed a FIRST Robotics Competition Team. We were pretty successful and went on to world championships three years in a row. (Click here to learn more about FIRST Robotics) And when I wasn’t in the machine shop, I worked at my family’s restaurant in Miami Beach.

By the time I graduated from high school, I had a decent experience with the hardware side of robotics, however I was lacking in programming. That’s why I chose to study Computer Science and my urge to move is why I chose to come to Qatar. Hopefully by the time I graduate from university, I will have the knowledge I seek.

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form