Sep 20, 2026  
2026-2027 Catalog 
    
2026-2027 Catalog

SDEV 210 - Systems Programming with Rust


PREREQUISITES: SDEV 140 - Introduction to Software Development  OR CSCI 101 - Computer Science I 
PROGRAM: Software Development
CREDIT HOURS MIN: 3
LECTURE HOURS MIN: 3
TOTAL CONTACT HOURS MIN: 48
DATE OF LAST REVISION: Fall 2024

This course provides an in-depth exploration of the Rust programming language, focusing on its core strengths: memory safety, high performance, and concurrency. Students will learn to develop system-level applications that are safe, efficient, and scalable by leveraging Rust’s ownership model, zero-cost abstractions, and strong type system. Practical exercises and projects will emphasize Rust’s unique features and demonstrate its use cases in systems programming, web development, and embedded applications. The course culminates in a final project where students will develop a functional application, demonstrating their proficiency in development, debugging, testing, and troubleshooting in Rust.

MAJOR COURSE LEARNING OBJECTIVES: Upon successful completion of this course the student will be expected to:

  1. Develop Robust, Memory-Safe Systems using Rust’s ownership, borrowing, and lifetime rules for memory management.
  2. Write High-Performance Real-Time Applications utilizing Rust’s zero-cost abstractions.
  3. Utilize Rust’s concurrency model, including Send and Sync, and thread-safe techniques to build multithreaded applications.
  4. Utilize Rust-focused Integrated Development Environments (IDEs) and the Rust toolchain (including cargo) to manage projects and the development workflow.
  5. Identify and implement debugging, testing, and troubleshooting techniques to develop and maintain Rust applications.
  6. Explore Rust’s security features and best practices, including memory safety, error handling, and input validation, to produce secure software.
  7. Create modular, reusable Rust code, utilizing traits, generics, and custom data structures. 
  8. Use rustdoc to generate documentation for enhanced readability and maintainability.
  9. Demonstrate/apply development, debugging, testing, and troubleshooting through developing a complete, functional application in Rust.
  10. Apply Rust’s capabilities Develop Dynamic and Interactive Software Solutions: to build interactive applications that solve real-world problems, reinforcing both programming skills and practical problem-solving.


COURSE CONTENT: Topical areas of study include -
  • Memory Management with Ownership and Borrowing
  • Primitive Types, Variables, and Mutability
  • Control Flow
  • Functions and Closures 
  • Structs and Enums
  • Pattern Matching 
  • Traits and Generics 
  • Error Handling
  • Option/Result Types 
  • Concurrency
  • Thread and sync 
  • File system operations
  • Debugging
  • Secure Programming
  • Modules, Packages, and Libraries 
  • Generics
  • Data Structures
  • External Databases and APIs
     

 
Course Addendum - Syllabus (Click to expand)