Engineering Institute of Technology

 

Unit Name

ENGINEERING PROGRAMMING

Unit Code

BSC201C

 

Unit Duration

Term

Award

Bachelor of Science (Engineering)

 

Duration 3 years

Year Level

Two

Unit Creator/Reviewer

 

Core/Elective

Core

Pre/Co-requisites

BSC101C

Credit Points

3

 

Total Program Credit Points 81 (27 x 3)

Mode of Delivery

Online or on-campus.

Unit Workload

(Total student workload including “contact hours” = 10 hours per week)

Pre-recordings / Lecture – 1.5 hours Tutorial – 1.5 hours

Guided labs / Group work / Assessments – 2 hours

Personal Study recommended - 5 hours

The objective in presenting this unit is to provide students with basic engineering programming concepts, algorithms, and programming techniques necessary to support subsequent studies in engineering. This unit enables the student to acquire the software literacy essential to working creatively in an engineering environment. On completion of the unit, the student would have learned how to utilise structured programming to translate and implement problems in C programming language and use computer programming to solve problems in engineering contexts.

 

The primary topics in this course include, but are not limited to: computer representation of various data types; the computer instruction set; basic C syntax; logic operators; flow control; functions; arrays; pointers;, simple I/O; basic microprocessor instructions; relationships between assembly language and C; compilation; linkage; and loading of programs. The unit also equips the student with the necessary skills to formulate solutions to common engineering problems using Excel and MATLAB programming.

 

Learning Outcomes

On successful completion of this Unit, students are expected to be able to:

  1. Write and interpret moderately complex C programs

  2. Structure programs

  3. Incorporate basic file processing techniques into programs

  4. Conceptualize engineering problems to computational problems

  5. Solve real-world problems by formulating solutions, and developing and troubleshooting C programs to implement solutions

  6. Demonstrate proficiency in MATLAB and excel programming

    Completing this unit may add to students professional development/competencies by:

    1. Fostering personal and professional skills and attributes in order to:

      1. Conduct work in a professionally diligent, accountable and ethical manner.

      2. Effectively use oral and written communication in personal and professional domains.

      3. Foster applicable creative thinking, critical thinking and problem solving skills.

      4. Develop initiative and engagement in lifelong learning and professional development.

      5. Enhance collaboration outcomes and performance in dynamic team roles.

      6. Effectively plan, organise, self-manage and manage others.

      7. Professionally utilise and manage information.

      8. Enhance technologist literacy and apply contextualised technologist skills.

    2. Enhance investigatory and research capabilities in order to:

      1. Develop an understanding of systematic, fundamental scientific, mathematic principles, numerical analysis techniques and statistics applicable to technologists.

      2. Access, evaluate and analyse information on technologist processes, procedures, investigations and the discernment of technologist knowledge development.

      3. Foster an in-depth understanding of specialist bodies of knowledge, computer science, engineering design practice and contextual factors applicable to technologists.

      4. Solve basic and open-ended engineering technologist problems.

      5. Understand the scope, principles, norms, accountabilities and bounds associated with sustainable engineering practice.

    3. Develop engineering application abilities in order to:

      1. Apply established engineering methods to broadly-defined technologist problem solving.

      2. Apply engineering technologist techniques, tool and resources.

      3. Apply systematic technologist synthesis and design processes.

      4. Systematically conduct and manage technologist projects, work assignments, testing and experimentation.

The Australian Engineering Stage 1 Competency Standards for Engineering Technologists, approved as of 2013. This table is referenced in the mapping of graduate attributes to learning outcomes and via the learning outcomes to student assessment.

 

Stage 1 Competencies and Elements of Competency

1.

Knowledge and Skill Base

1.1

Systematic, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the technology domain.

1.2

Conceptual understanding of the, mathematics, numerical analysis, statistics, and computer and information sciences which underpin the technology domain.

1.3

In-depth understanding of specialist bodies of knowledge within the technology domain.

1.4

Discernment of knowledge development within the technology domain.

1.5

Knowledge of engineering design practice and contextual factors impacting the technology domain.

1.6

Understanding of the scope, principles, norms, accountabilities and bounds of sustainable engineering practice in the technology domain.

