Due Date: Friday September 24, 2021 9:00 AM. This homework aims at giving you some experience with computer hardware and software. Please write your answers in a README.md file and push them all to HW/2/ folder of your repository on GitHub.

  1. What does ENIAC stand for?

  2. Why is everything represented by integers in computers?

  3. What is the name of the fastest part of the computer memory?

  4. What is the slowest storage device in computers (that is typically integrated with computers)?

  5. What is the smallest unit of information in computer science?

  6. (A) What is the closest programming language to machine code (i.e., binary code)?

    (B) Does it need interpretation in order to become machine-comprehensible?

  7. (A) Name the oldest high-level programming language that is still in active daily use.

    (B) Approximately how many decades is it old? ($\pm15$ years is acceptable answer. the decade it was created is also an acceptable answer)

  8. (A) Name a second-generation programming language.

    (B) Which language-generation are Fortran, C, C++, MATLAB, Python, R?

  9. In what decades C, C++, and MATLAB/Python were created, respectively?

  10. Name an ancestor programming language of C.

  11. Name a programming language ancestor of C++.

  12. Name a programming language ancestor of MATLAB and a programming language ancestor of Python.

  13. What are the three common types of errors in computer programs? Provide an example for each category.

  14. Suppose you write a program that has memory leak. What type of programming error you dealing with?

  15. Extra credit: What are the three fundamental components of a Turing-complete language?

  16. Extra credit: How would you distinguish exponential behavior vs. power-law behavior (function) in a 2-dimensional plot?
    Hint: Recall our discussion of the ENAIC project and the relative frequency of keywords such as “computer” in our programming.

Comments