P4: Principles, Patterns, Practices, and Projects for Effective Software Engineering Education | IEEE Conference Publication | IEEE Xplore