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
- Use high-level programming languages to complete programming tasks
- Demonstrate familiarity with programming concepts, simple data-structures and algorithms
- Design and use relational databases
- Develop secure web applications
- 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