0% found this document useful (0 votes)
99 views

Data Structures-Syllabus-2020-I

This document outlines the details of a course on data structures, including instructors, goals, methodology, contents, student conduct policies, attendance policies, grading policies, and bibliography. The main goal of the course is to study fundamental data structures, their implementation, and applications to problem solving. Specific goals include understanding data structures and their operations, implementing structures in programming languages, solving problems with suitable abstractions, and analyzing structures and algorithms. The course will combine lectures with hands-on exercises and a group project. Contents will cover linear structures, trees, hashing, and graphs. Students will be evaluated based on exams, programming assignments, project reports, quizzes, and classwork.
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)
99 views

Data Structures-Syllabus-2020-I

This document outlines the details of a course on data structures, including instructors, goals, methodology, contents, student conduct policies, attendance policies, grading policies, and bibliography. The main goal of the course is to study fundamental data structures, their implementation, and applications to problem solving. Specific goals include understanding data structures and their operations, implementing structures in programming languages, solving problems with suitable abstractions, and analyzing structures and algorithms. The course will combine lectures with hands-on exercises and a group project. Contents will cover linear structures, trees, hashing, and graphs. Students will be evaluated based on exams, programming assignments, project reports, quizzes, and classwork.
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/ 5

DATA STRUCTURES

TERM: 2020-I
INSTRUCTORS:

Cristian Daniel Cordoba Aguirre. e-mail:​ ​[email protected] Group:​ 1


David Alberto Herrera Álvarez e-mail:​ ​[email protected]​ Groups:​ 2 and 5
Luis Fernando Niño Vásquez. e-mail:​ ​[email protected] Group:​ 4
Victor Edwin Collazos Serrano. e-mail:​ ​[email protected] Group:​ 3

MAIN GOAL

To study concepts, techniques and basic methods on fundamental data structures, as well as their implementation
and efficient applications for problem-solving.

SPECIFIC GOALS

● To understand the main data structures (as data collections) and their defined set of operations.
● To implement the main data structures and the operations that can be performed on them in
several ways and at least one programming language.
● To solve information management problems through suitable abstraction, detailed design, and
optimized implementation to a particular situation.pp
● To produce implementations of data structures and their operations, contemplating quality
aspects such as correction, encapsulation, modularity, efficiency, and simplicity.
● To use other thinking paradigms to design algorithms that allow the students to improve their
abilities to solve problems.
● To perform comparative analysis of the main data structures and associated algorithms.
● To be able to understand, apply and code the data structures learned in the solution of
computational problems, using the students’ own implementations and those standard libraries of
the selected programming language.

METHODOLOGY

● This course will combine traditional lecturing with hands-on exercises to reinforce student learning.
Students are expected to attend classes regularly, take tests, and submit assignments and other work at the
times specified by the instructor.
● A class project will be developed in groups of students to reinforce the application of the main data
structures concepts and algorithms. Students will be required to work in teams. Individual class projects
will not be allowed, only under exceptional conditions and with a proper justification, such as a medical
condition with the corresponding clinical concept.
CONTENTS

● Introduction
○ Syllabus Presentation
○ Java Overview and Introduction to Programming Judges
○ Asymptotic Analysis
● Linear data structures
○ Linked Lists
○ Queues, Stacks and Circular Arrays
○ Dynamic Arrays and Amortized Analysis
● Trees
○ Tree Terminology
○ Tree Traversals (Inorder, Preorder, Postorder, Level Order)
○ Binary Search Trees (BST)
○ AVL Trees
○ Heaps
○ Heap-Sort
○ Disjoint Sets
● Hashing
○ Hashing and Hash Functions
○ Hash Tables
○ Rabin-Karp’s algorithm
● Graphs
○ Terminology
○ Representation of graphs
○ Operations on Graphs
○ Graph Traversals (Depth First Search- DFS, Breadth First Search-BFS, A*)

STUDENT CONDUCT CODE

Everybody in the class is expected to show courtesy, civility, and respect for one another. Students are expected to
do their own work. Cheating, plagiarism and any other form of academic dishonesty will not be tolerated.
Students are encouraged to discuss ideas and techniques broadly with other class members, but not specifics of
assigned problems. Sharing of code or intermediate designs for the assigned problems is expressly prohibited.
This will be a zero-tolerance policy.

It is permissible to use software and materials available from other sources (understanding that you get no credit
for using the work of others on those parts of your problems) as long as: 1) You acknowledge explicitly which
aspects of your assignment were taken from other sources and what those sources are. 2) The materials are freely
and legally available. 3) The material was not created by a student of this course this year or in prior years.
CLASS ATTENDANCE AND ABSENCES

This course assumes an interactive approach in its structure and in its presentation, which requires engaged
participation from all members of the class. Your presence is essential to the success of this course and
accordingly to your individual success in it. Therefore, regular attendance is expected and considered mandatory.
Each student is allowed four absences from class for the entire semester without direct penalty to his or her grade,
this does not include penalties that may result from missing in-class activities, take-home assignments or project
deadlines.

