Upload
brainkz
View
11
Download
0
Embed Size (px)
Citation preview
Dept. of Mechanical Engineering
Module Code: School: Engineering
Title: Modelling and Software Development (EAMS-114)
Weighting: 2 credits Coordinator: Luis Rojas-Solorzano
Year of Study: 1 Other lecturers: Alex James
Pass mark: 440% Teaching Assistants: Meruyert Muratbekkyzy
Arailym Butabayeva
Aims: The aim of this theroretical and hands-on module is to provide students with the basic skills, both in understanding the underlying domains and in understanding the fundamentals of software development in scientific and engineering applications. This understanding includes what constitutes a ¨good¨ program and algorithm. In particular, this module is concerned with developing critical knowledge on appropriate solution approach, managing program complexity and maintaining ¨healthy¨ software solutions for scientific and engineering problems.
Learning Outcomes:
On completion of the module, the student is expected to be able to:
Develop flow diagrams to represent complex processes.
Evaluate and explain the behavior of basic scientific and engineering programs involving the fundamental code elements.
Apply function decomposition, modularization and object-oriented software development techniques in order to create maintainable software.
Assess and compare the impact of algorithms on program performance and resource consumption.
Design, implement, evaluate and apply code programming an debugging using C++ and Matlab languages.
Write a good documentation to facilitate re-use of own code by others.
Synopsis: 1. Programming and problem-solving: algorithms, program design, object-oriented programming, the software life-cycle.
2. Introduction to C++: origins, sample program, programming a simple C++ program, compiling and running a C++ program.
3. Testing and debugging: types of program errors.
4. C++ basics:
4.1. variables and assignments.
4.2. Input and output.
4.3. Data types and expressions.
4.4. Simple flow of control (e.g., loops, counters, etc.)
4.5. Program style (indenting, comments and naming constants).
5. Advanced flow control:
5.1. Boolean expressions.
5.2. Complex branching (e.g., nested statements, nested loops and debugging)
6. Functions: predefined and user-defined.
7. Introduction to arrays.
8. Introduction to Matlab.
8.1. Matlab algorithms and operations. Matlab applications in engineering.
8.2. Introduction to linear and non-linear concepts
8.3. Modeling examples and techniques: chemical, civil, electrical and mechanical engineering systems.
9. Introduction to Software Engineering
10. Requirements Engineering
11. Software Testing
Textbooks: 1. Problem Solving with C++, 7th ed., W. Savitch, 2008. (main textbook)2. Programming Principles and Practice using C++, 1st ed., 2008.3. C++ Programming in Easy Steps, 3rd ed., 2008.4. Software Engineering - 9 by Ian Sommerville, Pearson, 2010.
Contact Time: 24 hours and 6 hours of C++/Matlab Lab tutorials.
Coursework: Lab assignments and quizzes, C++ project and Matlab project
Examination: 1 Final exam
Breakdown: Lab assignments and quizzes: 20%C++ project: 20%Matlab project: 20%Final exam: 40%