83 Matching Annotations
  1. Jul 2022
    1. Computer science is the subject that studies what computers can do and investigates the best ways you can solve the problems of the world with them. It is a huge field overlapping pure mathematics, engineering and many other scientific disciplines. In this video I summarise as much of the subject as I can and show how the areas are related to each other. #computer #science #DomainOfScience
    1. An instance may be given of the necessity of the “ separate sheet ” system.Among the many sources of information from which we constructed our bookThe Manor and the Borough were the hundreds of reports on particular boroughsmade by the Municipal Corporation Commissioners in 1835 .These four hugevolumes are well arranged and very fully indexed; they were in our own possession;we had read them through more than once; and we had repeatedly consulted themon particular points. We had, in fact, used them as if they had been our own boundnotebooks, thinking that this would suffice. But, in the end, we found ourselvesquite unable to digest and utilise this material until we had written out every oneof the innumerable facts on a separate sheet of paper, so as to allow of the mechanicalabsorption of these sheets among our other notes; of their complete assortment bysubjects; and of their being shuffled and reshuffled to test hypotheses as to suggestedco-existences and sequences.

      Webb's use case here sounds like she's got the mass data, but that what she really desired was a database which she could more easily query to do her work and research. As a result, she took the flat file data and made it into a manually sortable and searchable database.

  2. Jun 2022
  3. May 2022
    1. In explaining his approach, Luhmann emphasized, with the first stepsof computer technology in mind, the benefits of the principle of “multiple storage”: in the card index itserves to provide different avenues of accessing a topic or concept since the respective notes may be filedin different places and different contexts. Conversely, embedding a topic in various contexts gives rise todifferent lines of information by means of opening up different realms of comparison in each case due tothe fact that a note is an information only in a web of other notes. Furthermore it was Luhmann’s intentionto “avoid premature systematization and closure and maintain openness toward the future.”11 His way oforganizing the collection allows for it to continuously adapt to the evolution of his thinking and his overalltheory which as well is not conceptualized in a hierarchical manner but rather in a cybernetical way inwhich every term or theoretical concept is dependent on the other.

      While he's couching it in the computer science milieu of his day, this is not dissimilar to the Llullan combinatorial arts.

  4. Apr 2022
    1. An alternative definition for computer science, then, is to say that computer science is the study of problems that are and that are not computable, the study of the existence and the nonexistence of algorithms.

      definition of computer science

    2. Computer science is the study of problems, problem-solving, and the solutions that come out of the problem-solving process. Given a problem, a computer scientist’s goal is to develop an algorithm, a step-by-step list of instructions for solving any instance of the problem that might arise. Algorithms are finite processes that if followed will solve the problem. Algorithms are solutions.

      Computer science definition

  5. Mar 2022
    1. Exercises

      2.1.b

      Counterexample: \(\to := {(a, c), (b, c)}\)

      2.3

      \(a \to b\) iff \(a\) encodes Turing machine \(M_a\) and \(b\) encodes a valid terminating computation (sequence of states) of \(M_a\).

      2.9

      Let \(|w|_a := \varphi_a(w)\).

      \(\varphi(w) := 3^{|w|_a} 2^{|w|_b}\)

      Proof

      1. Let \(u \to_1 v\). Then \(\varphi(v) = 3^{|v|_a} 2^{|v|_b} = 3^{|u|_a+1} 2^{|u|_b-2} = 3^{|u|_a} 2^{|u|_b} \frac{3}{4} = \varphi(u) \frac{3}{4} < \varphi(u)\).
      2. Let \(u \to_2 v\). Then \(\varphi(v) = 3^{|v|_a} 2^{|v|_b} = 3^{|u|_a-1} 2^{|u|_b+1} = 3^{|u|_a} 2^{|u|_b} \frac{2}{3} = \varphi(u) \frac{2}{3} < \varphi(u)\).

      2.17

      No.

      Let \(a > b\). Then \([b^n a | n \in [0, 1, \ldots]]\) is an infinite chain according to \(>_{Lex}\).

      Note: This exercise completes the discussion of Lemma 2.4.3.

      4.2

      Let \(s, t\) be terms. Run BFS from \(s\) using \(\leftrightarrow^E\). If \(t\) is encountered, conclude that \(s \approx_E t\). If the BFS finishes enumerating the equivalence class without encountering \(t\), conclude that \(\lnot s \approx_E t\).

      4.4

      Let \(x \in Var(r) \setminus Var(l)\). Let \(p\) be a position of \(x\) in \(r\).

      Infinite chain:

      • \(t_0 = x\)
      • \(t_{i+1} = r[t_i]_p\)

      4.18

      1. a
        • Unifier: \({x \to h(a), y \to h(a)}\)
        • Matcher: \({x \to h(a), y \to x}\)
      2. b
        • Unifier: Unsolvable
        • Matcher: \({x \to h(x), y \to x}\)
      3. c
        • Unifier: \({x \to h(y), z \to b}\)
        • Matcher: Unsolvable
      4. d
        • Unifier: Unsolvable
        • Matcher: Unsolvable

      5.2

      Counterexample TRS \(R\):

      1. \(a \to b\)
      2. \(b \to b\)
  6. Feb 2022
    1. 9/8g Hinter der Zettelkastentechnik steht dieErfahrung: Ohne zu schreiben kann mannicht denken – jedenfalls nicht in anspruchsvollen,selektiven Zugriff aufs Gedächtnis voraussehendenZusammenhängen. Das heißt auch: ohne Differenzen einzukerben,kann man nicht denken.

      Google translation:

      9/8g The Zettelkasten technique is based on experience: You can't think without writing—at least not in contexts that require selective access to memory.

      That also means: you can't think without notching differences.

      There's something interesting about the translation here of "notching" occurring on an index card about ideas which can be linked to the early computer science version of edge-notched cards. Could this have been a subtle and tangential reference to just this sort of computing?

      The idea isn't new to me, but in the last phrase Luhmann tangentially highlights the value of the zettelkasten for more easily and directly comparing and contrasting the ideas on two different cards which might be either linked or juxtaposed.


      Link to:

      • Graeber and Wengrow ideas of storytelling
      • Shield of Achilles and ekphrasis thesis

      • https://hypothes.is/a/I-VY-HyfEeyjIC_pm7NF7Q With the further context of the full quote including "with selective access to memory" Luhmann seemed to at least to make space (if not give a tacit nod?) to oral traditions which had methods for access to memories in ways that modern literates don't typically give any credit at all. Johannes F.K .Schmidt certainly didn't and actively erased it in Niklas Luhmann’s Card Index: The Fabrication of Serendipity.

    1. "Context" manipulation is one of big topic and there are many related terminologies (academic, language/implementation specific, promotion terminologies). In fact, there is confusing. In few minutes I remember the following related words and it is good CS exam to describe each :p Thread (Ruby) Green thread (CS terminology) Native thread (CS terminology) Non-preemptive thread (CS terminology) Preemptive thread (CS terminology) Fiber (Ruby/using resume/yield) Fiber (Ruby/using transfer) Fiber (Win32API) Generator (Python/JavaScript) Generator (Ruby) Continuation (CS terminology/Ruby, Scheme, ...) Partial continuation (CS terminology/ functional lang.) Exception handling (many languages) Coroutine (CS terminology/ALGOL) Semi-coroutine (CS terminology) Process (Unix/Ruby) Process (Erlang/Elixir) setjmp/longjmp (C) makecontext/swapcontext (POSIX) Task (...)
    1. To satisfy the architecture of a modern process, a space sepa-rate from the usual library business is furnished, a catalog room or working memory for a central bibliographic unit. In this CBU, the program pro-cesses data contributed by various paths.

      Note here how the author creates the acronym CBU out of central bibliographic unit as a means of creating a connection to computer jargon like CPU (central processing unit). I suspect that CBU was not an acronym used at the time.

      bacrkonym?

    Tags

    Annotators

  7. Jan 2022
    1. Budak, C., Soroka, S., Singh, L., Bailey, M., Bode, L., Chawla, N., Davis-Kean, P., Choudhury, M. D., Veaux, R. D., Hahn, U., Jensen, B., Ladd, J., Mneimneh, Z., Pasek, J., Raghunathan, T., Ryan, R., Smith, N. A., Stohr, K., & Traugott, M. (2021). Modeling Considerations for Quantitative Social Science Research Using Social Media Data. PsyArXiv. https://doi.org/10.31234/osf.io/3e2ux

    1. Here, the card index func-tions as a ‘thinking machine’,67 and becomes the best communication partner for learned men.68

      From a computer science perspective, isn't the index card functioning like an external memory, albeit one with somewhat pre-arranged linked paths? It's the movement through the machine's various paths that is doing the "thinking". Or the user's (active) choices that create the paths creates the impression of thinking.

      Perhaps it's the pre-arranged links where the thinking has already happened (based on "work" put into the system) and then traversing the paths gives the appearance of "new" thinking?

      How does this relate to other systems which can be thought of as thinking from a complexity perspective? Bacteria perhaps? Groups of cells acting in concert? Groups of people acting in concert? Cells seeing out food using random walks? etc?

      From this perspective, how can we break out the constituent parts of thought and thinking? Consciousness? With enough nodes and edges and choices of paths between them (or a "correct" subset of paths) could anything look like thinking or computing?

  8. Dec 2021
    1. computer engineering, microarchitecture, also called computer organization and sometimes abbreviated as µarch or uarch, is the way a given instruction set architecture (ISA) is implemented in a particular processor.[1] A given ISA may be implemented with different microarchitectures;[2][3] implementations may vary due to different goals of a given design or due to shifts in technology.[4]

      Microarchitecture (µarch) What Does Microarchitecture (µarch) Mean? Microarchitecture, abbreviated as µarch or uarch, is the fundamental design of a microprocessor. It includes the technologies used, resources and the methods by which the processor is physically designed in order to execute a specific instruction set (ISA or instruction set architecture). Simply put, it is the logical design of all electronic components and data paths present in the microprocessor, laid out in a specific way that it allows for optimal execution of instructions. In academe this is called computer organization.

      Advertisement

      Techopedia Explains Microarchitecture (µarch) Microarchitecture is the logical representation of how a microprocessor is designed so that the interconnections between components – the control unit, the arithmetic logic unit, registers and others – interact in an optimized manner. This includes how buses, the data pathways between components, are laid out to dictate the shortest paths and proper connections. In modern microprocessors there are often several layers to deal with complexity. The basic idea is to lay out a circuit that could execute commands and operations that are defined in an instruction set.

      A technique that is currently used in microarchitecture is the pipelined datapath. It is a technique that allows a form of parallelism that is applied in data processing by allowing several instructions to overlap in execution. This is done by having multiple execution pipelines that run in parallel or close to parallel.

      Execution units are also a crucial aspect of microarchitecture. Execution units perform the operations or calculations of the processor. The choice of the number of execution units, their latency and throughput is a central microarchitectural design consideration. The size, latency, throughput and connectivity of memories within the system are also microarchitectural decisions.

      Another part of a microarchitecture is system-level design. This includes decisions on performance such as level and connectivity of input, as well as output and I/O devices.

      Microarchitectural design pays closer attention to restrictions than capability. A microarchitecture design decision directly affects what goes into a system; it heeds to issues such as:

      Performance Chip area/cost Logic complexity Ease of debugging Testability Ease of connectivity Power consumption Manufacturability A good microarchitecture is one that caters to all of these criteria.

    1. In general, an ISA defines the supported instructions, data types, registers, the hardware support for managing main memory, fundamental features (such as the memory consistency, addressing modes, virtual memory), and the input/output model of a family of implementations of the ISA.

      Instruction Set Architecture defines all logical steps (performed by their corresponding digital logical design hardware) which realizing all computing tasks facilitating our life.

  9. Nov 2021
  10. Jun 2021
    1. Running time is asymptotically tight bound. "Asymptotically" because it matters for only large values of nnn. "Tight bound" because we've nailed the running time to within a constant factor above and below.

    2. Running time has lower bound and upper bound once the number of computations get large enough.

    3. Computation takes time to run. The notation used for running time of computations is Big-Theta.

  11. Apr 2021
    1. Programming is using a language that a machine can understand in order to get it to perform various tasks. Computer programming is how we communicate with machines in a way that makes them function how we need.
    2. Earning a computer programming degree can help you innovate and create solutions for a global society.

      Can talk about how this applies to other areas/problem-solving/impact on world.

  12. Mar 2021
    1. Some believe that computing and internetworking concepts and skills underlie virtually every important aspect of LIS, indeed see LIS as a sub-field of computer science!
  13. Feb 2021
    1. So the hard and unsolvable problem becomes: how up-to-date do you really need to be?
    2. After considering the value we place, and the tradeoffs we make, when it comes to knowing anything of significance, I think it becomes much easier to understand why cache invalidation is one of the hard problems in computer science

      the crux of the problem is: trade-offs

    3. the 2 hardest problems in computer science are essentially the 2 hardest problems of life in general, as far as humans and information are concerned.
    4. The non-determinism is why cache invalidation — and that other hard problem, naming things — are uniquely and intractably hard problems in computer science. Computers can perfectly solve deterministic problems. But they can’t predict when to invalidate a cache because, ultimately, we, the humans who design and build computational processes, can’t agree on when a cache needs to be invalidated.
    5. Sometimes humorously extended as “cache invalidation, naming things, and off-by-one errors.”
    1. There’s only one hard thing in Computer Science: human communication. The most complex part of cache invalidation is figuring out what the heck people mean with the word cache. Once you get that sorted out, the rest is not that complicated; the tools are out there, and they’re pretty good.
  14. Sep 2020
  15. Jun 2020
  16. May 2020
  17. Apr 2020
    1. If the word “share” doesn’t come out of your mouth, you don’t need to use a pointer

      key point

    2. The benefit of passing data “by value” is readability. The value you see in the function call is what is copied and received on the other side

      no hidden cost, eg., memory growth on the heap or pauses during garbage collection. but there is a cost in stack memory usage and "scoping" among multiple stack frames, CPU caching, etc.

    3. Functions execute within the scope of frame boundaries that provide an individual memory space for each respective function. Each frame allows a function to operate within their own context and also provides flow control. A function has direct access to the memory inside its frame, through the frame pointer, but access to memory outside its frame requires indirect access. For a function to access memory outside of its frame, that memory must be shared with the function.

      eg., shared via the "pointer" to an address in heap memory

  18. Dec 2019
  19. May 2019
    1. The first difficulty is that the robot’s utility function did not quite match our utility function. Our utility function is 1 if the cauldron is full, 0 if the cauldron is empty, −10 points to whatever the outcome was if the workshop has flooded, +0.2 points if it’s funny, −1,000 points (probably a bit more than that on this scale) if someone gets killed … and it just goes on and on and on.

      But it is very difficult to fully express these utility functions in code. The goal is to literally turn our ethics into code -- to translate them into coherent data structures, algorithms, and decision trees. We want to deduce our moral intuitions and more.

  20. Oct 2018
    1. Questions about the inclusivity of engineering and computer science departments have been going on for quite some time. Several current “innovations” coming out of these fields, many rooted in facial recognition, are indicative of how scientific racism has long been embedded in apparently neutral attempts to measure people — a “new” spin on age-old notions of phrenology and biological determinism, updated with digital capabilities.
  21. Mar 2018
    1. beenary code

      http://www.unit-conversion.info/texttools/convert-text-to-binary/

      binary is anything with two and only two states, a code that is binary represents information using only these two states.

  22. Feb 2018
  23. Jan 2018
  24. Apr 2017
  25. Feb 2017
  26. Jan 2017
    1. In Python, as well as in any other object-oriented programming language, we define a class to be a description of what the data look like (the state) and what the data can do (the behavior). Classes are analogous to abstract data types because a user of a class only sees the state and behavior of a data item. Data items are called objects in the object-oriented paradigm. An object is an instance of a class.

      Class = General description of form and functions of data. Object = A member or instance of a class.

  27. Jul 2016
    1. Neil Fraser says Vietnam is doing well with computer science education.

      "If grade 5 students in Vietnam are performing at least on par with their grade 11 peers in the USA, what does grade 11 in Vietnam look like? I walked into a high school CS class, again without any advance notice. The class was working on the assignment below (partially translated by their teacher for my benefit afterwards). Given a data file describing a maze with diagonal walls, count the number of enclosed areas, and measure the size of the largest one."

  28. Jun 2016
    1. Civilization advances by extending the number of important operations we can perform without thinking about them.

      This sounds really similar to the concept of "abstraction".

    Tags

    Annotators

  29. May 2016
  30. Apr 2016
    1. Great Principles of Computing<br> Peter J. Denning, Craig H. Martell

      This is a book about the whole of computing—its algorithms, architectures, and designs.

      Denning and Martell divide the great principles of computing into six categories: communication, computation, coordination, recollection, evaluation, and design.

      "Programmers have the largest impact when they are designers; otherwise, they are just coders for someone else's design."

  31. Feb 2016
  32. Jan 2016
    1. Discussion about Obama's computer science for K-12 initiative. CS programs in high school are about 40 years overdue. It is a valid concern that much of this money may be wasted on overpriced proprietary software, hardware, and training programs. And of course, average schools will handle CS about like they handle other subjects -- not very well.

      Another concern raised, and countered, is that more programmers will mean lower wages for programmers. But not everyone who studies CS in high school is going to become a programmer. And an increase in computer literacy may help increase the demand for programmers and technicians.

    1. educators and business leaders are increasingly recognizing that CS is a “new basic” skill necessary for economic opportunity. The President referenced his Computer Science for All Initiative, which provides $4 billion in funding for states and $100 million directly for districts in his upcoming budget; and invests more than $135 million beginning this year by the National Science Foundation and the Corporation for National and Community Service to support and train CS teachers.
    1. This has implications far beyond the cryptocurrency

      The concept of trust, in the sociological and economic sense, underlies exchange. In the 15th-17th centuries, the Dutch and English dominance of trade owed much to their early development of instruments of credit that allowed merchants to fund and later to insure commercial shipping without the exchange of hard currency, either silver or by physically transporting the currency of the realm. Credit worked because the English and Dutch economies trusted the issuers of credit.

      Francis Fukuyama, a philosopher and political economist at Stanford, wrote a book in 1995, Trust: The Social Virtues and the Creation of Prosperity, on the impact of cultures of trust on entrepreneurial growth. Countries of ‘low trust’ have close family culture who limit trust to relations: France, China, S. Italy. Countries of ‘high trust’ have greater ‘spontaneous sociability’ that encourages the formation of intermediate institutions between the state and the family, that encourage greater entrepreneurial growth: Germany, England, the U.S. – I own the book and (shame on me!) haven’t yet read it.

      I thought of this article in those contexts – of the general need for trusted institutions and the power they have in mediating an economy, and the fascinating questions raised when a new facilitator of trust is introduced.

      How do we trust? Across human history, how have we extended the social role of trust to institutions? If a new modality of trust comes available, how does that change institutional structures and correspondingly the power of individuals, of institutions. How would it change the friction to growth and to decline?

      Prior to reading this article, I had dismissed Bitcoin as a temporary aberration, mostly for criminal enterprises and malcontents. I still feel that way. But the underlying technology and it’s implications – now that’s interesting.

    1. Category Theory for the Sciences by David I. Spivak<br> Creative Commons Attribution-NonCommercial-ShareAlike 4.0<br> MIT Press.

  33. Dec 2015
    1. In 1980 Joachim Lambek showed that the types and programs used in computerscience form a specific kind of category. This provided a new semantics for talking aboutprograms, allowing people to investigate how programs combine and compose to createother programs, without caring about the specifics of implementation. Eugenio Moggibrought the category theoretic notion of monads into computer science to encapsulateideas that up to that point were considered outside the realm of such theory.
  34. Nov 2015
    1. “Many random number generators in use today are not very good. There is a tendency for people to avoid learning anything about such subroutines; quite often we find that some old method that is comparatively unsatisfactory has blindly been passed down from one programmer to another, and today’s users have no understanding of its limitations.”— Donald Knuth; The Art of Computer Programming, Volume 2.

      Mike Malone examines JavaScript's Math.random() in v8, argues that the algorithm used should be replaced, and suggests alternatives.

  35. Jun 2015
    1. There’s a scale for how to think about science. On one end there’s an attempt to solve deep, fundamental questions of nature; on the other is rote uninteresting procedure. There’s also a scale for creating products. On one end you find ambitious, important breakthroughs; on the other small, iterative updates. Plot those two things next to each other and you get a simple chart with four sections. Important science but no immediate practical use? That’s pure basic research — think Niels Bohr and his investigations into the nature of the atom. Not much science but huge practical implications? That’s pure applied research — think Thomas Edison grinding through thousands of materials before he lit upon the tungsten filament for the lightbulb.