13 Matching Annotations
  1. Apr 2019
    1. A compiler reads the program and translates it completely before the program starts running. In this case, the high-level program is called the source code, and the translated program is called the object code or the executable. Once a program is compiled, you can execute it repeatedly without further translation.

      A compiler: source code to object code

    2. An interpreter reads a high-level program and executes it, meaning that it does what the program says. It processes the program a little at a time, alternately reading lines and performing computations.

      A high-level code processor - interpreter

    1. programming is a skill that allows a computer scientist to take an algorithm and represent it in a notation (a program) that can be followed by a computer. These programs are written in programming languages.

      The programming skill

    2. If problem solving is a central part of computer science, then the solutions that you create through the problem solving process are also important. In computer science, we refer to these solutions as algorithms. An algorithm is a step by step list of instructions that if followed exactly will solve the problem under consideration.

      The definition of an algorithm

    1. The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem solving skills.

      The importance of problem solving for CSs

    2. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.

      Computer scientists combine features of mathematicians, engineers and natural scientists

  2. Dec 2018
    1. In the 1850s, the naturalist Henry Walter Bates found a certain set of butterflies who were clearly not of the same species but whose wings looked almost the same to the naked eye. After thinking it over, Bates eventually figured out what was going on: While the butterflies which were toxic to potential predators (the “models”) were able to operate freely and relatively unmolested, there had also developed a “mimic” population of butterflies which wasn’t toxic at all, yet still went untouched!

      Batesian Mimicry

    1. Before you start reading a new book, take out a blank sheet of paper. Write down what you know about the subject you’re about to read — a mind map if you will. After you are done a reading session spend a few minutes adding to the map (I use a different color ink). Before you start your next reading session, review the mindmap (I use mine as a bookmark sometimes.) Put these mindmaps in a binder, and periodically review them.

      The blank sheet method of remembering what you read

    1. Hard to trace in its origin, Hanlon’s Razor states that we should not attribute to malice that which is more easily explained by stupidity. In a complex world, using this model helps us avoid paranoia and ideology.

      Hanlon's Razor

    1. Start with the index, the table of contents, and the preface. This will give you a good sense of the book. Be OK with deciding that now is not the time to read the book. Read one book at a time. Put it down if you lose interest. Mark up the book while reading it. Questions. Thoughts. And, more important, connections to other ideas. At the end of each chapter, without looking back, write some notes on the main points/arguments/take-aways. Then look back through the chapter and write down anything you missed. Specifically note anything that was in the chapter that you can apply somewhere else. When you’re done with the book, take out a blank sheet of paper and explain the core ideas or arguments of the book to yourself. Where you have problems, go back and review your notes. This is the Feynman technique. Put the book down for a week. Pick the book back up, reread all of your notes/highlights/marginalia/etc. Time is a good filter — what’s still important? Note this on the inside of the cover with a reference to the page number. Put any notes that you want to keep in your commonplace book.

      tips for making notes while reading a book

    1. Step One. The first thing I do when I pick up a book is read the preface, the table of contents, and the inside jacket. Often, I’ll glance over the index too. This doesn’t take long and often saves me time, as a lot of books do not make it past this filter. Maybe it doesn’t contain the information I’m trying to gain. If it seems crappy, I’ll flip to a few random pages to verify. This filter is a form of systematic skimming. This isn’t my term, Mortimer Adler, a guy who literally wrote the book on reading, came up with it. Adler says there are four levels of reading. I tend to blend inspectional reading and analytical reading together for most books. This way, when I start reading a book, I have an idea what it’s about, the main argument, and some of the terminology involved. I know where the author is going to take me and the broad strokes of how they will bring me along. That’s very useful information. While reading, I take notes. I circle words I need to look up. I star points that I think are critical to the argument. I underline anything that strikes me as interesting. I comment like a madman in the margins. I try to tease out assumptions, etc. Essentially, I’m trying to engage in a conversation with the author. Maybe my questions will be answered on the next page or in the next chapter. Maybe I’ll need to find another book to answer them. Who knows. But I write them down. At the end of each chapter, I write a few bullet points that summarize what I’ve just read. When I’m done, I write a brief summary of the entire book and then I do something few other people do. I let the book age. I put the book on my desk and I won’t touch it for anywhere from a few days to a week. This is very important.
      1. Read the preface, TOC. Take notes while reading.
    2. Step two. When I pick the book up again, I re-read every scribble, underline, and comment I’ve made (assuming I can still read my writing). Sometimes I can’t. I’m not the same person I was the first time I read the book, two things have changed: (1) I’ve read the entire book and (2) I’ve had a chance to sleep on what may have seemed earth-shattering at the time but now just seems meh. If something still strikes my interest, I write a note in the first few pages of the book, in my own words, on the topic. Often this is a summary but increasingly it’s ways to apply the knowledge. I index this to the page number in the book. Sometimes, and this depends on the book, I’ll create a sort of mental summary of the book’s main arguments and gaps. Sometimes I’ll cross-link points with other books.
      1. Re-read upon waiting for a while. Write out the main notes in the first pages of the book.
    3. Step 3 (optional but highly effective). Wait a few days. Then go through the book and copy out excerpts by hand and put them into your repository or commonplace book. I use these notes to connect and synthesize ideas as I read. To aid recall, connect the ideas to something you already have in your mind. Is it a continuation of the idea? Does it replace an idea? Is it the same idea in a different discipline? I add these connections to my notes and percolate them in my mind. Often I turn out to be mistaken but that’s the process. Most of the time, you get to see the ideas on Farnam Street. You can see how I connect and contextualize ideas, linking them across disciplines. I find writing about the ideas really helps me develop my understanding. Even if you don’t share your thoughts with millions of people you can do the same thing with Evernote, which is searchable, easy to use, and free. Personally, I do not use technology as a substitute for the non-technological approach mentioned above but rather as a compliment. I rarely listen to books but if you are listening to a book, create a new note for that book and type in notes as you are listening. I know a few people that do not take notes as they are listening because they listen in the car on the way to work. They find that sitting down right away when they get to work and typing up notes is an effective way to improve recall although the notes are less accurate.
      1. Put the excerpts in a separate medium.