• Contact Info
Publications in VIVO
 

Izraelevitz, Joseph

Assistant Professor

Positions

Research Areas research areas

Research

research overview

  • I work at the intersection of systems software and distributed computing theory, and most of my work is tied together by the twin themes of nonvolatile memory technologies and parallel programming. On the systems side, I have built run-time libraries for ensuring consistent state on machines with new nonvolatile memory technologies, concurrent and persistent data structures, and novel consensus protocols. On the theory side, I have proven my systems work correct and developed formal tools for reasoning about programs in nonvolatile memory. In general, I build practical systems with formal guarantees

keywords

  • computer systems, systems software, nonvolatile memory, distributed systems, concurrent programming

Publications

selected publications

Teaching

courses taught

  • CSCI 4313 - Concurrent Programming
    Primary Instructor - Fall 2022 / Fall 2023
    Introduces the theory and practice of multicore programming. The first part of the course presents foundations of concurrent programming: mutual exclusion, wait-free and lock-free synchronization, spin locks, monitors, memory consistency models. The second part presents a sequence of concurrent data structures and techniques used in their implementations (coarse-grained, fine-grained, optimistic and lock-free synchronization). Recommended prerequisite: ECEN 3593. Same as ECEN 4313 and ECEN 5313 and CSCI 5313.
  • CSCI 4555 - Compiler Construction
    Primary Instructor - Spring 2022 / Spring 2023 / Spring 2024
    Introduces the principles and techniques for compiling high-level programming languages to assembly code. Topics include parsing, instruction selection, register allocation, and compiling high-level features such as polymorphism, first-class functions, and objects. Students build a complete compiler for a simple language. Same as ECEN 5523 and ECEN 4553 and CSCI 5525.
  • CSCI 4830 - Special Topics in Computer Science
    Primary Instructor - Fall 2019 / Fall 2020
    Covers topics of interest in computer science at the senior undergraduate level. Content varies from semester to semester. Only 9 credit hours from CSCI 4830 and/or CSCI 4831 can count toward Computer Science BS or BA.
  • CSCI 5313 - Concurrent Programming
    Primary Instructor - Fall 2023
    Introduces the theory and practice of multicore programming. The first part of the course presents foundations of concurrent programming: mutual exclusion, wait-free and lock-free synchronization, spin locks, monitors, memory consistency models. The second part presents a sequence of concurrent data structures and techniques used in their implementations (coarse-grained, fine-grained, optimistic and lock-free synchronization). Recommended prerequisite: ECEN 3593. Same as ECEN 5313 and ECEN 4313 and CSCI 4313.
  • CSCI 5525 - Compiler Construction
    Primary Instructor - Spring 2022 / Spring 2023 / Spring 2024
    Introduces the principles and techniques for compiling high-level programming languages to assembly code. Topics include parsing, instruction selection, register allocation, and compiling high-level features such as polymorphism, first-class functions, and objects. Students will build a complete compiler for a simple language. Recommended prerequisites: CSCI 3155 and CSCI 2400 or ECEN 3350. Same as CSCI 4555 and ECEN 4553 and ECEN 5523.
  • CSCI 7000 - Current Topics in Computer Science
    Primary Instructor - Fall 2020 / Fall 2022 / Spring 2023 / Spring 2024
    Covers research topics of current interest in computer science that do not fall into a standard subarea. May be repeated up to 8 total credit hours.
  • ECEN 1310 - C Programming for ECE
    Primary Instructor - Spring 2020 / Spring 2021
    Introduces fundamental programming concepts using the C language. Teaches the use of pointers, control flow, aggregate types, input/output, heap-allocated memory, and abstract data types. Includes a weekly computer lab session. Recommended prerequisite: APPM 1350. Degree credit not granted for this course and CSCI 1300 or CSPB 1300 or CSCI 1310 or CSCI 1320.
  • ECEN 4313 - Concurrent Programming
    Primary Instructor - Fall 2019 / Fall 2020 / Fall 2022 / Fall 2023
    Introduces the theory and practice of multicore programming. The first part of the course presents foundations of concurrent programming: mutual exclusion, wait-free and lock-free synchronization, spin locks, monitors, memory consistency models. The second part presents a sequence of concurrent data structures and techniques used in their implementations (coarse-grained, fine-grained, optimistic and lock-free synchronization).
  • ECEN 4553 - Compiler Construction
    Primary Instructor - Spring 2022 / Spring 2023 / Spring 2024
    Introduces the principles and techniques for compiling high-level programming languages to assembly code. Topics include parsing, instruction selection, register allocation, and compiling high-level features such as polymorphism, first-class functions, and objects. Students build a complete compiler for a simple language. Same as ECEN 5523 and CSCI 4555 and CSCI 5525.
  • ECEN 5033 - Special Topics
    Primary Instructor - Fall 2019 / Fall 2020 / Spring 2023 / Spring 2024
    Examines a special topic in Electrical, Computer and Energy Engineering. May be repeated up to 9 total credit hours.
  • ECEN 5313 - Concurrent Programming
    Primary Instructor - Fall 2022 / Fall 2023
    Introduces the theory and practice of multicore programming. The first part of the course presents foundations of concurrent programming: mutual exclusion, wait-free and lock-free synchronization, spin locks, monitors, memory consistency models. The second part presents a sequence of concurrent data structures and techniques used in their implementations (coarse-grained, fine-grained, optimistic and lock-free synchronization). Recommended prerequisite: ECEN 3593. Same as CSCI 5313 and ECEN 4313 and CSCI 4313.
  • ECEN 5523 - Compiler Construction
    Primary Instructor - Spring 2022 / Spring 2023 / Spring 2024
    Introduces the principles and techniques for compiling high-level programming languages to assembly code. Topics include parsing, instruction selection, register allocation, and compiling high-level features such as polymorphism, first-class functions, and objects. Students build a complete compiler for a simple language. Same as ECEN 4553 and CSCI 4555 and CSCI 5525.

Background

International Activities

Other Profiles