CSC 510 Software Engineering
3 Credit Hours
This course will be highly interactive and a proactive participation of the students is expected. This course also will bring a wealth of industrial experiences that the instructor will provide. A detailed discussion on software life cycle models, software project planning and monitoring and control, software requirements development and requirements management, software size and effort estimation, risk management, formal technical and peer reviews, software architecture, software design, software development, verification and validation methods, software configuration management and change control, the Capability Maturity Model Integration, SWEBOK, software process improvement. Emphasis is given on Software Engineering principles and how they are utilized in industry. The course will provide many opportunities to practice Software Engineering principles as they are implemented in industry. A Final project will be required for the course. The project will consist of the development of an architectural software prototype with a demo. In addition to the taped lectures, the instructor will hold live Google Meet weekly meetings with the students to work through the weekly topics, provide extra examples, and answer questions.. I strongly encourage students to participate in the live sessions as topics will be further explained, examples will be given, questions that students have will be answered, and in general good joint discussions typically ensue
Undergraduate courses in data structures, probability, applied discrete mathematics, computer organization and the principle of operating systems. An object-oriented language such as C++ or Java is essential. The student is expected to be well versed in programming concepts.
This is a course on the techniques for the development and management of software-intensive products. It combines a study of methods, tools, and techniques for creating and evolving software products, with the practical skills needed to deliver high-quality software-intensive products at agreed cost and schedule. The methods that are studied include requirements, estimation of software projects, specification, architecture, design, implementation, verification, validation, operation, and maintenance. The practical side of the course includes discussion on practical examples provided by the instructor and a final research project developed by the students.
HOMEWORK: [total 30 points]
There will be three (3) Assignments and each will be individual. The value of each assignment will be 10% each for a total of 30% for all three assignments.
EXAMINATIONS: [total 45 points]
There will be a Mid-term Exam (20%) and Final cumulative Exam (25%). Exams will be closed notes, closed book, and no mobile devices are allowed.
FINAL PROJECT: [total 25 points]
The final project will consist of the development of a Proof of Concept (POC) software solution that will be developed using the Software Engineering principles discussed in the class. Teams of 4-5 students will be created to work in the POC.
Participation and providing insightful answers. Extra marks will be given at the discretion of the instructor.
The numeric grade is the weighted average of grades in each category. The alphabetic grade is calculated as:
|A+ = 97.0 - 100||A = 93.0 - 96.9||A- = 90.0 - 92.9|
|B+ = 87.0 - 89.9||B = 83.0 - 86.9||B- = 80.0 - 82.9|
|C+ = 77.0 - 79.9||C = 73.0 - 76.9||C- = 70.0 - 72.0|
|C required for S|
|D+ = 67.0 - 69.9||D = 63.0 - 63.9||D- = 60.0 - 62.9|
Computer and Software Requirements
Please review the minimum computer specifications that NC State University and Engineering Online recommend.