Page 1 of 1

Module Code - Title:

CS4222 - SOFTWARE DEVELOPMENT

Year Last Offered:

2025/6

Hours Per Week:

Lecture

2

Lab

2

Tutorial

0

Other

0

Private

6

Credits

6

Grading Type:

N

Prerequisite Modules:

Rationale and Purpose of the Module:

Starting from the foundations laid out in Introduction to Programming and Introduction to Model Driven Development, to progress to classical algorithms, data structures, and advanced programming constructs, like e.g. recursion. Students will experience modular design and software reuse, and small scale collaborative development. Students will also be introduced to the programming language Python in this module.

Syllabus:

On the basis of the concepts and programming skills learned in Introduction to Programming and Introduction to Model Driven Development, the following topics will be dealt with: a. a more detailed examination of functions and parameter types; b. a more detailed examination of classes, objects and encapsulation; c. Introduction to abstract data types, and their use to describe and implement common data structures (e.g. arrays, lists, trees etc.) and common algorithms on those structures (e.g. sorting and searching techniques); d. Recursion as a problem solving technique, iterative and recursive solutions to problems and their implementation; e. Selected applications, e.g. to grammars and parsing for simple languages (expressions, logics, etc.); g. Modularity in specification and code, the concept of component models; and the use of simple libraries; h. Methods and techniques to go from models to code. i. Introduction to the software development lifecycle; design and programming in the small; collaborative agile methods; j. Introduction to the basics of the programming language Python, including simple algorithms, data structures and problem solving;

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of this module, students should be able to: 1. Given a moderately complex problem description, design, evaluate, and implement models and related programs that solve the problem. 2. Design, formulate and assemble software components (e.g., classes, methods and functions) to solve a specified problem. 3. Identify, describe and apply common abstract data type techniques in the development of components and programs. 4. Identify, describe, compare and integrate basic data structure manipulation algorithms (e.g. search, sort) into software solutions. 5. Distinguish, construct and compare solutions based on recursion and iteration. 6. Design and construct solutions to simple applicative problems.

Affective (Attitudes and Values)

N/A

Psychomotor (Physical Skills)

On successful completion of this module, students should be able to: 1. Use the programming language of Python to solve a range of problems

How the Module will be Taught and what will be the Learning Experiences of the Students:

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

Y.D Liang (2011) Introduction to Java Programming (8th edition) , Pearson Higher Education

Other Relevant Texts:

Programme(s) in which this Module is Offered:

BSMTCSUFA - MATHEMATICS AND COMPUTER SCIENCE

Semester(s) Module is Offered:

Spring

Module Leader:

alan.t.ryan@ul.ie