Skip to content

ayegnb/software-engineering

Repository files navigation

CSCI 361 Software Engineering

Course Description

Software engineering is defined as the application of systematic and quantifiable approaches to the development and maintenance of software. A disciplined approach is essential given the highly complex software required by business and consumers. In this course, students will learn the fundamentals of software engineering including software processes and requirements engineering, project management, design, testing, and maintenance. Emphasis will be placed on agile software engineering methods and learning through hands-on coding assignments throughout the semester. Team based exercises will be used to teach project management skills. Coding will be done in Java and Javascript, and will include exposure to many of the standard tools from industry.

Course Outcomes

By the end of the course the student will be expected to be able:

  1. to explain the software lifecycle and compare major process models such as waterfall and agile
  2. to demonstrate effective software development practices through participation in a medium-sized team project
  3. to show an awareness of and facility with a full range of software tools including version control, unit testing frameworks, and build tools
  4. to understand the use case model and to produce a software requirements specification
  5. to explain principles of object-oriented design and show understanding of software design patterns
  6. to describe the different levels of software testing (from unit to acceptance) and write test cases for non-trivial software modules
  7. to demonstrate an awareness of key ethical concerns relating to modern software systems

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published