Introduction to Engineering Computation and Software Development

Semester 2, 2019

Staff

- Peter Bier (director, coordinator)
- Paul Denny
- Colin Simpson

Extra teaching assistants

Dustin Philip is the lab coordinator.

Teaching schedule

Each week there are three lectures and a two hour lab session. Lab sessions start in week 1.

Peter Bier and Colin Simpson will be sharing the lecturing of the Matlab half of the course. Paul Denny will be lecturing the C half of the course.

Calendar notes

Introduction to problem solving in engineering through the use of the software package MATLAB, and the programming language C.

Restriction: ENGSCI 233, 331

## Intended learning outcomes |
## Related graduate attributes |
## Related assessments |
---|---|---|

Introduction to high-level scripting: Ability to write and execute a simple, commented script program that takes user input and displays output. Define the role of variables in the context of script programs. Perform simple element-wise operations on 1 and 2D arrays. |
ENGA01: engineering knowledge (2) ENGK02: mathematical modelling (4) UOA_1: Disciplinary Knowledge and Practice (2) UOA_3: Solution Seeking (2) |
Test 1 (Matlab) Matlab Project Project 1 (Matlab) Peer Review Lab mark Assignment 1 (Matlab) Peerwise questions Test 2 (Matlab) Exam Section B: Matlab Long Answer |

Problem solving, functions and debugging: Application of a problem solving methodology to develop an algorithm, translate into pseudocode and then write and execute as a script, calling user written functions as appropriate. Application of debugging skills to locate and fix software bugs. |
ENGA02: problem analysis (1) ENGK02: mathematical modelling (4) ENGK03: abstraction and formulation (2) ENGK05: engineering design (1) UOA_1: Disciplinary Knowledge and Practice (2) UOA_2: Critical Thinking (1) UOA_3: Solution Seeking (2) |
Test 1 (Matlab) Matlab Project Project 1 (Matlab) Peer Review CodeWrite Assignment (C) Test 3 (C) Project 2 (C) Lab mark Assignment 1 (Matlab) Peerwise questions Exam Section A: C Programming Multiple Choice Exam Section B: Matlab Long Answer Test 2 (Matlab) |

Controlling program flow: Application of logical operators (and, or, not, >, <, ==), conditional statements (if, elseif, else) and loops (for, while) within a script to control program flow. |
ENGK03: abstraction and formulation (2) UOA_3: Solution Seeking (2) |
Test 1 (Matlab) Matlab Project Project 1 (Matlab) Peer Review CodeWrite Assignment (C) Test 3 (C) Project 2 (C) Lab mark Assignment 1 (Matlab) Peerwise questions Exam Section A: C Programming Multiple Choice Exam Section B: Matlab Long Answer Test 2 (Matlab) |

Graphics and image processing: Application of in-built functions for plotting 1D, 2D and 3D data, manipulating and processing images. |
ENGA01: engineering knowledge (2) ENGK02: mathematical modelling (4) UOA_1: Disciplinary Knowledge and Practice (2) UOA_3: Solution Seeking (2) |
Matlab Project Project 1 (Matlab) Peer Review Test 3 (C) Project 2 (C) Lab mark Assignment 1 (Matlab) Peerwise questions Test 2 (Matlab) Exam Section B: Matlab Long Answer Exam Section A: C Programming Multiple Choice |

Reading and writing data: Application of in-built functions for string manipulation to simple problems. Application of in-built functions for ASCII file input/output. For a moderate sized dataset, compute simple summary statistics (min, max, mean, std, sum, etc). |
ENGA01: engineering knowledge (2) ENGK02: mathematical modelling (4) UOA_1: Disciplinary Knowledge and Practice (2) UOA_3: Solution Seeking (2) |
Matlab Project Project 1 (Matlab) Peer Review CodeWrite Assignment (C) Test 3 (C) Project 2 (C) Lab mark Assignment 1 (Matlab) Peerwise questions Exam Section A: C Programming Multiple Choice Exam Section B: Matlab Long Answer Test 2 (Matlab) |

Solving linear algebra problems and differential equations: Application of in-built functions to: solve linear algebra problems and first order differential equations. Write functions that take other functions as inputs. |
ENGA01: engineering knowledge (2) ENGA02: problem analysis (1) ENGK02: mathematical modelling (4) UOA_1: Disciplinary Knowledge and Practice (2) UOA_2: Critical Thinking (1) UOA_3: Solution Seeking (2) |
Lab mark Exam Section B: Matlab Long Answer |

An introduction to compiled languages: Comprehend how a low-level language is compiled to produce an executable. Comprehend why there are different data types, how they are declared and explain how this affects values assigned to them. Write, compile and execute a well commented computer program that performs a simple task. |
ENGA01: engineering knowledge (2) UOA_1: Disciplinary Knowledge and Practice (2) |
CodeWrite Assignment (C) Test 3 (C) Project 2 (C) Lab mark Exam Section A: C Programming Multiple Choice |

Data structures: Create and manipulate structures and images via library routines in the context of a compiled language. |
ENGK02: mathematical modelling (4) ENGK03: abstraction and formulation (2) UOA_1: Disciplinary Knowledge and Practice (2) UOA_3: Solution Seeking (2) |
CodeWrite Assignment (C) Test 3 (C) Project 2 (C) Lab mark Exam Section A: C Programming Multiple Choice |

