School of Computer Science The University of Adelaide Australia
Computer Science Home
About the School
Staff Only
text zoom: S | M | L

School of Computer Science
Innova21 Building
SA 5005

Telephone: +61 8 8313 5586
Facsimile: +61 8 8313 4366

You are here: Computer Science > Courses > Introduction to Engineering - CS Modules

Introduction to Mechanical Engineering

Programming in C and MATLAB

Puzzle Based Learning


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

North Tce, Adelaide
  • 2009 Semester 1, Puzzle Based Learning
  • 2009 Semester 1, Programming in C and MATLAB
  • Teaching Method

    48 hours lectures, 22 hours laboratory classes.


    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 problem-solving principles.
    • Understand the broad concepts of modelling, constraint-processing, 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.


    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.

    Puzzle-Based Learning, Z. Michalewicz & M. Michalewicz, Hybrid Publishers, 2008.