GRADING POLICY

The evaluation system consists of a point system, in which students will need to accumulate at least 300 points to
get a passing grade of 3.0. If someone achieves 500 points or more, their corresponding grade will be 5.0. Since
the amount of quizzes or class homeworks is not bounded, it is possible to accumulate more than 500 points. Each
instructor expects to have quizzes, review quizzes or exercises, particular lab exercises and other tasks to
complete a minimum of 65 points.

Important: In the practical exercises (labs), given that for one assignment different implementations are possible,
only credit will be granted to the solutions that meet the requirements for the use of data structures established in
the exercises.

Grading

Assessment Points Percentag


e

Exam I 100 20%

Exam II 100 20%

Activity Lab:​ programming strategies 10 2%

Lab: ​Object orientation concepts 10 2%


Review Lab.
Lab
Assignments Lab: ​implementation of some 15 3%
array-based containers for the
project first prototype

First project report: ​problem 50 10%


definition, goals and submission of
first prototype including the
application of basic functions using
arrays.

Lab: ​implementation of linear data 15 3%


structures

Lab: ​implementation of trees 15 3%

Second project report​: submission 60 12%


of second prototype including the
application of Linear Data
Structures (lists, queues and stacks)
and Trees.

Lab: ​implementation of 15 3%
hashing-based data structures

Final Project Report: ​Submission 45 9%


of final prototype application of all
data structures, including hashing
based ones)

Quizzes and Classwork >65 >13%

Total >500 >100%

* Important note: ​to meet the objectives of the course, the credit for partial deliveries on the project development
will only be taken into account when the project final report is delivered. To make it clear, if the final delivery of
the project does not occur, the total grade assigned to this course activity will be zero.

BIBLIOGRAPHY

● M. A. Weiss, Data Structures and Algorithm Analysis in Java, 3rd Ed., Pearson, 2012.
● L. Joyanes and I. Zahonero. Estructuras de datos en Java, 1st Ed., McGraw-Hill, 2008.
● C. A. Shaffer, Data Structures and Algorithm Analysis, Edition 3.2 (Java Version), Virginia
Tech, 2012.
● H. M. Deitel and P. J. Deitel, Java How to Program, 9th Ed., Prentice Hall, 2012.
● R. Sedgewick and K. Wayne, Algorithms, 4th Edition, Princeton University, Addison-Wesley,
2011.
● S. Sahni, Data Structures, Algorithms and Applications in Java, Silicon Press; 2nd edition, 2004.
● Aho, J. Hopcroft and J. Ullman, Data Structures and Algorithms,Addison-Wesley, 1983.
● Streib, J. T., & Soma, T. (2017). Guide to Data Structures: A Concise Introduction Using Java.
Springer.

OTHER RESOURCES:

● Udemy - Java Tutorial for Complete Beginners: ​https://www.udemy.com/java-tutorial/learn/#/


● Open Data Structures (in pseudocode) Edition 0.1Gβ Pat Morin:
http://opendatastructures.org/ods-python-screen.pdf
●​ ​Data Structures and Algorithms in C++.​ ​Michael T. Goodrich​,​ ​Roberto Tamassia​,​ ​David M. Mount​.
http://cpp.datastructures.net/
●​ ​ ​MIT Introduction to Algorithms lecture videos​. Srini Devadas.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms
-fall-2011/lecture-videos/
●​ ​Pinzón Yoan. Estructuras de Datos. Notas de clase. 2001. Discponible en:
https://drive.google.com/file/d/0B43mEy9bxrsQUkpuWERFcXNTUXc
● VisuAlgo - visualising data structures and algorithms through animation. https://visualgo.net/
●​ ​ ​Java Downloads
● Code Conventions for the Java Programming Language
●​ ​ ​The Java Tutorials
●​ ​ ​Java Video Tutorials
● Eclipse​ -​ Eclipse Tutorial​ -​ Eclipse and Java for Total Beginners (Video Tutorial)
●​ ​ ​NetBeans
● PDF creation Software:​ CutePDF​ -​ PDF Creator
●​ ​ ​Sumatra PDF
● Java quick reference:​ 1 sheet​ -​ with packages information
● Citing your sources​ (PDF - Universidad de Los Andes.
●​ ​ ​HackerRank​.
●​ ​ ​Codecademy: Learn Java​.
●​ ​ ​Coursera: Data Structures​. ​University of California San Diego. National Research University Higher
School of Economics.
●​ ​ ​CS 61B Data Structures​.​ University of California, Berkeley. Spring 2018.
●​ ​ ​Introduction to Algorithms (SMA 5503)​.​ Massachusetts Institute of Technology MIT. Electrical
Engineering and Computer Science. Fall 2005.
● CS3110 Spring 11 : Data Structures and Functional Programming​. ​Cornell University. Spring 2018.
● 02-713 Algorithms & Data Structures (for Scientists)​. ​Carnegie Mellon University. School of Computer
Science.

You might also like