Data Structures and Algorithms

Universitat Politècnica de València

Course Description

  • Course Name

    Data Structures and Algorithms

  • Host University

    Universitat Politècnica de València

  • Location

    Valencia, Spain

  • Area of Study

    Computer Science

  • Language Level

    Taught In English

    Hours & Credits

  • Credits

  • Recommended U.S. Semester Credits
  • Recommended U.S. Quarter Units
  • Overview

    Data Structures and Algorithms I

    3 Credits | 300 Level | 50 Contact hours


    1. The primary textbook for this course is Modern Software Development Using Java, Second Edition by
    Paul Tymann and G. Michael Schneider. This text is freely available online at
    2. A secondary (optional) textbook is BIG JAVA Early Objects, Fifth Edition by Cay Horstmann ( )
    3. You should own or have access to a good Java reference book. If you don't you might try an online
    source such as:
    • Java Programming (a wikibook)
    • Thinking in Java by Bruce Eckel;
    • Introduction to Computer Science using Java by Bradley Kjell; or
    • Fred Swartz's topic-based review.
    If you find other good online references, let us know!



    A continuation of CS 111x, emphasizing modern software development methods. An introduction to the software development life cycle and processes. Topics include requirements analysis, specification, design, implementation, and verification. Emphasizes foundational data structures and program analysis. The course provides a comprehensive look at the Java programming language including object oriented programming, concurrency, inheritance or polymorphism. Additionally, foundational data structures and related algorithms are studied.



    • Students will understand how to write programs in Java, including all basic structures (e.g., ifstatements,
    loops, functions), recursion, objects, methods, inheritance / polymorphism, and
    exception throwing / handling.
    • Students will understand and implement several key data structures, required for a foundational
    education in computer science. These data structures include Vectors, Linked Lists, Stacks, Queues,
    Binary Search Trees, AVL Trees and Hash Tables.
    • Students will understand and be able to implement various sorting methods, including insertion sort,
    mergesort, quicksort, etc.
    • Students will be able to understand and analyze program analysis using practical approaches (e.g.,
    mergesort vs. quicksort) and theoretical approaches. This will include both space and time
    complexity analyses.
    • Students will gather an abstract, and basic understanding of concurrency and associated issues
    (shared resources, etc.). Students will be able to implement simple multi-threaded programs in Java.



    1. Java Review. Basic program structure.
    2. Objects and classes. Key data structures.
    3. References
    4. Class Design.
    5. Sorting Collections, Comparators.
    6. Abstraction, Interfaces, polymorphism, Inheritance.
    7. Java Collections Framework.
    8. Sets and Maps.
    9. Algorithm Analysis.
    10. Sorting. Binary Search.
    11. Handling events.
    12. Recursion; Divide and Conquer.
    13. Data Structures, Trees, Binary Trees, BST.



    Your final course average will be calculated using the following method:
    • Labs and Exercises – 30% Attendance and participation in lab is required.
    • Assignments – 20% The exercises will be a combination of programming problems as well as paperand-pencil activities that address the topics studied.
    • Exam 1 – 15% Covering the first third of the course.
    • Exam 2 – 15% Covering the second third of the course.
    • Final Exam – 20% Covering mainly the remainder of the course, with some material from the first

Course Disclaimer

Courses and course hours of instruction are subject to change.

Eligibility for courses may be subject to a placement exam and/or pre-requisites.

Credits earned vary according to the policies of the students' home institutions. According to ISA policy and possible visa requirements, students must maintain full-time enrollment status, as determined by their home institutions, for the duration of the program.


This site uses cookies to store information on your computer. Some are essential to make our site work; others help us improve the user experience. By using the site, you consent to the placement of these cookies.

Read our Privacy Policy to learn more.