Last Updated S012019

BSC201C

Unit Name Engineering Programming
Unit Code BSC201C
Unit Duration 1 Semester
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 (27x3)

Mode of Delivery Online or on-campus.
Unit Workload (Total student workload including “contact hours” = 10 hours per week; 5 hours per week for 24 week delivery)
Pre-recordings / Lecture – 1.5 hours
Tutorial – 1.5 hours
Guided labs / Group work / Assessments – 2 hours
Personal Study recommended – 5 hours

Unit Description and General Aims

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
    Bloom’s Level 6
  2. Structure programs
    Bloom’s Level 6
  3. Incorporate basic file processing techniques into programs
    Bloom’s Level 3
  4. Conceptualize engineering problems to computational problems
    Bloom’s Level 3
  5. Solve real-world problems by formulating solutions, and developing and troubleshooting C programs to implement solutions
    Bloom’s Level 6
  6. Demonstrate proficiency in MATLAB and excel programming
    Bloom’s Level 3

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

After Topic 4 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.

After Topic 7 20% 1, 2, 3, 4

Assessment 3

Type: Project
Example Topic: C programming
Comprehensive programming task using C programming to create functional software.

After Topic 9 30% 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 25% 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 Readings

Suggested Textbook

Hanly, J. R., Koffman, E. B., 2012, Problem Solving and Program Design in C, 7th Edition. ISBN-13: 978-0132936491.
Karris, S. T., 2007, Numerical Analysis using MATLAB and Excel, Orchard Publications, ISBN-13: 978-1-934404-04-1

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

Excel Programming

  1. Introduction to Excel
  2. GUI
  3. Functions and cell operations

Topic 12

Excel Programming

  1. Mathematical problem solving and plotting using Excel
  2. Numerical integration and differentiation using excel
  3. Macros
  4. Introduction to Excel VBA
  5. Unit Review

Software/Hardware Used

Software

  • Software: MATLAB

  • Version: 2018a+

  • Instructions:  Y:\Data - ALL.E-Learning\Software\Remote Labs\Instructions for Specific Labs\MATLAB

  • Additional resources or files: N/A

 

  • Software: MS Excel

  • Version: 2010+

 

 

Hardware

  • N/A