What Should Future Computing Graduates Learn? – A Comprehensive Framework of Desired Attributes

Posted on January 9, 2017


Author:   Sanjay Goel, 2017

Target Audience: This article will be useful for

  1. Computing departments  wanting to redesign their educational programs with a view to provide Outcome based Education.
  2. Faculty members who plan to redesign their courses on the pattern of outcome based education
  3. Computing students in planning their educational goals and approach to their education and learning.


This article is in continuation to the last article on this issue at https://goelsan.wordpress.com/2016/01/06/2646/.   While that framework focused on generic learning outcomes for all branches of engineering, this framework  gives  a customized version of the generic learning outcomes for engineering programs in computing disciplines.

Faculty members teaching specific computing courses can interpret and transform these generic learning outcomes to design their course specific learning outcomes  in view of their goals and syllabus.  In the process, it is also recommended that the faculty members should also refer to the various course specific learning outcomes as recommended in the five curriculum reports by IEEE and ACM for the undergraduate programs in Software Engineering (2014), Computer Science (2013), Information Systems (2010), Information Technology (2008), and Computer Engineering (2004). 

  1. Self Development:

1a. Cognitive Flexibility: Demonstrate the ability to appropriately ‘transfer’ what has been learned in a context, to different situations and application domains.

1b. Life-long Learning: Demonstrate the enthusiasm, preparation and ability to engage in higher education as well as independent, collaborative, reflective, experiential and life-long learning in the broadest and ever evolving context of diversified and expanding application domains and also technological, organisational, economic, and socio-political changes.

1c. Self-confidence: Demonstrate the self confidence and belief in challenging oneself

  1. Computing and Society:

2a. Social Justice: Demonstrate respect and support for diversity, equity, and social justice

2b. Responsibility for Sustainable Development:  Demonstrate a sense of social responsibility for sustainable development and also understand the impact of the professional computational and information processing solutions in societal and environmental contexts.

2c. Social and Ethical Reasoning: Apply reasoning informed by the contextual knowledge to assess societal, health, safety, legal, cultural, inequality, globalization, and environmental issues and the consequent responsibilities relevant to the professional computing and engineering practice.

2d. Professional Integrity and Excellence: Demonstrate commitment for professional integrity and excellence and respect for ethics, responsibilities and norms wrt public, clients, users, employer, product, management, colleagues, and professional judgement as prescribed for the computing, software engineering, and information technology practice.

  1. Technical competence:

3a. Conceptual understanding: Demonstrate clear conceptual understanding of fundamentals of computing and information technology.

3b. Knowledge and Computational Thinking: Apply computational thinking and the knowledge of computing, information technology, mathematics, engineering fundamentals, management as well as social and physical  sciences to the solution of complex engineering problems associated with design, development, debugging, review, testing, evaluation, deployment, maintenance, and re-engineering of computing and information systems.

3c. Tools and Practices: Create, select, modify, and apply appropriate components, subsystems, techniques, best practices, standards, resources, and modern computational, engineering, productivity, communication, collaboration tools including prediction and modelling to complex engineering and social activities with an understanding of the limitations.

  1. Complex problem Solving and Systems engineering competence:

4a. Systems Engineering Mindset: Demonstrate the ability to understand aspects, interrelationship, interconnections and implications of modification of systems to locate system failures, outline failure solution, analyze/dismantle system to individual components, and   synthesize/design subsystems linkages to a whole.

4b. Complex Problem Formulation and Analysis: Identify, anticipate, formulate, research literature, analyse, and represent complex computational and information processing problems, also having multiple stakeholders with divergent views,  in diversified contexts and application domains to arrive at substantiated conclusions using first principles of computing, mathematics, as well as engineering, social and natural sciences.

4c. Systems Analysis: Pay attention to details, observe and track the situation to identify patterns and trends of behaviour that go below the surface, and also identify and consider ambiguities, nonlinearities, complexities, uncertainties, complications, and risks

4d. Systems Design and Development: Define, Design and develop solutions for complex computational and information processing problems and design components, system or processes that meet the specified needs with appropriate concern for the quality, reliability, performance, tradeoffs, user experience, elegance, optimisation, extensibility, scalability, and also ‘social and environmental responsibility and professional ethics.

4e. Planning: The ability to prioritise and plan effectively.

4f. Reflective Practice: Use reflection to improvise the computational and information processing solutions and problem solving practice, to re-understand their own role, and to support users in reflecting on their work and lives.

  1. Individual and team work:

Function effectively as an individual, and as a member, leader, or mentor in diverse, small, large, and even virtual teams, and in multidisciplinary settings for carrying out complex computing and information processing activities.

  1. Communication:

Communicate effectively on complex computing and information processing problems situations and activities using verbal, textual, and pictorial elements with the colleagues, computing and engineering community, users, clients, policy makers, and with society at large with understanding, empathy, and clarity.

  1. Critical thinking and research:

7a. Critical Thinking: Identify, analyze, synthesize, evaluate, review, and consider the purpose, problem, concepts, information, assumptions, inferences, interpretations, points of view, implications, consequences, context, criteria, and method in the light of the clarity, specificity, relevance, logical, significance, consistence, breadth, depth, accuracy, precision, fairness, and completeness.

7b. Research: Use research-based knowledge and research methods including design of experiments, analysis and interpretation of data, and synthesis of the information to provide valid conclusions.

  1. Innovation and entrepreneurship:

8a. Intrinsic motivation to create/improve artifacts: Demonstrate enthusiasm and passion to improvise and create incremental, evolutionary and innovative computational and information processing components, systems and processes.

8b. Creativity: Demonstrate creativity in restructuring the problem/decision task, generating alternatives, defining/selecting decision criteria and strategy, evaluating alternatives, and pruning computational and information processing components, systems and processes

8c. Innovation: Identify opportunities and translate research in computing and other disciplines to develop innovative and commercializable IT products and services.

8d. Entrepreneurship: Demonstrate capability of launching new ventures either as start-up businesses or within existing corporate structures in the business sector of IT or ITES.

Posted in: Uncategorized