Foundations of Software Science

Fall 2018
NC State
Computer Science
Tuesdays, Thursdays, 4:30pm
Prof. Tim Menzies

Most software companies now learn their policies via data-driven methods. Modern practitioners treat every planned feature as an experiment, of which only a few are expected to survive. Key performance metrics are carefully monitored and analyzed to judge the progress of a feature. Even simple design decisions such as the color of a link are chosen by the outcome of software experiments.

Graduates of this class will becomes producers, not mere consumers, of AI software.

This subject will explore methods for generating and using models built from data (i.e. how to collectthat data; exploring that data; then presenting that data in such a way to support business-level decision making for software projects).

For more admin details, see the syllabus.

Why?

Facetiously, I'll say this subject asks: "If deep learning is the answer, what was the question?".

In this subject, we ask "what kind of learners do we need?" then work backwards from there to design new AI methods, or improve existing ones.

This is an important task since the following is a very pressing issue:

Enter this subject.

What?

How to teach software how to be a scientist

In short, we will teach software how to a scientist; i.e. how to automatically build, critique, and revise models. How to build and modify and refactor and remix and repurpose:

How to achieve maximum AI benefits at minimal AI costs:

How?

Monthly:

Can you do better than last year's high water mark? A 500 to 1000-fold speed up of a text miner?

Weekly (till mid-October):

For full details, see the syllabus.