- Forward


Innovation and Creativity
in Computer Science/Software Engineering


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Background
Back SMYC Forward
  • Innovation:
    • A new and original idea, process, or product (that has some value)
  • Creativity:
    • The ability to innovate
Creativity in Computer Science
Back SMYC Forward
  • Product Design:
    • Features/Functions
    • Interaction
  • Engineering Design:
    • Architectures
    • Design Patterns
  • Construction:
    • Algorithms
    • Data structures
Creativity in Computer Science (cont.)
Back SMYC Forward
  • Testing:
    • Unit Test Suites
    • System Testing (Including Security)
  • Deployment and Support:
    • Deployment Mechanisms (e.g., app stores)
    • Pricing Structures (e.g., free to try)
    • Support (e.g., crowdsourcing)
Ways to be Creative
Back SMYC Forward

Nerd Humor - Moments of Inspiration

/imgs
(Courtesy of xkcd)
Ways to be Creative in Computer Science
Back SMYC Forward
  • Evolving:
    • "If I have seen further, it is by standing on the shoulders of giants." (Sir Isaac Newton)
  • Borrowing:
    • From the natural world (e.g., the brain, genetics, ants)
    • From other disciplines (e.g., annealing)
  • Observing:
    • Unsatisfied needs
    • Emerging technologies (e.g., quantum computers)
An Example
Back SMYC Forward
  • The Original Innovation:
    • An algorithm for finding the shortest path on a network (Dijkstra's Algorithm)
    • creativity_shortest-path
      Expand
  • An Evolutionary Innovation:
    • Bounding the search space (The \(A^*\) Algorithm)
  • An Innovation Borrowed from the Natural World:
    • An algorithm based on the behavior of ants
  • Innovating to Satisfy an Observed Need:
    • An algorithm for finding alternative paths
Now It's Your Turn
Back SMYC Forward
  • Part 1:
    • Design a p-creative (i.e., new to you) algorithm
  • Part 2:
    • Design a creative product
  • Part 3:
    • Operationalize a creative product design -- design the necessary algorithm
Now It's Your Turn (cont.)
Back SMYC Forward
Part 1: A p-Creative Algorithm
  • The Setting (Some Years Ago):
    • You are designing and building the software for in-vehicle navigation systems
    • You have been asked to develop a system that will run on smart phones
  • The Need:
    • A faster way to re-calculate paths (i.e., when the driver goes off-route it takes too long for the system to re-calculate)
Now It's Your Turn (cont.)
Back SMYC Forward
Part 2: Design a Creative Product
  • The Setting:
    • You are you
    • It is now
  • Think About Any/All of the Following:
    • What feature(s) do you wish in-vehicle navigation systems had but don't?
    • What features exist in other products (e.g., jet planes, entertainment devices, home automation systems, social networking products, travel sites) that could be added to in-vehicle navigation systems?
    • What new devices (e.g., transportation vehicles, computational devices, displays, sound systems) might be used with or have an influence on in-vehicle navigation systems?
Now It's Your Turn (cont.)
Back SMYC Forward
Part 3: Operationalize a Product Design
  • The Setting:
    • You have several innovative product designs
    • Some require an innovative path-finding algorithm
  • The Challenge:
    • Design an innovative path-finding algorithm
There's Always More to Learn
Back -