Course Overview: what to expect


Welcome to COSC 214: Data Structures and Algorithms


Course Description This course explores the definitions and implementations of basic data struc-
tures such as stacks, queues, linked lists, binary trees, etc.; internal searching and sorting algorithms;
and garbage collection algorithms. The design of sort and search algorithms and introductory anal-
ysis associated with the basic data structures, as well as recursive algorithms, are discussed.


Student Outcomes for COSC from ABET (SO) The student will-
1. SO1. Analyze a complex computing problem and to apply principles of computing and other
relevant disciplines to identify solutions.
2. SO2. Design, implement, and evaluate a computing-based solution to meet a given set of com-
puting requirements in the context of the program’s discipline.
3. SO3. Communicate effectively in a variety of professional contexts.
4. SO4. Recognize professional responsibilities and make informed judgments in computing practice
based on legal and ethical principles.
5. SO5. Function effectively as a member or leader of a team engaged in activities appropriate to
the program’s discipline.
6. SO6. Apply computer science theory and software development fundamentals to produce computing-
based solutions.
Course Learning Objectives Upon completion of this course, the student will be able to 1:
1. Recall the basic operations associated with each data structure, including insertion, deletion, and
searching.
2. Explain the differences between various data structures and their underlying principles to solve
computing problems.
3. Develop algorithms that utilize specific data structures to solve tasks efficiently, such as sorting
or searching algorithms.
4. Compare and contrast the advantages and disadvantages of using different data structures for
specific scenarios.
5. Develop intermediate-level programs with algorithmic efficiency in mind.
6. Apply the knowledge of data structures and algorithms to analyze advanced problems, develop
solution approaches, and implement them on real platforms.
7. Summarize the design of a program and write a technical report based on that.
8. Collaborate effectively in teams to design, implement, and evaluate data structures, demonstrat-
ing accountability for assigned roles and contributing to shared project goals. (SO5.2 – Project
Part 2)
9. Perform professional responsibilities in computing practices by assessing the impact of data struc-
ture implementations and algorithm design on software quality and user outcomes. (SO4.1 –
Project part 1)