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/Corequisites  BSC101C 
Credit Points 
3 Total program Credit Points 81 (27x3) 
Mode of Delivery  Online or oncampus. 
Unit Workload  (Total student workload including “contact hours” = 10 hours per week; 5 hours per week for 24 week delivery) Prerecordings / 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:
 Write and interpret moderately complex C programs
Bloom’s Level 6  Structure programs
Bloom’s Level 6  Incorporate basic file processing techniques into programs
Bloom’s Level 3  Conceptualize engineering problems to computational problems
Bloom’s Level 3  Solve realworld problems by formulating solutions, and developing and troubleshooting C programs to implement solutions
Bloom’s Level 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: Multichoice test / Group work / Short answer questions / Practical 
After Topic 4  20%  1, 2, 3, 4 
Assessment 2 Type: Multichoice test / Group work / Short answer questions / Practical 
After Topic 7  20%  1, 2, 3, 4 
Assessment 3 Type: Project 
After Topic 9  30%  1, 2, 3, 4,5 
Assessment 4 Type: Multichoice test / Group work / Short answer questions / Practical 
Final Week  25%  6 
Attendance / Tutorial Participation Example: Presentation, discussion, group work, exercises, selfassessment/reflection, case study analysis, application. 
Continuous  5%  1, 2, 3, 4, 5, 6 
Prescribed Readings
Suggested Textbook
J. R. Hanly, E. B. Koffman, Problem Solving and Program Design in C, 8th Edition, 2015. ISBN: 9781292098821.
Reference Materials
• S. T. Karris, Numerical Analysis using MATLAB and Excel. Orchard Publications, I2007. SBN13: 9781934404041
• Deitel, H, Deitel, P 2012: C: How to Program, 7th edn, Pearson Education, ISBN13: 9780132990448
• Chapman, SJ 2008, MATLAB Programming for Engineers, 4th edn, Thomson, ISBN13: 9780495244493.
• Downey, A 2009, Physical Modeling in MATLAB, Open Textbook Library
• Peerreviewed journals
• Knovel library: http://app.knovel.com
• IDC Technologies publications
• Other material and online collections as advised during the lectures
Journal, website
Number of peerreviewed journals and websites (advised during lectures)
Science of Computer Programming
http://www.journals.elsevier.com/scienceofcomputerprogramming/
Unit Content
One topic is delivered per contact week, with the exception of parttime 24week units, where one topic is delivered every two weeks.
Topic 1
Overview of Engineering Programming
 Computers: Hardware and Software
 Computer Organization (CU, ALU, registers, memory and clock/execution)
 Personal, Distributed and Client/Server Computing
 Machine Languages, Assembly Languages and HighLevel Languages
 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.
 The Software Development Method
 Specifying the problem requirements.
 Analyzing the problem.
 Designing the algorithm to solve the problem.
 Implementing the algorithm.
 Testing and verifying the completed program.
 Maintaining and updating the program.
 Professional Ethics for Computer Programmers
Topic 2
Overview of C Language
 C Language Elements
 Variable Declarations and Data Types
 Executable Statements
 General Form of a C Program
 Arithmetic Expressions
 Formatting Numbers in Program Output
 Interactive Mode, Batch Mode, and Data Files
Topic 3
TopDown Design with Functions
 Building Programs from Existing Information
 Library Functions
 Math Library Functions
 Function Definitions
 Function prototypes
 Function call stack and activation records
 Headers
 Random number generation
 TopDown Design and Structure Charts
 Functions without Arguments
 Functions with Input Arguments
Topic 4
Selection Structures: if and switch Statements
 Control structures: sequence, selection, and repetition
 Conditions
 Relational and Equality Operators
 Logical Operators
 Operator Precedence
 Writing Conditions in C
 Comparing Characters
 Logical Assignment
 Complementing a Condition
 The if Statement
 If Statements with Compound Statements
 Decision Steps in Algorithms
 Nested if Statements and MultipleAlternative Decisions
 The switch Statement
Topic 5
Repetition, Loop Statements and Recursion
 Repetition in Programs
 Counting Loops and the while Statement
 Computing a Sum or a Product in a Loop
 The for Statement
 Conditional Loops
 Loop Design
 Nested Loops
 The dowhile Statement and FlagControlled Loops
 Iterative Approximations
 Recursion
 The Nature of Recursion
 Tracing a Recursive Function
 Recursive Mathematical Functions
 Example Using Recursion: Fibonacci Series
Topic 6
Arrays
 Declaring and Referencing Arrays
 Array Subscripts
 Using for Loops for Sequential Access
 Using Array Elements as Function Arguments
 Array Arguments
 Searching and Sorting an Array
 Parallel Arrays and Enumerated Types
 Multidimensional Arrays
 Graphics Programs with Arrays
Topic 7
Pointer, Modular Programming, Debugging and Testing, Dynamic Data Structures
 Pointers and the Indirection Operator
 Functions with Output Parameters
 Multiple Calls to a Function with Input/Output Parameters
 Scope of Names
 Formal Output Parameters as Actual Arguments
 Debugging and Testing a Program System
 Dynamic Data Structures
 Pointers to structures
 Dynamic Memory Allocation
Topic 8
Strings
 String Basics
 String Library Functions: Assignment and Substrings
 Longer Strings: Concatenation and WholeLine Input
 String Comparison
 Arrays of Pointers
 Character Operations
 StringtoNumber and NumbertoString Conversions
Topic 9
User defined Structures, Files and Libraries, storage classes and compilation
 UserDefined Structure Types
 Structure Type Data as Input and Output Parameters
 Functions Whose Result Values Are Structured
 Input/Output Files
 Binary Files
 Procedural Abstraction
 Data Abstraction
 Personal Libraries: header files, implementation files
 Storage classes
 Conditional compilation
 Arguments to Function main
Topic 10
Introduction to MATLAB
 The MATLAB Environment
 The MATLAB Desktop
 The Edit/Debug Window
 Docking and Undocking Window
 The MATLAB Workspace
 The Workspace Browser
 Variables and Arrays
 Initializing Variables in MATLAB
 Vectors, Matrices and Arrays
 Multidimensional Arrays
 Subarrays
 Displaying Output Data
 Data Files
 Hierarchy of Operations
 Builtin MATLAB Functions
 Common MATLAB Functions
 Introduction to Plotting
Topic 11
Numerical Analysis using MATLAB
 Roots of Polynomials
 Polynomial Construction from Known Roots
 Evaluation of a Polynomial at Specified Values
 Rational Polynomials
 Root Approximation
 Matrices and Determinants
Excel Programming
 Introduction to Excel
 GUI
 Functions and cell operations
Topic 12
Excel Programming
 Mathematical problem solving and plotting using Excel
 Numerical integration and differentiation using excel
 Macros
 Introduction to Excel VBA
 Unit Review
Software/Hardware Used
Software

Software: MATLAB

Version: 2018a+

Instructions: Y:\Data  ALL.ELearning\Software\Remote Labs\Instructions for Specific Labs\MATLAB

Additional resources or files: N/A

Software: MS Excel

Version: 2010+

Software: CodeBlocks C/C++ IDE

Version: http://www.codeblocks.org/

Instructions: http://www.codeblocks.org/

Additional resources or files: N/A

Software: Repl.it (Cloud IDE)

Version: https://repl.it/

Instructions: https://repl.it/

Additional resources or files: N/A
Hardware
 N/A