Module Code - Title:
CS4141
-
INTRODUCTION TO PROGRAMMING
Year Last Offered:
2026/7
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
Rationale and Purpose of the Module:
This module provides students with a foundational introduction to computer programming, equipping them with essential problem‑solving skills and core computational thinking practices. By using flowcharts, pseudocode, and an introductory programming language, the module builds students’ confidence in designing, analysing, and implementing basic algorithms. It aims to develop structured thinking, clarity of expression, and good programming habits that will support students throughout the remainder of their degree. Through practical exercises and structured guidance, students learn how to translate real‑world problems into logical, executable solutions.
Syllabus:
The following is an indicative syllabus outlining the key topics covered in this module.This module introduces foundational programming and computational thinking. Students learn to analyse problems, design algorithms using flowcharts and pseudocode, and translate solutions into code while understanding syntax, semantics, and basic testing. Core programming concepts include variables, constants, primitive data types, expressions, and assignment. Control flow is developed through relational and logical expressions, selection structures, and simple input validation. Iteration is introduced using while, for, and do–while loops, with common patterns for solving repetitive tasks. Students gain an initial understanding of classes, objects, attributes, methods, and encapsulation. Modular program structure is explored through functions, parameters, return values, standard libraries, and variable scope. The module also covers systematic testing and debugging strategies, including desk checking, test data, and use of IDE tools. Students work with arrays for indexing, traversal, and simple algorithms, and with strings for slicing, searching, formatting, and cleaning text. Basic console input/output and formatting techniques are also addressed.
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
On successful completion of this module, students should be able to:
1. Explain fundamental programming concepts, including data types, variables, expressions, control flow, iteration, and basic object‑oriented constructs.
2. Design algorithmic solutions using structured methods such as flowcharts, pseudocode, modular decomposition, and simple data structures.
3. Implement working programs that apply core programming constructs, modular organisation, arrays, strings, and basic input/output techniques.
4. Debug programs systematically using testing strategies, desk checking, test data, and basic IDE tools.
Affective (Attitudes and Values)
On successful completion of this module, students should be able to:
1. Demonstrate a positive and professional attitude toward collaborative software development, including openness to peer feedback, constructive participation in team activities, and willingness to support shared project goals.
2. Develop an appreciation for responsible and ethical programming practices, showing commitment to producing readable, maintainable, and trustworthy code, and recognising the importance of quality, testing, and professional standards in software development.
Psychomotor (Physical Skills)
n/a
How the Module will be Taught and what will be the Learning Experiences of the Students:
The lectures will be used to present programming concepts and related examples. They will be interactive where students will be invited to provide feedback and solve problems.
The labs will be student centered and allow students to develop these concepts through programming exercises and will give the students opportunities to solve sample problems and discuss these as a group. These sessions are designed to foster active learning, allowing students to experiment, debug, and optimize their programs in a supportive, feedback-rich environment. Project work encourages problem-based learning, collaboration, and reflection, while also developing technical fluency and ethical awareness. Technology‑enhanced activities are embedded to build students’ technical fluency, including interactive coding environments and other collaborative digital platforms.
This approach aligns with UL’s Integrated Curriculum Development Framework (ICDF) by supporting inclusive and flexible learning through scaffolded activities and diverse assessment formats and embedding reflection and inquiry into the learning process, enabling students to connect technical decisions with broader societal and environmental considerations. The module also supports the development of the UL Graduate Attributes by fostering curiosity and exploration, encouraging articulate communication of technical ideas, developing agility in adapting to new tools, promoting courage in tackling unfamiliar challenges, and reinforcing responsible and ethical use of technology and data.
Prime Texts:
Y.D Liang (2024)
Introduction to Java Programming and Data Structures, 13th Edition
, Pearson Higher Education
Other Relevant Texts:
J. Farrell (2024)
Programming Logic and Design, Tenth edition.
, Cengage
Programme(s) in which this Module is Offered:
BACHELOR OF SCIENCE (EDUCATION) IN MATHEMATICS AND COMPUTER SCIENCE
BACHELOR OF SCIENCE IN ARTIFICIAL INTELLIGENCE AND MACHINE LEARNING
BACHELOR OF SCIENCE IN COMPUTER SCIENCE
BACHELOR OF SCIENCE IN COMPUTER SYSTEMS
BACHELOR OF SCIENCE IN COMPUTING TECHNOLOGIES
Semester(s) Module is Offered:
Autumn
Module Leader:
alan.t.ryan@ul.ie