INFO 4487 Senior Project 3 credits

Analysis, specification, design, implementation, and testing of a large software project. Formal approach and tools. Software lifecycles; human computer interaction; project and team management. Uses a different programming language. Cross-listed with CIS4488.

Prerequisites: CIS4411 && (CS3321 || CIS403 && (CS451 || CIS407) && CS3385.
Programming language: C#, Java, or similar
Operating system: varies
Computer Usage: Assignments involve significant computer usage. CS2282 and subsequent courses require a laptop computer running the appropriate operating system – either native or within a virtual machine
Course Coordinator: Schou

• Instructor:
• Office:
• Email:
• Office Hours:
• Class Hours:
• Class Location:
• Textbook:

• an ability to apply knowledge of computing and mathematics appropriate to the discipline
• an ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
• an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
• an ability to function effectively on teams to accomplish a common goal.
• an understanding of professional, ethical, legal, security, and social issues and responsibilities.
• an ability to communicate effectively with a range of audiences
• an ability to analyze the local and global impact of computing on individuals, organizations, and society
• recognition of the need for, and an ability to engage in, continuing professional development
• an ability to use current techniques, skills, and tools necessary for computing practice
• 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 trade-offs involved in design choices
• an ability to apply design and development principles in the construction of software systems of varying complexity.

50% homework, 50% tests. Homework is submitted using the Moodle tool. Homework projects are graded on a 100 point scale with a grade and written comments provided to the student through Moodle. Tests are graded on a 100 point scale. <=50% F, 60-69% D, 70-79% C, 80-89% B, 90-100 A.
Each team project deliverable – typically written or oral -- must be identified by the primary individual responsible as well as those who assisted.
Writing assignments and oral presentations must be spread through the team members such that each team member does at least two written works and one presentation. Teams are organized as per Fred Brooks with a producer and Director. Each team member rank orders each member of the team including themselves allowing for evaluation of both the individual and team as a whole.

Team analysis, management, design, implementation, and testing of a significant project with real user.

• Algorithms   
• Software Design  
• Computer Org.  
• Data structures  
• Programming Languages C#, Java, or similar
• Oral and Written Communications  
• Social and Ethical Issues: Students are expected to behave according to ethical standards in their preparation of tests and homework. Overall ethical conduct will be evaluated.
• Theoretical Content. Varies depending on the large programming project.
• Problem analysis
  • Significant team problem analysis
• Solution Design
• Significant team CHI and system design.

Secure design principles
Risk management
Networking protocols and architecture
Secure programming practices
Lifecycle security

NIATEC National Science Foundation Information Assurance Directorate Department of Homeland Security CISSE Scholarship For Service