Foundation of Software Design and Data Structure (CS2153.01)

Meltem Ballan

This is the second course after CS 2127: Elements of Computers and Programming. I assume that you know a programming language (Python). The emphasis of this course will be on software development using object-oriented methodology. This course will not cover basic Python syntax in this course.

We will learn how to analyze and design software. We will learn how to create reusable software components and to compose programs from already available components. We will learn about some basic data structures and algorithms and how to match the data structures and algorithms to problems. We will test and evaluate programs for their functionality and their performance.

We will be following the required text book closely.

Required Text: Python 3 and Data Structures
Authors: Bailey, Lysecky, Vahid

The book is zybook format and I will modify for this class. The students who are on the roster will receive the instructions to register for the book. Unlike the traditional lecture format, our classes will be a venue for solving problems, writing programs, and exchanging ideas. Attendance to the lectures is strongly encouraged. I want you to be engaged during lectures and taking part in the class discussions. Friday sessions are designed for students to develop self software skills and will be directed by lab assistants.

Learning Outcomes:
Analyze (understand in detail) the problem
Design an algorithm to solve the problem. In this design process you will choose the appropriate data structure and the most efficient algorithm
Code the algorithm in Python 3
Write your own test cases to test your algorithm. You will pay careful attention to edge cases.
Make sure that the output matches the format as specified.

Delivery Method: Hybrid
Course Level: 2000-level
Credits: 4
T/F 10:30AM - 12:20PM (Full-term)
Maximum Enrollment: 20
Course Frequency: Once a year

Categories: 2000 , All courses , Computer Science , Four Credit , Hybrid