CSC 121: Computers and Scientific Thinking
Course Review            Fall 2023

Key Ideas

  Computing and science are connected:
      scientists utilize computers as tools for conducting research
        computer-based models and computational thinking are increasingly used
      computer science is a rigorous field of study regarding "artificial" systems
        utilizes the scientific method and experimentation; computational thinking
      new scientific fields such as bioinformatics and data science blur the lines

  Programming is a tool for:
      solving problems

  Computer science is more than just programming:
      problem solving
      design & analysis of algorithms
      hardware design and manufacturing
      interface design and implementation
      theoretical understanding of computation

Skills Developed

  Problem-solving skills
  Analytical/Empirical reasoning skills
  Communication skills
  Web page development

Programming Concepts
  static (HTML) vs. dynamic (JavaScript) pages
  dynamic elements (images, buttons, boxes, paragraphs, divs, spans)
  element attributes (href, src, id, height, value, valueAsNumber, innerHTML, style)
  event handling (onclick, onmouseover, onmouseout)
  variables & assignments
      e.g., gallery, form, oldmac
  data types & expressions
      e.g., tip, interest, pick4, level
  functions & libraries
      e.g., pick4func, pick4lib, dice, oracle
  conditional execution
      e.g., tip, letter, dicestats, slots
  software models
      e.g., disease, disease2D, volleyball, volleystats
  counters & sums
      e.g., dicestats, slots, volleystats

General Concepts

  Computer basics
      von Neumann architecture, hardware vs. software
  World Wide Web
      history, browser & server, HTTP, caching, cookies
      history, distributed, packet switching, TCP/IP, DNS
  History of computers
      generations (relays, vacuum tubes, transistors, IC, microprocessors, ULSI)
  Scientific & Computational Thinking
      history, scientific method, consistency vs. accuracy, computational thinking
  Algorithms & programming
      algorithms, efficiency, high-level languages, compilers & interpreters
  Computer Science as a Discipline
      CS as science?, central themes (software, hardware, theory), subfields, related fields
  Inside the Data
      analog vs. digital, binary numbers, number/text representations
  Inside Multimedia
      analog vs. digital, sound/image/video representations, compression techniques
  Inside the Computer
      transistors, gates, integrated circuits, circuit manufacture, Moore's Law
  Impact of Computing
      positive impacts: money, everyday tasks, info source, communications, commerce, ...
      potential dangers: debt, overreliance, overload, addiction, privacy & security, ...
  Bridging the Divide
      digital divide, diversity in the tech sector, algorithmic bias
  Applications in science
      machine learning: supervised learning, neural networks 
      cryptography: history, private-key vs. public-key encryption, e-commerce
      biology/bioinformatics: computer tools, biological databases, modeling (e.g., disease spread) 
      modeling & simulations: Monte Carlo methods, random walks, dice, slots, volleyball