| Long Title: | Advanced Programming |
| Field of Study: |
Software and applications development and analysis
|
| Module editor: |
CRISTINA HAVA MUNTEAN |
| Teaching and Learning Strategy: |
Teaching & Learning will take place via a combination of methods including lectures and
practical work. Lectures will include in class discussion, problems solving exercises and
feedback sessions. Practical sessions will comprise of practical work and individual selfdirected
learning. |
| Learning Environment: |
Learning will take place in a classroom/lab/workplace environment with access IT
resources. Learners will have access to library resources, both physical & electronic and to
faculty outside of the classroom where required. Module materials will be placed on Moodle,
the College’s virtual learning environment. |
| Module Description: |
The aim of this module is to provide a solid foundation in a range of basic algorithms including searching and sorting, and how to assess their computational cost and performance. Students will also develop practical skills in implementing and testing algorithms applied for solving real-world problems making use of emerging technologies and programming languages. |
| Learning Outcomes |
| On successful completion of this module the learner will be able to: |
| LO1 |
Explain the theory , the concepts and the principles of various elementary algorithms |
| LO2 |
Demonstrate the use of good principles of algorithm design |
| LO3 |
Use iterative and recursive techniques to design and implement sorting and searching algorithms |
| LO4 |
Appropriately apply a variety of algorithms to solve real-world problems |
| LO5 |
Conduct in depth algorithm analysis in terms of performance and time complexity of elementary algorithms |
| Pre-requisite learning |
Module Recommendations
This is prior learning (or a practical skill) that is required before enrolment on this module. While the prior learning is expressed as named NCI module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).
|
| No recommendations listed |
Requirements
This is prior learning (or a practical skill) that is mandatory before enrolment in this module is allowed. You may not enrol on this module if you have not acquired the learning specified in this section.
|
| No requirements listed |
Module Content & Assessment
| Indicative Content |
|
Algorithms (25%)
• Algorithm design & development
• Correctness and Validity
• Estimating Efficiency
• Time complexity functions
• Heuristic algorithms
|
|
Searching Algorithms (25%)
• Sequential search
• Binary search
|
|
Sorting Algorithms (25%)
• Bubble sort
• Insertion sort
• Selection sort
• Mergesort
• Quicksort
|
|
Recursion (10%)
• Recursive approach
• Characteristics of recursive algorithms
•• Recursive sorting
|
|
Graphs Algorithms(15%)
• Graphs related concepts and representation
• Graph Search Methods
• Common Graph Algorithms
• Dijkstra’s Algorithm
|
| Assessment Breakdown | % |
| Coursework | 50.00% |
| End of Module Assessment | 50.00% |
Full Time
| Coursework |
| Assessment Type |
Assessment Description |
Outcome addressed |
% of total |
Assessment Date |
| CA 1 (0380) |
In-class assessments - A practical & a theoretical assessment that assess' knowledge on a no. of sorting algorithms aswell as on techniques to analyse algorithm’s performance. The theoretical assessment may consist of qs that require students to explain & exemplify how a particular sorting algorithm ( e.g. Bubble sort) works on a given set of no.s ( e.g. 50, 3, 40, 2, 25). The practical component requires students to develop an application that implements one of the studied sorting algorithms. For eg, the Insertion sort algorithm is required to be implemented to sort a set of no.s provided as input in reverse order & print the set of no.s after the insertion sort algorithm has been applied |
1,2,3,4,5 |
35.00 |
n/a |
| CA 2 (0390) |
An in-class assessment that will assess knowledge on a set of searching algorithms studied in the class. For example, students will be asked to explain and exemplify how binary search algorithm works on a given set of numbers ( e.g. 3, 14, 30, 40, 67, 100) when searching for a given element from the collection ( e.g. number 40). |
1,4,5 |
15.00 |
n/a |
| End of Module Assessment |
| Assessment Type |
Assessment Description |
Outcome addressed |
% of total |
Assessment Date |
| Terminal Exam |
Terminal Exam |
1,2,3,4,5 |
50.00 |
End-of-Semester |
| Reassessment Requirement |
Repeat examination
Reassessment of this module will consist of a repeat examination. It is possible that there will also be a requirement to be reassessed in a coursework element.
|
Reassessment Description Learners who fail this module will be required to sit a repeat module assessment where all learning outcomes will be examined.
|
NCIRL reserves the right to alter the nature and timings of assessment
Module Workload
| Workload: Full Time |
| Workload Type |
Workload Description |
Hours |
Frequency |
Average Weekly Learner Workload |
| Lecture |
No Description |
2 |
Every Week |
2.00 |
| Lab |
No Description |
2 |
Every Week |
2.00 |
| Independent Learning Time |
No Description |
6.5 |
Once per semester |
0.54 |
| Total Hours |
10.50 |
| Total Weekly Learner Workload |
4.54 |
| Total Weekly Contact Hours |
4.00 |
| Workload: Part Time |
| Workload Type |
Workload Description |
Hours |
Frequency |
Average Weekly Learner Workload |
| Lecture |
No Description |
2 |
Every Week |
2.00 |
| Independent Learning Time |
No Description |
101 |
Once per semester |
8.42 |
| Total Hours |
103.00 |
| Total Weekly Learner Workload |
10.42 |
| Total Weekly Contact Hours |
2.00 |
Module Resources
| Recommended Book Resources |
|---|
- Goodrich, M.T. and Tamassia, R 2010, ata Structures and Algorithms in Java, 5th Ed., John Willey A Sons
- Cormen T.H. Leiserson, R.L. Rivest 2009, Introduction to Algorithms, 3rd Ed., Prentice Hall
| | Supplementary Book Resources |
|---|
- Weiss, M.A 2009, Data Structures and Problem Solving Using Java, 4th Ed., Pearson Addison Wesley
| | This module does not have any article/paper resources |
|---|
| This module does not have any other resources |
|---|
Module Delivered in
|