banner

Home

Algorithms Analysis/ CSE 4310
CSU Instructor Open Textbook Adoption Portrait

Abstract: This open textbook is being utilized in Algorithms Analysis course for undergraduate students by Fadi Muheidat. PhD, ACUE at California State University, San Bernardino. The open resource textbooks adopted provide a comprehensive and detailed resources for algorithms for all level of undergraduate and graduate students and researchers. The main motivation to adopt an open textbook was because these books were free online. Most student access the open textbook directly online  through the University Library, with active student ID.

About the Course

CSE4310: Algorithms Analysis 

Description:

This course is on algorithmics: the systematic study of the design and analysis of algorithms, including time and space complexity, design methodologies, and taxonomic classification of problems. The aim is to learn skills to develop efficient algorithms and solve problems. Fundamental techniques, such as greedy algorithms and graph algorithms, will be covered to develop new techniques to solve other problems. The students are required to know and have already taken courses on mathematical induction, propositional calculus, set theory, functions and relations, proof techniques, limits, series, and combinatorics.


Prerequisites: 
Semester Prerequisite: CSE 2020 and MATH 2310. Quarter Prerequisite: CSE 330 and MATH 372

Course Objectives


After completing the course, you should be able to

  1. Define what is an algorithm and why we study algorithms
  2. Argue the correctness of algorithms using inductive proofs and invariants
  3. Analyze worst-case running times of algorithms using asymptotic analysis (Big-O notation)
  4. Describe the divide-and-conquer, greedy, dynamic programming paradigms and explain when an algorithm design situation calls for any of them.
  5. Analyze a complex computing problem and to apply principles of computing and Other relevant disciplines to identify solutions.
  6. Design, implement and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  7. Apply computer science theory and software development fundamentals to produce computing-based solutions.


Learning Outcomes:

CSE 4310 supports the following student outcomes defined by ABET CAC Criteria for Computing Programs, Version 2.0:

  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 computing requirements in the context of the program’s discipline. 
  3. (SO6) Apply computer science theory and software development fundamentals to produce computing-based solutions.

About the Resource/Textbook 

The Algorithm Design Manual, 2nd Edition 2008: 

Brief Description: provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, Resources, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations and an extensive bibliography.
Authors: Steven S. Skiena


Features of this textbook: 

  • Doubles the tutorial material and exercises over the first edition
  • Provides full online support for lecturers, and a completely updated and improved website component with lecture slides, audio and video
  • Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, leading the reader down the right path to solve them
  • includes several NEW "war stories" relating experiences from real-world applications

Introduction to Algorithms, 3rd Edition 2009: 


Brief Description: covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming.
Authors:Thomas H. Cormen, Charles E. Leiserson,Ronald L. Rivest, Clifford Stein

 
Testimony:

Introduction to Algorithms, the ‘bible’ of the field, is a comprehensive textbook covering the full spectrum of modern algorithms: from the fastest algorithms and data structures to polynomial-time algorithms for seemingly intractable problems, from classical algorithms in graph theory to special algorithms for string matching, computational geometry, and number theory. The revised third edition notably adds a chapter on van Emde Boas trees, one of the most useful data structures, and on multithreaded algorithms, a topic of increasing importance. "Daniel Spielman Department of Computer Science, Yale University"

Student access:  Students are able to access the textbook using any electronic device they have. 

Cost Savings: The original book I used in Fall 2019 costs( Pearson Publisher: eText :$39.99, Print: $143.99). Cost varies among different sellers. The course is offered  Fall, spring and summer semesters. If all faculty who teahes the course adopt the free resources, they save about 120  students * ( $40 , or 144) which is $4800 to $16,800) annually.

TextBook Adoption

OER Adoption Process

When I was in my  PhD program, I took two courses on algorithms, where the instructor adopted the second textbook. I found it very useful, very detailed, I even purchased a hardcopy. When I first  joined CSUSB and was assigned to  teach this course.

The main purpose of adopting the textbooks is to provide students an opportunity to explore more Knowledge and have access to both analysis focused ( Introduction to Algorithms) , and application and real-life problems(The Algorithm Design Manual). In addition to saving students money and customize materials for meeting the learning outcomes.


Sample Syllabus:

CSE 4310-Algorithms Analysis-SYLLABUS-Fall2020-OER.docx

Sample Assignments and worksheets (adopted from the two textbooks)

CSE 4310 - worksheet1.pdf

CSE 4310 - worksheet2.pdf

CSE 4310 - worksheet4.pdf

CSE 4310 - Homework3.pdf

CSE 431_lecture_notes_divide_conquer.pdf

CSE4310-L3-notes-09012020.pdf


Fadi Muheidat, PhD, ACUE

I am a computer Science and Engineering  professor at California State University, San Bernardino. I teach many computer Science and Engineering course:

  • Algorithm Analysis
  • Computer Architecture
  • Digital Design
  • Computer Engineering Design
  • Ethics in Computing 
  • Embedded Systems
  • Circuits Theory
  • Signals and Systems

I received his Ph.D. from the Electrical and Computer Engineering Department, University of Missouri -Columbia in 2017. I worked as a researcher scientist in an outcome-based research company focusing on data analysis and patient-reported outcomes utilizing predictive modeling tools and algorithms. In my lab "Emerging Technologies and Applications",  my interests include eldercare technology, assistive living, Internet of Things (IoT)  and cyber-physical systems, architecture, communication, and security. Recent research projects on High-Performance Computing, Engineering Educations, and the use of Extended Reality(XR) in Education.