Software Engineering


A one-semester undergraduate level course in software engineering focusing on cloud computing, software as a service (SaaS), and Agile development using Extreme Programming (XP). The course curriculum takes advantage of the fact that Agile + SaaS + Cloud has not only revolutionized software, but made it easier and more effective to teach. The course will cover topics such as: SaaS, SOA, Cloud, Agile methodology, Plan and Document, Pair Programming, SCRUM, Test Driven Development, Behavior Driven Design and User Stories, Lo-Fi User Interface Sketches and Storyboards, 3-Tier Architecture & Horizontal Scaling, Rails Basics, Software Processes and Development Lifecycle, Design Patterns and Project Management.

  1. Understand the new challenges, opportunities, and open problems of SaaS relative to SWS (shrink-wrapped software)
  2. Have the ability to execute a SaaS project from conception thru planning, development, assessment/testing, deployment, and operations, using agile practices and suitable technologies
  3. Understand and use agile development methodologies and tools, including lo-fi UI sketching, user stories, behavior-driven development, version control for team-based development, and management tools for cloud-computing environments"
  4. Have the ability to use tools like Git for version control and distributed development, IDEs like Rubymine for rapid programming and debugging and AWS tools for cloud computing.
  5. Have reasonable proficiency in developing large web application using Ruby on Rails, Html5, CSS3, Javascript, JQuery, Ajax and design patterns.

Course Offering