CSC 121: Computers and Scientific Thinking
Course Overview            Spring 2020



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
      new scientific fields such as bioinformatics and data science blur the lines

  Programming is a tool for:
      solving problems
      experimentation
      analysis

  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, divs, spans)
  element attributes (src, height, value, innerHTML, style)
  event handling (onclick, onmouseover, onmouseout)
  
  variables & assignments
  data types & expressions
  functions & libraries
  conditional execution & repetition
  counters & sums

General Concepts

  Computer basics
      von Neumann architecture, hardware vs. software
  History of science & computing
      scientific method, generations (relays, vacuum tubes, transistors, IC, microprocessors, ULSI)
  Internet & the Web
      Internet & Web histories, TCP/IP, HTTP
  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
  Data Representation
    analog vs. digital, number/text/sound/image/video representations
  Computers & Society
      positive impact, potential dangers
  Applications in science
      biology/bioinformatics: computer tools, modeling, biological databases
      data science: supervised (e.g., neural networks) vs. unsupervised (e.g., clustering) 
      modeling & simulations: Monte Carlo methods, random walks, random sequences, dice, slots