There's a few simple mistakes in your JavaScript that are causing the cycle to fail. When initalising a slideshow programmatically, the parameters need to be camelCase instead of using hyphens like when they're specified using data attributes. You also need to wrap string-based parameter values with quotes otherwise your script will think that they are variables. Here's an updated version of your example that works:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Cycle2 Example</title>
</head>
<body>
<a href="#"><span class="prevControl">Prev</span></a>
<a href="#"><span class="nextControl">Next</span></a>
<div class="slides">
<img src="http://malsup.github.com/images/p1.jpg" data-cycle-title="Spring" data-cycle-desc="Sonnenberg Gardens"/>
<img src="http://malsup.github.com/images/p2.jpg" data-cycle-title="Redwoods" data-cycle-desc="Muir Woods National Monument"/>
<img src="http://malsup.github.com/images/p3.jpg" data-cycle-title="Angel Island" data-cycle-desc="San Franscisco Bay"/>
<img src="http://malsup.github.com/images/p4.jpg" data-cycle-title="Raquette Lake" data-cycle-desc="Adirondack State Park"/>
<div class="cycle-caption"></div>
<div class="cycle-overlay"></div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://malsup.github.io/jquery.cycle2.js"></script>
<script>
$('.slides').cycle({
fx: "scrollHorz",
timeout: 2000,
speed: 700,
prev: ".prevControl",
next: ".nextControl",
captionPlugin: "caption2",
overlayFxSel: "div"
});
</script>
</body>
</html>
I'd also probably use an id or a class other than cycle-slideshow
when setting up the slideshow programmatically so that it isn't auto initialised by the cycle plugin.