CSC 340: Software Engineering: 3 hours
Description
Students learn about the details of leading software engineering methodologies and how to implement the associated techniques. Prerequisite: (CSC 121 or ITSC 121) and CSC 150.
Goals for CSC 340 are:
- Learn the fundamentals of software engineering
- Learn the fundamentals of Agile
- Practice the aspects of Agile and SE on a real campus project
- Work on a team
Course outcomes for CSC 340 are:
- Upon completion of CSC 340, students will understand:
- the techniques associated with current software engineering techniques (specifically Agile)
- how to practice such techniques
- the issues associated with communicating with a customer
- how to write quality artifacts for a project and present them
- how to refine their work
Program outcomes for CSC 340 are:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. (Computing student learning outcome 1)
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program\x92s discipline. (Computing student learning outcome 2)
- Communicate effectively in a variety of professional contexts. (Computing student learning outcome 3)
- Recognize professional responsibilities and make informed judgments in computing practice based on legal, ethical, and moral principles. (Computing student learning outcome 4)
- Function effectively as a member or leader of a team engaged in activities appropriate to the program\x92s discipline. (Computing student learning outcome 5)
- Learn new areas of technology. (Computing student learning outcome 6)
- Apply computer science theory and software development fundamentals to produce computing-based solutions. (Computer Science student learning outcome 1)
- Support the delivery, use, and management of information systems within an information systems environment. (Computing and Information Systems student learning outcome 1)
- Apply security principles and practices to maintain operations in the presence of risks and threats. (Cyber Security student learning outcome 1)
Integration
- Self learning at the introductory level by requiring students to learn at least one aspect of Agile programming on their own and use it during the semester.
- Note taking at the application level by requiring students to take quality notes from meetings and grading those notes
- Technical writing at the application level by quality artifacts and documentation to be in a final form
- Team work at the application level by
- requiring most (if not all) project work to be done in teams. Switching team members during the semester should be considered
- having the roles in the team chance throughout the semester
- Professional at the application level by requiring students to treat all team meetings in a professional context and preparing their work to be at the professional level instead of homework level.
- Security at the application level by requiring all work on software to include a section on the security issues
- Ethics at the application level by
- requiring all work on software to include a section on ethical issues
- covering cases of software failure and the ethics associated with that
- Verbal communication at the application level by requiring each team to make at least two presentations to the class.