DCU Home | Our Courses | Loop | Registry | Library | Search DCU
<< Back to Module List

Module Specifications.

Current Academic Year 2024 - 2025

All Module information is indicative, and this portal is an interim interface pending the full upgrade of Coursebuilder and subsequent integration to the new DCU Student Information System (DCU Key).

As such, this is a point in time view of data which will be refreshed periodically. Some fields/data may not yet be available pending the completion of the full Coursebuilder upgrade and integration project. We will post status updates as they become available. Thank you for your patience and understanding.

Date posted: September 2024

Module Title Computer Programming II
Module Code CA117 (ITS) / CSC1004 (Banner)
Faculty Engineering & Computing School Computing
Module Co-ordinatorDarragh O'Brien
Module TeachersStephen Blott
NFQ level 6 Credit Rating 10
Pre-requisite Not Available
Co-requisite Not Available
Compatibles Not Available
Incompatibles Not Available
None
Description

This module introduces the student to more advanced programming concepts including object-oriented programming through designing and employing classes; it enhances familiarity with built-in libraries and data structures; it equips students with techniques for designing and analyzing elementary algorithms. It further develops students’ programming and problem-solving abilities and fosters good programming practices. Students are expected to attend lectures, participate in tutorials, carry out practical exercises in a programming laboratory, and engage in extensive self-study and hands-on programming practice.

Learning Outcomes

1. Select and appropriately apply the basic programming language constructs and built-in data types (e.g. strings, integers, floats, booleans) required to write a program.
2. Write programs that make effective use of fundamental built-in data structures and their associated methods e.g. lists, tuples, dictionaries and sets.
3. Write programs that read and write text files.
4. Employ exception handling to produce code robust to runtime errors.
5. Define classes that make effective use of instance methods/attributes and class methods/attributes, and make appropriate use of those classes in writing programs of small to moderate size.
6. Design and implement simple algorithms for searching, sorting, and text handling, and assess their time complexity.
7. Implement both iterative and recursive solutions to particular problems (e.g. searching and sorting).
8. Proceed from informal descriptions of problems to design and implementation of programming solutions.
9. Comply with good software engineering principles when writing programs, such as readability, maintainability, information hiding, and levels of abstraction.
10. Implement and apply in problem-solving some fundamental abstract data types and data structures (e.g. stack, queue, tree, graph) including associated operations.



Workload Full-time hours per semester
Type Hours Description
Lecture48Course lectures
Laboratory48Lab work - supervised learning
Laboratory36Completion of programming exercises
Independent Study118Review of lecture material, background reading and independent practice
Total Workload: 250

All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml

Indicative Content and Learning Activities

Built-in types
Strings, integers, floats, lists, dictionaries, sets, tuples.

Files
Reading, writing and processing text files.

Exception handling
Using exceptions to write code robust to runtime errors.

Algorithms
Recursion. Binary and linear search. Elementary sorting. Elementary complexity theory. Introduction to Big-O notation. Introduction to regular expressions. Introduction to graph search.

Design
Modelling with objects. Information hiding and object composition. Case studies in designing with classes. Problem solving techniques, problem decomposition and modular design.

Object-oriented programming
Designing classes and objects. Instance methods and attributes. Class methods and attributes. Operator overloading. Inheritance. Composition. Encapsulation.

Abstract data types and data structures
Stack, queue, list, tree, graph and associated operations.

Assessment Breakdown
Continuous Assessment50% Examination Weight50%
Course Work Breakdown
TypeDescription% of totalAssessment Date
In Class TestLab exam 120%As required
In Class TestLab exam 225%As required
Laboratory PortfolioCompletion of lab exercises5%As required
Reassessment Requirement Type
Resit arrangements are explained by the following categories:
Resit category 1: A resit is available for both* components of the module.
Resit category 2: No resit is available for a 100% continuous assessment module.
Resit category 3: No resit is available for the continuous assessment component where there is a continuous assessment and examination element.
* ‘Both’ is used in the context of the module having a Continuous Assessment/Examination split; where the module is 100% continuous assessment, there will also be a resit of the assessment
This module is category 1
Indicative Reading List

  • Gaddis, Tony: 2015, Starting out with Python, 9780133582734
  • Smallshire, Robert & Bingham, Austin.: 2017, The Python Apprentice, 1788293185
  • Punch, William F.: 2014, The Practice of Computing Using Python, 9780132805575
  • Lambert, Kenneth: 2014, Fundamentals of Python: Data Structures, 9781285752013
Other Resources

59417, Website, 0, Think Python: How to Think Like a Computer Scientist, http://www.greenteapress.com/thinkpython/html/index.html, 59418, Website, 0, The Python Standard Library, https://docs.python.org/3/library/index.html, 59419, Website, 0, Online Python Programming, https://www.jdoodle.com/python-programming-online, 59420, Website, 0, A Byte of Python, https://python.swaroopch.com/, 59421, Website, 0, Learn Python The Hard Way, https://learnpythonthehardway.org/book/,

<< Back to Module List