Pointers, memory allocation and strings: Create and manipulate string arrays in compiled languages. Allocate/deallocate memory for arrays. Create, manipulate and destroy pointers for array manipulation. Explain the difference between a variable and a pointer to a variable, and the advantage of pointers when using functions. |
ENGA01: engineering knowledge (2) UOA_1: Disciplinary Knowledge and Practice (2) |
Test 3 (C) Project 2 (C) Lab mark Exam Section A: C Programming Multiple Choice |

Recursion: Application of compiled languages to write recursive functions. |
ENGA01: engineering knowledge (2) ENGA02: problem analysis (1) ENGK03: abstraction and formulation (2) UOA_1: Disciplinary Knowledge and Practice (2) UOA_2: Critical Thinking (1) UOA_3: Solution Seeking (2) |
Lab mark Exam Section A: C Programming Multiple Choice |

Define Software Engineering |
ENGA01: engineering knowledge (2) UOA_1: Disciplinary Knowledge and Practice (2) |
Exam Section A: C Programming Multiple Choice |

Coursework

Labs (12% of final grade). There are weekly labs (twelve in total). Each lab is worth 1% of your final grade.

• Labs 1-6 cover Matlab programming.

• Labs 7-12 cover C programming.

Assignments (4% of final grade). There are two short assignments, each worth 2% of your final grade. Assignment 1 (on Matlab) requires students to contribute to a repository of multichoice questions. You will be assigned to either group A or group B at the end of Week 2.

• Assignment 1 Group A must submit their questions by Friday of Week 3 at 11:59pm.

• Assignment 1 Group B must submit their questions by Friday of Week 5 at 11:59pm.

• Assignment 2 (on C programming) see Canvas for due date.

Projects (24% of final grade). There are two large projects, each worth 12% of your final grade.

• Project 1 (on Matlab programming) is due on the last Friday of the mid-semester break at 11:59pm.

• Project 1 also includes a peer review component which is due Friday of Week 7 at 11:59pm.

• Project 2 (on C programming) see Canvas for due date.

A late penalty will be applied to Matlab projects submitted after the due date.

• Matlab Projects submitted late will have a 1 percent per hour (or part of an hour) penalty applied.

• Late Matlab projects will not be accepted beyond 48 hours past the due date.

Tests (10% of final grade).

There are three multichoice tests in total. Test 1 and 2 are on Matlab. Your BEST result from the two Matlab tests counts towards 5% of your final grade. Test 3 covers C programming and is worth 5% of your final grade.

Test details are as follows:

• Test 1 (Matlab). 30 minute test held on the evening of the Thursday in Week 4, covering material taught in the preceding weeks. Assemble at 6.15pm.

• Test 2 (Matlab). 30 minute test held during your usual lecture time on the Wednesday of Week 6, covering material taught since the start of semester. Assemble outside your usual lecture theatre.

• Test 3 (C). 90 minute test typically held on the evening of the Thursday of Week 10 (see Canvas for confirmation), covering C material taught in the proceeding weeks. Assemble at 6.15pm.

Exam rules

A 10% rule applies when calculating your final grade. Your coursework mark (which includes labs, assignments, projects and test) cannot raise you by more than 10 percentage points above your exam mark (e.g. if you score 40% in the exam you cannot get more than 50% for your final mark). See the example code at the end of chapter 1 of the Matlab course manual for more details on how your final mark is calculated.

DO YOUR OWN COURSEWORK, otherwise you will not know what you are doing in the exam and you will fail.

Inclusive learning

Students are urged to discuss privately any impairment-related requirements face-to-face and/or in written form with the course convenor/lecturer and/or tutor.

Other assessment rules

A late penalty will be applied to projects submitted after the due date.

Projects submitted late will have a 1 percent per hour (or part of an hour) penalty applied.

Late projects will not be accepted beyond 48 hours past the due date.

All mark queries must be lodged BEFORE the day of the final exam.

Academic integrity

The University of Auckland will not tolerate cheating, or assisting others to cheat, and views cheating in coursework as a serious academic offence. The work that a student submits for grading must be the student's own work, reflecting his or her learning. Where work from other sources is used, it must be properly acknowledged and referenced. This requirement also applies to sources on the world-wide web. A student's assessed work may be reviewed against electronic source material using computerised detection mechanisms. Upon reasonable request, students may be required to provide an electronic version of their work for computerised review.

All students enrolled at the University of Auckland are required to complete a compulsory Academic Integrity course, usually in their first semester/year of enrolment. The University of Auckland’s full guidelines on procedures and penalties for academic dishonesty are available here.

This site intends to guide you through your chosen specialisation at the Faculty of Engineering. The semester links lets you view detailed course information for your chosen course. Please note that the structure displayed for your specialisation here will reflect what’s available over the upcoming semesters, but detailed information may be from a previous year.

All the information here is accurate at the time of publication, but you are are advised to additionally consult our official document, the University of Auckland Calendar, for accurate academic regulations, requirements, and policies.