2.

Engineering Application Ability

2.1

Application of established engineering methods to broadly-defined problem solving within the technology domain.

2.2

Application of engineering techniques, tools and resources within the technology domain.

2.3

Application of systematic synthesis and design processes within the technology domain.

2.4

Application of systematic approaches to the conduct and management of projects within the technology domain.

3.

Professional and Personal Attributes

3.1

Ethical conduct and professional accountability.

3.2

Effective oral and written communication in professional and lay domains.

3.3

Creative, innovative and pro-active demeanour.

3.4

Professional use and management of information.

3.5

Orderly management of self and professional conduct.

3.6

Effective team membership and team leadership.

Successfully completing this Unit will contribute to the recognition of attainment of the following graduate attributes aligned to the AQF Level 7 criteria, Engineers Australia Stage 1 Competency Standards for Engineering Technologists and the Sydney Accord:

 

 

Graduate Attributes

(Knowledge, Skills, Abilities, Professional and Personal Development)

EA Stage 1 Competencies

Learning Outcomes

A. Knowledge of Science and Engineering Fundamentals

A1. Breadth of knowledge of engineering and systematic, theory-based understanding of underlying principles, and depth of knowledge across one or more engineering sub- disciplines

 

1.1, 1.3

 

1, 2, 3, 4, 5, 6

A2. Knowledge of mathematical, statistical and computer sciences appropriate for engineering technology

 

1.2

 

1, 2, 3, 4, 5, 6

A3. Discernment of knowledge development within the technology domain

1.4

4, 5, 6

A4. Knowledge of engineering design practice and contextual factors impacting the technology domain

 

1.5

 

B. Problem Solving, Critical Analysis and Judgement

B1. Ability to research, synthesise, evaluate and innovatively apply theoretical concepts, knowledge and approaches across diverse engineering technology contexts to effectively solve engineering problems

 

1.4, 2.1, 2.3

 

4, 5

B2. Technical and project management skills to design complex systems and solutions in line with developments in engineering technology professional practice

 

2.1, 2.2, 2.3, 3.2

 

C. Effective Communication

C1. Cognitive and technical skills to investigate, analyse and organise information and ideas and to communicate those ideas clearly and fluently, in both written and spoken forms appropriate to the audience

 

3.2

 

4, 5

C2. Ability to engage effectively and appropriately across a diverse range of cultures

3.2

 

D. Design and Project Management

D1. Apply systematic synthesis and design processes within the technology domain

2.1, 2.2, 2.3

 

D2. Apply systematic approaches to the conduct and management of projects within the technology domain

 

2.4

 

5

E. Accountability, Professional and Ethical Conduct

E1. Innovation in applying engineering technology, having regard to ethics and impacts including economic; social; environmental and sustainability

 

1.6, 3.1, 3.4

 

E2. Professional conduct, understanding and accountability in professional practice across diverse circumstances including team work, leadership and independent work

 

3.3, 3.4, 3.5, 3.6

 

This table details the mapping of the unit graduate attributes to the unit learning outcomes and the Australian Engineering Stage 1 Competency Standards for the Engineering Technologist.

 

 

 

Graduate Attributes

A1

A2

A3

A4

B1

B2

C1

C2

D1

D2

E1

E2

 

Engineers Australia Stage 1 Competency Standards for Engineering Technologist

1.1

 

 

 

 

 

 

 

 

 

 

 

1.2

 

 

 

 

 

 

 

 

 

 

 

1.3

 

 

 

 

 

 

 

 

 

 

 

1.4

 

 

 

 

 

 

 

 

 

 

1.5

 

 

 

 

 

 

 

 

 

 

 

1.6

 

 

 

 

 

 

 

 

 

 

 

2.1

 

 

 

 

 

 

 

 

 

2.2

 

 

 

 

 

 

 

 

 

 

2.3

 

 

 

 

 

 

 

 

 

2.4

 

 

 

 

 

 

 

 

 

 

 

3.1

 

 

 

 

 

 

 

 

 

 

 

3.2

 

 

 

 

 

 

 

 

 

3.3

 

 

 

 

 

 

 

 

 

 

 

3.4

 

 

 

 

 

 

 

 

 

 

