**Idiomatic Scala Style**
-------------------------

 - Class, object, and trait names follow camelCase style with the first letter capitalized. One example where you don't follow this rule is `abstract class spMeta extends logging`.

 - For a few reasons, it is considered bad practice to user underscores in names. Applying the convention from the bullet point above with this we'd make the following transformation to your code: `class sp_01 extends spMeta` => `class Sp01 extends SpMeta`.

 - The above rules also extend to types that you define. Consequently I'd change `type inputT` to `type InputT`, etc.

 - Methods which act as accessors should be declared without parenthesis (unless they have side effects). In particular this applies to your `def getSolution(): SolutionT = ...` which should just be plain old parenthesis-less `def getSolution: SolutionT = ...`

 - If you ever have any style questions check out this [documentation](http://docs.scala-lang.org/style/).

**Code Suggestions**
--------------------

 A modified version of your `getSolutionFiles` method with explanations below.

		def getSolutionFiles(dir: File): Array[File] = {
			val dirContents = dir.listFiles
			val targetFiles = dirContents filter(x => x.getName.startsWith("sp_") && !x.isDirectory)
			val childDirs   = dirContents filter(_.isDirectory)
			targetFiles ++ childDirs flatMap(d => getSolutionFiles(d))
		}

 - I renamed the method paramter to `dir` from `file`. 
 - All of the operations in this method are on the container type `Array`.  So I renamed some of the values to remove any mention of `List`.
 - Overall I think the renaming of these values make this method much easier to to immediately comprehend.
 - Just to show you 'another way' and not because I thought anything was wrong with your original choice, I replaced your use of a regular expression for finding the correct files with `startsWith(...)`. Note there is also a method `endsWith(...)`.
 - A bug could occur if the name of a file passed your filter predicate but is in fact a directory. I added a condition to to eliminate that possibility.

Cheers :)