Introduction to Mechanical Engineering
Programming in C and MATLAB
Puzzle Based Learning
Synopsis
Introduction to Mechanical Engineering (and related courses) is constructed of three modules:
 Introduction to Mechanical Engineering as a discipline (and related disciplines)
 Programming in C and MATLAB
 Puzzle Based Learning
Level: 1
Credit: 3 units
Course Offerings
Teaching Method
48 hours lectures, 22 hours laboratory classes.
Assessment
60% of the assessment comes from the Programming Module:
 practical examinations (15%)
 practical assignments (15%), and
 written examination (70%)).
40% of the assessment comes from the Puzzle Based Learning Module:
 assignments (30%) and
 written examination (70%).
Assessment Rationale
Assignments are provided as part of the learning experience. Students are expected to enhance their knowledge and understanding of the subject matter through completing the assignments, so they are regarded as formative rather than summative. The assignments are marked and the results included in the final assessment to ensure that students actually do the assignments and take them seriously. Feedback on your assignments will be provided within your practical sessions (for the programming module) and in lectures (for the Puzzle Based Learning module). Additional feedback can be sought from your lecturers and on the online Moodle forums. Assignments are also used to help assess whether the required graduate attributes are being developed. Written feedback will be provided for some of the assessment work.
The practical examinations are intended to assess the studentâ€™s knowledge in practical application of the concepts taught in lectures, specifically in designing and developing programming solutions. The practical examinations are summative assessment.
The examinations are summative assessment and are intended to assess the studentâ€™s knowledge and understanding of the course material.
Course Objectives
On completion of the course, students should:
 Understand the common constructs that make up programming languages.
 Be able to problem solve and design solutions to programming problems.
 Be able to efficiently translate solutions into computer programs.
 Understand the programming constructs of the C and MATLAB programming languages.
 Be able to apply their knowledge of programming and problem solving to the development of C and MATLAB programs.
 Have an appreciation of modern computing technology, and the place that programming has within the Engineering domain.
 Understand the need to undertake lifelong learning.
 Be able to think about framing and solving unstructured problems.
 Understand problemsolving principles.
 Understand the broad concepts of modelling, constraintprocessing, optimisation, probability, statistics, simulation, and pattern recognition.
Graduate Attributes to be developed
 Are able to apply knowledge of Computer Science fundamentals, including programming, computer and data structures, and computer networks.
 Are able to design complex systems involving both hardware, software and networks, using software engineering techniques.
 Have an appreciation of current technologies.
 Are able, by self directed study, to remain up to date with developments in their careers/professions.
 Are innovative and creative, adaptable and are able to guide developments in their careers/professions, are educated in a broad sense, are well informed and can take their place as leaders in the community.
Assessment of Graduate Attributes
All attributes except the last two will be assessed through assignments and examination. The last attribute is expected to be developed as a result of the formal program of study and the realisation by students that to be a competent and effective member of the engineering profession, it is necessary to continually update knowledge and skills through various professional activities such as attendance at conferences and short courses as well as reading and contributing to professional journals.
Course Synopsis
The fundamentals of computer programming, including the software design and development process, common programming constructs and practical application of problem solving. Constructs in C (data types, variables, functions, selection and iteration constructs, memory allocation, simple data structures, input and output) and MATLAB (data types, variables, functions, selection and iteration constructs, matrices and matrix arithmetic, matrix functions, simple plotting, input and output). Simple testing of software programs.
Content
Introduction to Your Engineering Discipline (20%)
Programming in C (30%)
 Introduction to the programming process
 Software design process
 Data types, variables and assignment
 Arithmetic expressions
 Control Structures
 Functions
 Arrays and Pointers
 Input and Output
Programming in MATLAB (20%)
 Fundamental programming constructs in MATLAB
 Matrices and Matrix Arithmetic
 Control Structures
 Matrix Functions
 Overview of Plotting
Puzzle Based Learning (30%)
 Understanding the problem
 Role of the intuition
 Modelling a problem
 Constraints
 Optimisation
 Probability
 Statistics
 Simulations
 Pattern Recognition
 Games and strategies
Text Books
Engineering Programming in C, MATLAB, Java, M. Austin and D. Chancogne, Wiley, 1999.
PuzzleBased Learning, Z. Michalewicz & M. Michalewicz, Hybrid Publishers, 2008.