3.5

 

 

 

 

 

 

 

 

 

 

 

3.6

 

 

 

 

 

 

 

 

 

 

 

 

Unit Learning Outcomes

LO1

 

 

 

 

 

 

 

 

 

 

LO2

 

 

 

 

 

 

 

 

 

 

LO3

 

 

 

 

 

 

 

 

 

 

LO4

 

 

 

 

 

 

 

LO5

 

 

 

 

 

 

LO6

 

 

 

 

 

 

 

 

 

Student assessment

 

 

Assessment Type

When assessed

Weighting

 

(% of total unit marks)

Learning Outcomes Assessed

 

Assessment 1

Type: Multi-choice test / Group work / Short answer questions / Practical

Example Topic: Data types, operators, functions, relational and logic operators.

Students may provide solutions to simple problems on various topics

 

Week 5

 

20%

 

1, 2, 3, 4

 

Assessment 2

Type: Multi-choice test / Group work / Short answer questions / Practical

Example Topic: Software solutions using C programming

Students may complete a quiz with MCQ type answers or solve some simple problems or use software to complete a practical.

 

Week 8

 

20%

 

1, 2, 3, 4

 

Assessment 3

Type: Project

Example Topic: C programming

Comprehensive programming task using C programming to create functional software.

 

Week 10

 

40%

 

1, 2, 3, 4, 5

 

Assessment 4

Type: Multi-choice test / Group work / Short answer questions / Practical

Example Topic: MATLAB and Excel

Students may complete a quiz with MCQ type answers and solve some simple equations to demonstrate a good understanding of the fundamental concepts.

 

Final Week

 

15%

 

6

 

Attendance / Tutorial Participation

Example: Presentation, discussion, group work, exercises, self-assessment/reflection, case study analysis, application.

 

Continuous

 

5%

 

1, 2, 3, 4, 5,

6

Prescribed and recommended readings

 

Suggested Textbook

Hanly, J, Koffman, E 2000, C Program Design for Engineers, 2nd edn, Addison Wesley, ISBN-13: 978-0201708714

Karris, ST 2007, Numerical Analysis using MATLAB and Excel, Orchard Publications, ISBN- 13: 978-1-934404-04-1

To be confirmed by Lecturer.

 

Reference Materials

  • Deitel, H, Deitel, P 2012: C: How to Program, 7th edn, Pearson Education, ISBN-13: 978-0132990448

  • Chapman, SJ 2008, MATLAB Programming for Engineers, 4th edn, Thomson, ISBN- 13: 978-0-495-24449-3.

  • Downey, A 2009, Physical Modeling in MATLAB, Open Textbook Library

  • Peer-reviewed journals

  • Knovel library: http://app.knovel.com

  • IDC Technologies publications

  • Other material and online collections as advised during the lectures

 

Journal, website

Number of peer-reviewed journals and websites (advised during lectures) Science of Computer Programming http://www.journals.elsevier.com/science-of-computer-programming/

 

Unit Content

One topic is delivered per contact week, with the exception of part-time 24-week units, where one topic is delivered every two weeks.

 

Topic 1

