SYLLABUS CSCI 477b
Design and Construction of Large Software
Systems
The Senior Capstone Design Course
Instructor: Prof. David Wilczynski
Office No.: SAL 340
Office Ph.: (213)740-4507
Prerequisites: csci477a
Course Objectives:
To do a real-world project so that the student gains practical experience in the software engineering process. In csci477a, you have designed a system for real-world clients. In csci477b you will prototype it.
Grading Policy:
Each of segments 2-4 is worth 1/3 of overall score. In general, the grading criteria per segment are:
Each is worth 1/4 of the grade for the segment.
Team vs. Individual
Performance
Each team member is expected to carry their own weight. If they do, all team members will get the same grade. However, I will be looking “into” the teams to see if some students are underperforming; if so, they will get lower scores than their teammates. Similarly, excellent work can be rewarded by providing higher grades.
Below are the course outcomes we expect you to have at the end of the course.
i. The
ability to understand the software engineering process in terms of
requirements, design, and implementation.
ii. The ability to do
requirements engineering by interacting with industry clients, innovating where
appropriate.
iii. The ability to produce a
software design based on requirements.
iv. The ability to produce a
software prototype to explore a particular design.
v. The ability to produce a
business argument for a project including a feasibility study.
vi. The ability to communicate
via presentations such as powerpoint, posters, etc.
vii. The ability to produce a
coherent document describing a solution to a large software engineering
project.
viii. The ability to apply a
software engineering process to a large software project
ix. The ability to work
effectively on a team.
x. An understanding of the
ethical issues in working within a group and one's responsibilities to
teammates.
These are the outcomes you are expected to have when you have finished your degree:
a) An ability to apply knowledge of computing and mathematics appropriate to the discipline;
b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution;
c) An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs;
d) An ability to function effectively on teams to accomplish a common goal;
e) An understanding of professional, ethical, legal, security, and social issues and responsibilities;
f) An ability to communicate effectively with a range of audiences;
g) An ability to analyze the local and global impact of computing on individuals, organizations and society;
h) Recognition of the need for, and an ability to engage in, continuing professional development;
i) An ability to use current techniques, skills, and tools necessary for computing practices.
j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices;
k) An ability to apply design and development principles in the construction of software systems of varying complexity.
These outcomes are also posted at on the CSCI website. http://www.cs.usc.edu/current/undergrad/ProgramOutcomes.pdf