CMT120: Fundamentals of Programming

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CMT120
External Subject Code 100366
Number of Credits 30
Level L7
Language of Delivery English
Module Leader Dr Federico Liberatore
Semester Autumn Semester
Academic Year 2020/1

Outline Description of Module

This module will introduce you to the concepts and processes of programming across a range of programming styles and languages and in a range of application domains. It will introduce different programming languages, and ways in which they may be used to create solutions to given problems. It will allow you to work together as a team to deliver solutions, and will assess your understanding of simple data structures, algorithms, and the ways in which complex applications can be built.

On completion of the module a student should be able to

  1. Use high-level programming languages to complete programming tasks
  2. Demonstrate familiarity with programming concepts, simple data-structures and algorithms
  3. Design and use relational databases
  4. Develop secure web applications
  5. Critically evaluate the role of security, quality and usability within software projects

How the module will be delivered

Modules will be delivered through blended learning. You will be guided through learning activities appropriate to your module, which may include: • on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes), • on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings) • face to face small group sessions (e.g. help classes, feedback sessions)

Skills that will be practised and developed

Programming with high-level programming languages (e.g Python, JavaScript) Use of web languages to produce effective, usable interfaces

Team working skills Reflection on learning Communication skills: writing technical reports

How the module will be assessed

A blend of assessment types which may include coursework and portfolio assessments, class tests, and/or formal examinations.

Assessment Breakdown

Type % Title Duration(hrs)
Practical Skills Assessment 30 Practical Programming Tasks: Programming Challenges N/A
Report 70 Web Application Development N/A
Portfolio 0 Reflective Portfolio: Reflective Portfolio And Learning Log N/A

Syllabus content


Core skills Programming with high-level languages, e.g Python, JavaScript Variables, control structures, functions, libraries/modules, scripting Simple algorithms and data structures: searching/sorting, lists/arrays/dicts Relational databases: design and implementation Web Applications: developing secure server-side applications using HTML, CSS and server-side languages Commercial considerations of technology Systems design & system architecture

Optional topics to be covered may include: Data analysis and statistics: descriptives, hypothesis testing, basic visualisation User Experience (UX) and User Interfaces (UI) Further algorithms and data structures

Copyright Cardiff University. Registered charity no. 1136855