ENSC 251: Software Design and Analysis for Engineers
September-December, 2015
Instructor: Dr. Lesley Shannon
Office: ASB 8819
Home Page: http://www.ensc.sfu.ca/~lshannon
Dr. Shannon's Office Hours:
Mondays 12:50-2:30pm
Wednesdays 11:45am-12:30pm & 3:45-4:30pm
Lecture Hours:
Mondays: 10:30am-11:20pm, AQ 3182
Wednesdays: 10:30-11:20am, AQ 3182 & 2:30-3:20pm, SWH 10081
Tutorial Hours: Mondays 11:30am-12:20pm, AQ 3182
Teaching Assitants:
Eric Matthews
Mohammad Akbari
Veronica Cojocaru
Yawar Khan
Rui Wang
Engineers are commonly asked to develop software intensive
systems, often for non-traditional computing platforms
(i.e. not traditional workstations). This course focuses
on providing engineers with the fundamental tools and
skills needed for designing software applications for
various types of computing platforms. This includes an
introduction to the abstraction and manipulation of
data using data types based on dynamic memory allocation
(lists, stacks, queues, and graphs) and the concepts
behind complexity analysis and the estimation of program
resource utilization. Emphasis throughout will be placed
on techniques for: team software design, debugging and
verification, and software performance based on type and
platform. Software application design examples from the
embedded systems area will be used throughout the course
to provide context for the material presented herein.
This course will have a significant lab component with
multiple programming assignments and a final project.
Although students will work in teams on the lab components
of the course, all students are individually
responsible for attending and learning the applied skills
from the lab and will be evaluated accordingly.
More information on this course: