IEEE/ACM, Software Engineering, “Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering, a Volume of the Computing Curricula Series,” 2004. http://sites.computer. org/ccse/
 ABET, “Criteria for Accrediting Computing Programs, Computing Accreditation Commission,” 2004.
 A. Abran, J. Moore, P. Bourque, R. Dupuis and L. Tripp, “Guide to the Software Engineering Body of Knowledge (SWEBOK),” IEEE Computer Society Professional Practices Committee, 2004. http://www. computer.org
 S. Kundu, “Teaching Software Modeling and Design Based on the Science of Design and Science of Learning,” Proceedings of the IEEE International Conference on Frontiers in Education: Computer Science & Computer Engineering, Las Vegas, 14-17 July 2008, pp. 434-438.
 R. Taylor, N. Medvidovic and E. Dashofy, “Software Architecture: Foundations, Theory, and Practice,” John Wiley & Sons, Hoboken, 2010.
 B. Liskov and J. Guttag, “Program Development in Java: Abstraction, Specification, and Object-Oriented Design,” Addison-Wesley, Boston, 2001.
 P. Roberts, “Abstract Thinking: A Predictor of Modeling Ability?” Proceedings of the ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems: Educators’ Symposium, Denver, 4-9 October 2009.
 J. Kramer, “Is Abstraction the Key to Computing,” Communications of the ACM, Vol. 50, No. 4, 2007, pp. 36-42.
 M. Schilling, “Towards a General Modular Systems Theory and Its Application to Inter-Firm Product Modularity,” Academy of Management Review, Vol. 25, 2000, pp. 312-334.
 “The American Heritage Medical Dictionary,” Houghton Mifflin Company, Harcourt, 2007.
 “Mosby’s Medical Dictionary,” Elsevier, Amsterdam, 2009.
 P. Deitel and H. Deitel, “Java How to Program: Late Objects,” 8th Edition, Prentice Hall, Upper Saddle River, 2009.
 C. Horstmann, “Big Java Late Objects,” Wiley, Hoboken, 2012.
 S. Glynn, “Methods and Strategies: The Teaching-withAnalogies Model,” Science and Children, Vol. 44, No. 8, 2007, pp. 52-55.
 Z. Alzamil, “Towards an Effective Software Engineering Course Project,” Proceedings of the ACM 27th International Conference on Software Engineering (ICSE05), St. Louis, 15-21 May 2005, pp. 631-632.
 J. Tuyal and J. Garcia-Fanju, “Effort Measurement in Student Software Engineering Projects,” Proceedings of the 30th ASEE/IEEE Frontiers in Education Conference, Kansas City, 18-21 October 2000, pp. F1A-3-F1A-6.
 T. Reichlmayr, “The Agile Approach in an Undergraduate Software Engineering Course Project,” Proceedings of the 33rd ASEE/IEEE Frontiers in Education Conference, Boulder, 5-8 November 2003, pp. S2C13-S2C18.
 J. Hayes, “Energizing Software Engineering Education through Real-World Projects as Experimental Studies,” Proceedings of the IEEE 15th Conference on Software Engineering Education and Training, (CSEET.02), Covington, 25-27 February 2002, pp. 192-206.
 P. Robillard, “Teaching Software Engineering through a Project-Oriented Course,” Proceedings of the IEEE 9th Conference on Software Engineering Education (CSEE), Daytona Beach, 22-24 April 1996, p. 85.
 S. Ludi and J. Collofello, “An Analysis of the Gap between the Knowledge and Skills Learned in Academic Software Engineering Course Projects and Those Required in Real Projects,” Proceedings of the 31st ASEE/IEEE Frontiers in Education Conference, Reno, 10-13 October 2001, pp. T2D-8-T2D-11.
 P. Bucci, T. Long and B. Weide, “Do We Really Teach Abstraction?” Proceedings of the ACM 32nd SIGCSE Technical Symposium on Computer Science Education, Charlotte, 21-25 February 2001, pp. 26-30.
 I. Hadar and E. Hadar, “Iterative Cycle for Teaching Object Oriented Concepts: From Abstract Thinking to Specific Language Implementation,” Proceedings of the 10th Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts, Nantes, 3-7 July 2006.
 H. Wei and L. Yao, “Research in Visualization Teaching Method of Program Design,” Proceedings of the IEEE 2nd International Conference on Communication Systems, Networks and Applications, Hong Kong, 29 June-1 July 2010, pp. 180-183.
 P. Clarke, Y. Wu, A. Allen and T. King, “Experiences of Teaching Model-Driven Engineering in a Software Design Course,” Proceedings of the ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems: Educators’ Symposium, Denver, 4-9 October 2009.
 O. Mishali, Y. Dubinsky and I. Maman, “Towards IDE Support for Abstract Thinking,” Proceedings of the ACM 2nd International Workshop on the Role of Abstraction in Software Engineering, Leipzig, 11 May 2008, pp. 9-13.
 D. Zhenrong, H. Wenming, D. Rongsheng and W. Peizhi, “Exploration of Ability Development of Engineering and Computational Thinking Skills in Software Engineering Majors,” Proceedings of the IEEE 4th International Conference on Computer Science & Education, Nanning, 25-28 July 2009, pp. 1665-1668.
 C. Starrett, “Teaching UML Modeling before Programming at the High School Level,” Proceedings of the IEEE 7th International Conference on Advanced Learning Technologies, Niigata, 18-20 July 2007, pp. 713-714.
 O. Hazzan and J. Tomayko, “Reflection and Abstraction in Learning Software Engineering’s Human Aspects,” IEEE Computer Magazine, No. 6, 2005, pp. 39-45.
 G. Clarke and D. Cooke, “A Basic Course in Statistics,” Arnold, London, 1998.