CSC 450 - Software Engineering
TR 2:00-3:15pm, CI 1006
Section 3 - Spring 2019 - 3 credits
Text and Supplemental Material:
The student should understand: (1) the software engineering process; (2) the activities and aspects of the process; (3) the issues (software crisis) that are motivating the growth and evolution of the software engineering discipline; (4) the differences between academic or personal programming and software engineering; (5) a reasonable set of principles, models, representations, methods, and tools; (6) the role of analysis and evaluation in software engineering.
The student should be able to: (1) apply fundamental principles in the performance of the various activities; (2) apply appropriate formal methods to achieve results; (3) use appropriate tools covering all activities of the software process; (4) execute a plan (e.g. test plan), apply documentation standards in the production of software engineering documents.
The student should be able to: (1) participate in technical reviews and inspections of various software work products, including documents, plans, designs, and code; (2) analyze the needs of customers.
The student should be able to: (1) perform the activities leading to various software products, including requirements specifications, designs, code, and documentation; (2) develop plans (project plan, quality assurance plans, test plans etc.); (3) design data for and structures of software tests; (4) prepare oral presentations, and plan and lead software technical reviews and inspections.
The student should be able to: (1) evaluate software products for conformance to standards; (2) use appropriate qualitative and quantitative measures in evaluate software products; (3) perform verification and validation of software.
Substantial knowledge of programming-in-the-small including: (1) a knowledge of fundamental programming concepts - data structures, data abstraction and hiding, modularity; (2) a working knowledge of at least one modern high-level programming language; (3) a basic knowledge of formal methods and models - analysis of algorithms, computability, automata and formal languages. Undergraduate level mathematics: discrete mathematics (set theory, logic, algebra).
We will focus on client-server technology, human-computer interfaces, and application development over the Internet.
Note: Material for the exams will be drawn from lectures, readings, and assignments.
Homework assignments will be given normally a week ahead of their due dates (late assignments will be penalized 20% per day).
This course will entail completing a 15-week, group-oriented software engineering project. Each team will consist of three to four students. System deliverables, documentation, and team participation count toward the grade.
You are expected to attend all lectures. Absence does not relieve you from meeting all course requirements. You are responsible for all reading, assignments, and exams. Keep up with the day-to-day reading requirements of the class.
Students with Special Needs:
Any students with disabilities or other special needs, who need special accommodations in this course, are invited to share these concerns or requests with the instructor as soon as possible.
Code of Academic Responsibility and Conduct:
Students are responsible for submitting their own work. Students who cooperate on oral or written examinations or work without authorization share the responsibility for violation of academic principles, and the students are subject to disciplinary action even when one of the students is not enrolled in the course where the violation occurred.
View videos in order:
Dr. Ron Vetter,
Last updated April 10, 2019