CO225 Software Construction
Course Code
CO225
Course Title
Software Construction
Credits
3
Course Type
Core
Prerequisites
Aims/Objectives
Use a problem-based approach to introduce the tools and techniques afforded by high-level languages, standard libraries and operating systems so that students will be able to use these primitives while constructing relatively large software.
Intended Learning Outcomes (ILOs)
Knowledge:
At the end of this course, a student will be able to;
- At the end of this course, a student will be able to; Choose an appropriate data collection for efficiently representing a problem's data and its associated computations. Apply declarative programming to data-intensive problems. Use objects or algebraic data types to construct a suitable data representation for problems involving trees and graphs. Identify opportunities for concurrency in existing code or a problem description. Cleanly separate user interface and input/output concerns from core program logic.
Skills:
At the end of this course, a student will be able to;
- At the end of this course, a student will be able to; Scan and parse unstructured and structured textual formats to extract data. Traverse a linked data structure to perform a computation. Write a simple network client (e.g. web crawler). Build programs usable via multiple interfaces (command-line, GUI.) Write secure, testable and modular code.
Attitudes:
- Use the right tool/technique for the job. Do one thing and do it well (UNIX “tiny tools” philosophy).
Textbooks and References
- Mark Pilgrim, Dive into Python 3; http://www.diveinto.org/python3/ Software Carpentry Lessons; http://software-carpentry.org/v4/ Brad Miller and David Ranum, Problem Solving with Algorithms and Data Structures; http://interactivepython.org/runestone/static/pythonds/index.html
Course Modules:
Time Allocation details not available for this course
Marks allocation:
Practicals
30%
Projects
30%
End_exam
40%
Last Update:
| Edit this page