CSCI 502/702 – Hardware/Software Co-Design

Spring 2026 Semester

Course Instructor: Dr. Almas Shintemirov  

Course Overview 

This graduate course introduces fundamental hardware and software concepts of computer systems as core elements of modern intelligent systems. Topics covered include basic microprocessor architectures, memory allocation, concurrency principles (multitasking, process synchronization), real-time principles, embedded system and mechatronic system design. Course hand-on projects are related to the theoretical material covered in the lectures with focus on developing practical skills of system programming and GUI design using C/C++ programming languages in Linux Ubuntu OS and embedded Linux operating systems.

Course Textbooks

Randal E. Bryant and David R. O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd Global Edition, 2016

Real-Time Embedded Systems: Open-Source Operating Systems Perspective by I. C. Bertolotti and G. Manduchi, 2012
Logic and Computer Design Fundamentals by M.M. Mano and C.R. Kime,          5th edition, 2016

Course Topics

  • Numbers Systems, Binary Logic and Digital Circuit Basics;
  • Registers, Memory Basics;
  • Computer Design Basics: Datapath and Instruction Set Architecture;
  • Hardware Architectures:  RISC and CISC architectures, Pipelining;
  • C/C++ Programming Review. Pointer Arithmetics, Dynamic Memory Allocation;
  • x86-64 Assembler Language;
  • Operating systems, Linux System Calls and Processes;
  • Concurrency, Intertask Communication and Process Synchronization: Semaphores, Message Passing, Robot Operating System (ROS)
  • Threads, Concept of Real-Time Systems;
  • Finite State Machines.
  • Real-time process scheduling and priority inversion

Selected 2026 Course Projects

Selected 2021 Course Projects

Due to the COVID-19 pandemic the course was taught in online synchronous mode with no specific final course projects. The last assignment focused on Finite State Machine based mobile robot control in the Robot Operating System (ROS) Gazebo simulation environment.

Selected 2020 Course Projects   

Due to the COVID-19 pandemic the course was taught in distance learning mode and the course final projects were focusing on software implementations of Finite State Machine -based systems

Selected 2019 Course Projects

Selected 2017 Course Projects 


  https://github.com/roboticsNU/Dagu-Rover-5-with-Joystick 

Selected 2016 Course Projects