0% found this document useful (0 votes)
56 views3 pages

ECC201 Course Outline-1

Uploaded by

irisbiales2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views3 pages

ECC201 Course Outline-1

Uploaded by

irisbiales2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

NEAR EAST UNIVERSITY – FACULTY OF ENGINEERING

Department of Software Engineering


Course Information Sheet & Course Outline
Course Code Course Name Credit ECTS
ECC201 Data Structures and Algorithms 4 6
Pre-requisite: ECC201 – Algorithms and Data Structure.
Language: English Course Type: Face – to face Year: 2024-2025 Semester: Fall
Weekly Hours Class Hours Laboratory Practicum Learning Sessions
PS C R T
1
Learning To provide the student with the most essential skills for analyzing a programming
Outcomes
problem, choosing the most appropriate data structure and algorithm for
implementation. To convey the fundamental tradeoff between space and time. To
provide the student with the opportunity to gain ample experience in implementing
solutions using user-defined classes. To equip the student with the knowledge required
to analyze the performance of a given algorithmic. To enable the student to learn to
develop efficient algorithms for each given problem. To convey to the student the
importance of choosing the “right” data structure for a problem.

After the completion of this course, the student will be able to


1. Read and write programs using standard collections (sets, lists, bags, stacks,
queues, priority queues, maps).
2. Read and write programs using linked data structures, particularly tree
structures
3. Read and write programs using recursion
4. Understand ideas of algorithm complexity, do approximate analysis of simple
programs with collections, and make efficient design decisions
5. Recognise, understand and use a selection of basic algorithms

Course Foundational Data Structures, Data Types and Abstraction, Stacks-Queues, and
Description
Deques, Ordered Lists and Sorted Lists, Hashing- Hash Tables, Algorithm Analysis,
Asymptotic Notation, Algorithmic Patterns and Problem Solvers, Sorting Algorithms,
Searching Algorithms, Graphs and Graph Algorithms.
Course Objectives
Module 1:

Algorithmic Thinking and Problem Solving

• Identify whether a problem can be solved by following an algorithm, applying


a pattern
• Use top-down design to break up medium-sized programming tasks into
smaller pieces, solving each piece individually
• Apply general style principles to write readable code
Module 2:

Deeper Applications of Iteration


• Recognize, interpret, and write programs with nested loops
• Recognize and interpret basic recursive functions
• Translate simple recursive algorithms to Python functions
Module 3:

1
Using Python Libraries for Greater Productivity
• Interpret and write code that reads and writes data from files in the computer
system
• Interpret and use components from the documentation of Python libraries
• Use online sources to find, compare, and install Python libraries
Module 4:

Applying Logic to Large Data Sets


• Interpret and write code using operators, functions, and methods on strings
and lists
• Recognize and use common string and list methods
• Identify the differences between mutable and immutable data types
• Interpret documentation to find pre-existing methods that fulfill specific needs
Module 5:

Putting Things Together – Capstone Project


• Recognize best industry practices for writing and managing large programs.
Write a medium-level program (300-500 lines) with some level of guidance

Textbooks and/or 1 Aditya Y. Bhargava, Grokking Algorithm, 2016.


References 2 Allen B. Downey, Think Python, 2nd edition
3
4
5
Course Content
Week 1:
Informal introduction to programming, algorithms and data structures
Downloading and installing Python
Week 2:
Simple search
Binary search
Basic algorithmic analysis: input size, asymptotic complexity, O() notation
Week 3:
Elementary inductive sorting: selection and insertion sort
Arrays vs lists
Week 4:
Recursion
Week 5:
Divide and Conquer
Quicksort
Week 6:
Data structures: stack, queue
Hash tables
Week 6:
Breadth first search
Graph theory

2
Week 7:
Dijkstra algorithm

Week 8:
Greedy algorithm
Week 9:
Dynamic programming algorithm
Week 10:
K -nearest neighbors algorithm

Methods and Lectures, assignments, quizzes, project


Techniques Used
in the Course
Attendance: Minimum 70 %
Assessment Type % Reference/Sourc Relevant Competencies
Breakdown e
1 assignments 40
2 Midterm 20
3 Final Exam 40
4
5

You might also like