Overview of Engineering Programming

  1. Computers: Hardware and Software

  2. Computer Organization (CU, ALU, registers, memory and clock/execution)

  3. Personal, Distributed and Client/Server Computing

  4. Machine Languages, Assembly Languages and High-Level Languages

  5. Some common terms and definitions (software as a service, infrastructure as a service, cloud computing, AWS, relational database, data warehouse, machine learning, internet of things(IOT), Big data, etc.

  6. The Software Development Method

    1. Specifying the problem requirements.

    2. Analyzing the problem.

    3. Designing the algorithm to solve the problem.

    4. Implementing the algorithm.

    5. Testing and verifying the completed program.

    6. Maintaining and updating the program.

  7. Professional Ethics for Computer Programmers

Topic 2

Overview of C Language

  1. C Language Elements

  2. Variable Declarations and Data Types

  3. Executable Statements

  4. General Form of a C Program

  5. Arithmetic Expressions

  6. Formatting Numbers in Program Output

  7. Interactive Mode, Batch Mode, and Data Files

 

Topic 3

Top-Down Design with Functions

  1. Building Programs from Existing Information

  2. Library Functions

    1. Math Library Functions

    2. Function Definitions

    3. Function prototypes

    4. Function call stack and activation records

    5. Headers

    6. Random number generation

  3. Top-Down Design and Structure Charts

  4. Functions without Arguments

  5. Functions with Input Arguments

 

Topic 4

Selection Structures: if and switch Statements

  1. Control structures: sequence, selection, and repetition

  2. Conditions

    1. Relational and Equality Operators

    2. Logical Operators

    3. Operator Precedence

    4. Writing Conditions in C

    5. Comparing Characters

    6. Logical Assignment

    7. Complementing a Condition

  3. The if Statement

  4. If Statements with Compound Statements

  5. Decision Steps in Algorithms

  6. Nested if Statements and Multiple-Alternative Decisions

  7. The switch Statement

 

Topic 5

Repetition, Loop Statements and Recursion

  1. Repetition in Programs

  2. Counting Loops and the while Statement

  3. Computing a Sum or a Product in a Loop

  4. The for Statement

  5. Conditional Loops

  6. Loop Design

  7. Nested Loops

  8. The do-while Statement and Flag-Controlled Loops

  9. Iterative Approximations

  10. Recursion

  11. The Nature of Recursion

  12. Tracing a Recursive Function

  13. Recursive Mathematical Functions

  14. Example Using Recursion: Fibonacci Series

 

Topic 6

Arrays

  1. Declaring and Referencing Arrays

  2. Array Subscripts

  3. Using for Loops for Sequential Access

  4. Using Array Elements as Function Arguments

  5. Array Arguments

  6. Searching and Sorting an Array

  7. Parallel Arrays and Enumerated Types

  8. Multidimensional Arrays

  9. Graphics Programs with Arrays

 

Topic 7

Pointer, Modular Programming, Debugging and Testing, Dynamic Data Structures

  1. Pointers and the Indirection Operator

  2. Functions with Output Parameters

  3. Multiple Calls to a Function with Input/Output Parameters

  4. Scope of Names

  5. Formal Output Parameters as Actual Arguments

  6. Debugging and Testing a Program System

  7. Dynamic Data Structures

  8. Pointers to structures

  9. Dynamic Memory Allocation

 

Topic 8

Strings

  1. String Basics

  2. String Library Functions: Assignment and Substrings

  3. Longer Strings: Concatenation and Whole-Line Input

  4. String Comparison

  5. Arrays of Pointers

  6. Character Operations

  7. String-to-Number and Number-to-String Conversions

 

Topic 9

User defined Structures, Files and Libraries, storage classes and compilation

  1. User-Defined Structure Types

  2. Structure Type Data as Input and Output Parameters

  3. Functions Whose Result Values Are Structured

  4. Input/Output Files

  5. Binary Files

  6. Procedural Abstraction

  7. Data Abstraction

  8. Personal Libraries: header files, implementation files

  9. Storage classes

  10. Conditional compilation

  11. Arguments to Function main

 

Topic 10

Introduction to MATLAB

  1. The MATLAB Environment

  2. The MATLAB Desktop

  3. The Edit/Debug Window

  4. Docking and Undocking Window

  5. The MATLAB Workspace

  6. The Workspace Browser

  7. Variables and Arrays

  8. Initializing Variables in MATLAB

  9. Vectors, Matrices and Arrays

  10. Multidimensional Arrays

  11. Subarrays

  12. Displaying Output Data

  13. Data Files

  14. Hierarchy of Operations

  15. Built-in MATLAB Functions

  16. Common MATLAB Functions

  17. Introduction to Plotting

 

Topic 11

Numerical Analysis using MATLAB

  1. Roots of Polynomials

  2. Polynomial Construction from Known Roots

  3. Evaluation of a Polynomial at Specified Values

  4. Rational Polynomials

  5. Root Approximation

  6. Matrices and Determinants

 

Topic 12

Excel Programming

  1. Introduction to Excel

  2. GUI

  3. Functions and cell operations

  4. Macros

  5. Mathematical problem solving and plotting using Excel

  6. Numerical integration and differentiation using excel

  7. Introduction to Excel VBA