CSC 121: Computers and Scientific Thinking
Course Overview            Spring 2021

Key Ideas

  Computing and science are connected:
      scientists utilize computers as tools for conducting research
        computer-based models and a computational approach 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, innerHTML, style)
  event handling (onclick, onmouseover, onmouseout)
  variables & assignments
      e.g., gallery.html, form.html, story.html
  data types & expressions
      e.g., tip.html, grades.html, level.html
  functions & libraries
      e.g., pick4.html, dice1.html, esp.html, oracle.html
  conditional execution
      e.g., tip3.html, letter.html, dicestats1.html, slots.html
  repetition & simulation
      e.g., interest.html, disease.html, manyrolls.html, volleyball.html
  counters & sums
      e.g., dicestats3.html, slots.html, manyrolls.html

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, number/text/sound/image/video representations
  Inside the Computer
      transistors, gates, integrated circuits, circuit manufacture, Moore's Law
  Computers & Society
      positive impacts: everyday tasks, info source, communications, commerce, ...
      potential dangers: overreliance, overload, privacy & security, digital divide, ...
  Applications in science
      cryptography: history, private-key vs. publicc-key encryption, e-commerce
      biology/bioinformatics: computer tools, modeling, biological databases
      artificial intelligence: expert systems, neural networks, genetic algorithms
      data science: supervised (e.g., neural networks) vs. unsupervised (e.g., clustering) 
      modeling & simulations: Monte Carlo methods, random walks, dice, slots