Algorithms and Data Structures — Sorting
Sorting animation
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 30 / 138
Theory of Computation — halting problem
The argument that the power of mechanical computations is limited
is not surprising. Intuitively we know that many vague and speculative
questions require special insight and reasoning well beyond the capacity of
any computer that we can now construct or even foresee. What is more
interesting to computer scientists is that there are questions than can be
clearly and simple stated, with an apparent possibility of an algorithmic
solution, but which are know to be unsolvable by any computer.
Linz 6th, Section 12.1, page 310
An example of such a problem is if a grammar is ambiguous or not. (This can
formalized and is an interesting issue in constructing compilers.)
The proof that there are specific problems that cannot be solved, if not remarkably
simple.
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 31 / 138
Theory of Computation — halting problem
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 32 / 138
Numerical Analysis
A report from the United States General Accounting Office begins “On
February 25, 1991, a Patriot missile defense system operating at Dhahran,
Saudi Arabia, during Operation Desert Storm failed to track and intercept
an incoming Scud. This Scud subsequently hit an Army barracks, killing
28 Americans.” The report finds the failure to track the Scud missile was
caused by a precision problem in the software.
Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, SIAM, 1996,
ISBN13 9780898713558. Page 505.
http://www.ima.umn.edu/~arnold/disasters/disaster.html
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 33 / 138
Networking
In the sliding window protocol the window size is the amount of data a sender is
allowed to have sent into the network without having yet received an
acknowledgment for it.
In Internet routers, active queue management (AQM) is a technique that consists
in dropping packets before a router’s queue is full.
Historically, queues use a drop-tail discipline: a packet is put onto the queue if the
queue is shorter than its maximum size. Drop-tails queue have a tendency to
penalize bursty flows.
Active queue disciplines drop packets before the queue is full based on probabilities.
Active queue disciplines are able to maintain a shorter queue length than the
drop-tail queue which reduces network latency.
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 34 / 138
Distributed Computing — barber shop problem
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 35 / 138
Parallel Computing
sing instr mult instr
single data SISD MISD
multiple data SIMD MIMD
Flynn’s taxonomy
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 36 / 138
Information Management/Database Systems
The join of two relational tables
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 37 / 138
Software Engineering — waterfall model
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 38 / 138
Human-Computer Communication/Interaction
The Miracle Worker scene from Star Trek 4: The Voyage Home on YouTube.
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 39 / 138
Graphics and Visual Computing
Frozen Fire
• 37 hours to render
• POV ray uses a C-like programming language
Computer Science (Introduction) What is CS? (Overview of Fields) © 5 February 2024 40 / 138