Skip to main content


ENG1008 : Introduction to Programming Languages (C, Matlab and Python)

  • Offered for Year: 2024/25
  • Module Leader(s): Dr Domenico Balsamo
  • Lecturer: Dr Chuan Cheng
  • Owning School: Engineering
  • Teaching Location: Newcastle City Campus

Your programme is made up of credits, the total differs on programme to programme.

Semester 1 Credit Value: 7
Semester 2 Credit Value: 8
ECTS Credits: 8.0
European Credit Transfer System


With this module, students will learn how to develop software design concepts and related programming techniques and handle C for embedded system programming (e.g. Arduino), MATLAB for numerical computing tasks, and Python for scientific computing tasks.

Outline Of Syllabus

Students will be asked to bring curiosity about software design and computer programming. Together, we will develop the ability to express algorithms through single steps (i.e., how to solve problems with a finite number of actions on a set of data) and translate these steps into programming languages (C, Matlab and Python).

In particular, C programming is used to program an open-source embedded platform, Arduino, based on easy-to-use hardware and software implementation. The C programming part is particularly aligned with the requirements of ENG1002, especially for the final project, which requires knowledge of Arduino programming. At the same time, students will learn how to use tools for data analysis and scientific computing. To this end, students will learn Matlab, a scripting language for MathWorks' Matlab computing environment, designed for numerical computing tasks, such as engineering or scientific simulations, and Python, an interpreted, object-oriented language that draws much of its power from a broad constellation of libraries, including popular modules for scientific computing.

Upon completing this module, which spans two semesters, students will become familiar with software (and hardware) development frameworks such as Tinkercad for Arduino and gain experience using the core building blocks of the C, Matlab and Python programming languages.

Through these outcomes, students will more naturally learn other programming languages (e.g. C++ and Java) taught at later stages and useful for career advancement.

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Scheduled Learning And Teaching ActivitiesLecture181:0018:001x1-hour lectures per week over 18 weeks.
Guided Independent StudyAssessment preparation and completion21:002:00Digital Portfolio 2: In-person computer-based final assessments (multi-choice questions - MCQs) for MATLAB and Python.
Guided Independent StudyAssessment preparation and completion11:001:00Digital Portfolio Semester 1: In-person computer-based final assessment (multi-choice questions - MCQs) for C.
Guided Independent StudyAssessment preparation and completion431:0043:00Solving problems for this module's three parts (C, MATLAB and Python).
Scheduled Learning And Teaching ActivitiesPractical183:0054:002hr hour practical sessions guided by the lecturer per week over 18 weeks plus 1 additional hour for completing exercises.
Guided Independent StudyIndependent study132:0032:00Review lecture notes and read recommended texts and books.
Teaching Rationale And Relationship

Lectures provide core material and guidance for further reading, and problem-solving practice is provided through tutorials. Work is further reinforced through the laboratory sessions.

Assessment Methods

The format of resits will be determined by the Board of Examiners

Other Assessment
Description Semester When Set Percentage Comment
Portfolio1M34Digital Portfolio: C programming with Arduino assessment based on MCQs.
Portfolio2M66Digital Portfolio 2: MATLAB and Python programming assessments based on MCQs
Formative Assessments

Formative Assessment is an assessment which develops your skills in being assessed, allows for you to receive feedback, and prepares you for being assessed. However, it does not count to your final mark.

Description Semester When Set Comment
Reflective log2MStudents will be asked to demonstrate through a dedicated reflective portfolio tool that they have completed and reflected on the lab exercises throughout the module. This reflection activity is aligned with what students are asked to do within ENG1009.
Assessment Rationale And Relationship

The Digital Portfolios assess the student's programming skills for C programming, MATLAB and Python programming.

Reading Lists