WM164-30 Smart Solutions Development I (Programming)
Introductory description
The Industry 4.0 revolution is taking place which is also driving every single industry to become more smart and adaptable. Smart and portable devices can display important information on touchscreens using software programs embodied in hardware. As such, programming skills are needed to create reconfigurable, customized and dependable programs that would not be only useful to improve customer experience but will also help the industry to differentiate itself from the other competitors.
Module aims
This module aims to cover programming constructs, algorithm design, and problem-solving techniques. The main concepts related to procedural programming and language constructs present in all high-level languages will be covered. Also, the fundamental concepts about the role of algorithms, concepts, and properties of algorithms and debugging strategies will be taught. The main objective is to let students design, test, code and debug the programs. An overview of data structures will also be taught.
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
Variables and constants
- Variable types and assignment
- Local variables, global variables and global constants
- Integers and real numbers
Operators - Mathematical operators
- Bit wise operators and logical operators
Loops and decision structures - For loops
- While and do-while loop
- If/else statements
- Switch and case statements
- Nested decision structures
Functions - Functions
- Built-in functions
- Passing arguments to functions and returning values
- Recursive functions
Version control - Version management
- Head, master, origin, branch
Learning outcomes
By the end of the module, students should be able to:
- Know basic syntax, data structures, and style conventions used in modern programming languages, and compare compiled and interpreted languages, know how one language can interact with another.
- Describe basic principles of version control systems, and know how those principles can be used for version management.
- Interpret the concepts of algorithm complexity and memory management, know the underlying benefits of manipulating computer memory directly.
- Describe basic underlying theories of object-oriented programming, and know how to code following object-oriented theories.
- Know how to create simple graphic user interface based applications to solve real-world problems.
Indicative reading list
Starting Out with C++, Book by Tony Gaddis; Judy Walters; Godfrey Muganda 2019, essential
Starting Out with Python, Global Edition, Book by Tony Gaddis 2018, essential
Effective Python, Book by Brett Slatkin 2019, essential
View reading list on Talis Aspire
Subject specific skills
Programming in C++, Programming in Python, distributed version control using Git, object-oriented programming
Transferable skills
Team working, problem-solving, oral and written communication
Study time
Type | Required |
---|---|
Lectures | 40 sessions of 1 hour (13%) |
Practical classes | 24 sessions of 1 hour (8%) |
Private study | 200 hours (67%) |
Assessment | 36 hours (12%) |
Total | 300 hours |
Private study description
200 hours guided self-study including:
- Pre-block reading list given on Moodle to encourage flipped learning approach
- Pre-block online Quizzes
- Pre-block exercises given on Moodle.
- Post block reading list published on Moodle that helps students to do Individual projects.
- Post-block problem sets released on Moodle.
- Post block online Quizzes for revision
- Post-block reading list on ‘Advance topics relating to programming’ is published to encourage the outperforming students
- Online links for learning programming step by step published on Moodle to help the struggling students.
- Online forum for discussing queries with course peers and tutor.
- Online consulting session for providing one to one support to help struggling students.
- Online tutor-recorded videos.
- Distance learning support using technology enhanced learning.
Costs
No further costs have been identified for this module.
You must pass all assessment components to pass the module.
Assessment group A
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Assessment component |
|||
Assessment 1 | 40% | 12 hours | Yes (extension) |
In module assessment (programming exercises) |
|||
Reassessment component is the same |
|||
Assessment component |
|||
Assessment 2 | 60% | 24 hours | Yes (extension) |
Post Module Assessment– 3500 words (typically a work-based project that incorporates algorithms, programming and data structures concepts) |
|||
Reassessment component is the same |
Feedback on assessment
Feedback will be given as appropriate to the assessment type:
– verbal formative feedback on programming exercises
– written summative feedback on the post module assessment.
There is currently no information about the courses for which this module is core or optional.