Skip to main content Skip to navigation

WM164-30 Smart Solutions Development I (Programming)

Department
WMG
Level
Undergraduate Level 1
Module leader
Jianhua Yang
Credit value
30
Module duration
17 weeks
Assessment
100% coursework
Study location
University of Warwick main campus, Coventry

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.