Back to teaching portfolio

Course Detail

CSBP119: Algorithms and Problem Solving

Students learn how to translate real-world requirements into precise algorithms, implement them in Python, and document solutions that make downstream labs easier to manage.

Credits
3 credit hours
Contact Hours
Two 75-minute lectures per week
Prerequisite
None
Co-requisite
None

Section Information

Instructional support details for lecture and lab experiences.

Lecture Instructor

AbdalRaheem Al Smadi

Email: afalsmadi@uaeu.ac.ae
Office: E1-3040
Office Hours: Announced on Blackboard

Catalogue Description

The course introduces problem-solving methods and program development. Learners analyze algorithmic properties, study implementation strategies, and build modular programs that incorporate input/output, events, control structures, lists, and functions.

Python is used as the vehicle for practice, with emphasis on readable code, traceable logic, and documentation that supports collaborative lab environments.

Textbook & Learning Resources

Required and supplemental references that anchor readings and labs.

Teaching & Learning Methodologies

Delivery methods emphasize practice and iterative feedback.

Course Learning Outcomes (CLOs)

Mastery targets assessed across assignments, labs, and the final exam.

  1. Analyze natural language or mathematical problems and express them algorithmically.
  2. Use programming constructs such as variables, control structures, and methods to design efficient algorithms.
  3. Apply appropriate data structures, including lists and tuples, to solve computational problems.
  4. Develop and implement specific algorithms, such as searching, summing, and selection, to tackle targeted problems.

Chapters

Eight themed chapters align with the weekly schedule and highlight a practical example for each concept block. Download the ready-to-run question files to continue practicing.

Chapter 1: Introduction

Define algorithms, outline the problem-solving process, and practice translating requirements into pseudocode and flowcharts.

Practical example: Document an algorithm that helps orientation volunteers guide visitors across campus checkpoints.

Download question & code

Chapter 2: Input, Processing, Output

Work with Python data types, variables, and constants while structuring console I/O routines that validate user input.

Practical example: Build a budgeting helper that reads student expenses and projects semester savings.

Download question & code

Chapter 3: Decision Structures

Use Boolean logic with if, if-else, and if-elif-else constructs to control application flow and enforce policies.

Practical example: Create an eligibility checker that approves lab equipment loans based on status and GPA.

Download question & code

Chapter 4: Repetition Structures

Master for, while, sentinel, and nested loops to iterate over datasets and automate repetitive calculations.

Practical example: Simulate a shuttle schedule that loops through stops until end-of-day conditions are met.

Download question & code

Chapter 5: Functions & Math Utilities

Leverage built-in functions, import the math module, and design reusable user-defined functions that encapsulate logic.

Practical example: Convert statistical formulas into parameterized functions for an exam analytics dashboard.

Download question & code

Chapter 6: File I/O & Exceptions

Read and write text files, handle runtime issues with try-except blocks, and ensure data integrity through validation.

Practical example: Process attendance logs from CSV files and gracefully handle missing or malformed entries.

Download question & code

Chapter 7: Lists & Tuples

Manipulate one- and two-dimensional lists, slice subsets, and introduce tuples for immutable data collections.

Practical example: Track lab reservation slots with nested lists and surface conflicts automatically.

Download question & code

Chapter 8: Strings & Text Processing

Apply string methods, iterate through characters, and prep text for downstream analytics or user interfaces.

Practical example: Normalize survey responses and generate frequency reports for student feedback.

Download question & code