Course Schedule

Course Schedule

This schedule represents CDM courses only. To find courses taught elsewhere at DePaul, please visit the DePaul Schedule of Classes. Can't find CDM the course you're looking for? For all courses ever taught at CDM, please visit MyCDM. Several CDM courses count towards liberal studies credit, for a list of such courses visit the CDM Liberal Studies courses page.

Classes in 2021-2022 will be offered in multiple modalities, with both on campus and online offerings. Read the Guide to 2021-22 Schedule of Classes for more information.

Filter Course Schedule

e.g. 309. Supports wildcard search using *

Computer Science

CSC 208 Ethics in Technology

  • TuTh
  • Levan Center Room 301
    LEVAN 00301, Lincoln Park
  • John Paulett
  • Section 101
  • Class# 18291
  • 4.00 credits

CLOSED
  • Section 420
  • Class# 18293
  • 4.00 credits

  • Section 430
  • Class# 18292
  • 4.00 credits

CLOSED

CSC 241 Introduction to Computer Science I

  • MW
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Anthony Zoko
  • Section 401
  • Class# 18294
  • 4.00 credits

CLOSED
  • M
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Anthony Zoko
  • Section 401L
  • Class# 18513
  • 4.00 credits

CLOSED
  • MW
  • CDM Center 801 PC Lab
    CDM 00801, Loop
  • Amber Settle
  • Section 402
  • Class# 18295
  • 4.00 credits

  • Tu
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Amber Settle
  • Section 402L
  • Class# 18514
  • 4.00 credits

  • TuTh
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Tony Lowe
  • Section 403
  • Class# 18296
  • 4.00 credits

CLOSED
  • Th
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Tony Lowe
  • Section 403L
  • Class# 18515
  • 4.00 credits

CLOSED
  • Section 404
  • Class# 18435
  • 4.00 credits

  • Section 404L
  • Class# 18516
  • 4.00 credits

  • TuTh
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • James Foster
  • Section 405
  • Class# 18436
  • 4.00 credits

CLOSED
  • W
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • James Foster
  • Section 405L
  • Class# 18517
  • 4.00 credits

CLOSED
  • TuTh
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • James Foster
  • Section 406
  • Class# 18464
  • 4.00 credits

  • W
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • James Foster
  • Section 406L
  • Class# 18518
  • 4.00 credits

  • MW
  • CDM Center 801 PC Lab
    CDM 00801, Loop
  • Eric Schwabe
  • Section 407
  • Class# 25114
  • 4.00 credits

  • Tu
  • CDM Center 801 PC Lab
    CDM 00801, Loop
  • Eric Schwabe
  • Section 407L
  • Class# 25115
  • 4.00 credits

  • M
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Anthony Zoko
  • Section 701
  • Class# 18454
  • 4.00 credits

CLOSED
  • W
  • 14 E Jackson Room 512
    14EAS 00512, Loop
  • Anthony Zoko
  • Section 701L
  • Class# 18519
  • 4.00 credits

CLOSED
  • Th
  • CDM Center 220
    CDM 00220, Loop
  • Paul Saweh
  • Section 702
  • Class# 18683
  • 4.00 credits

CLOSED
  • M
  • CDM Center 801 PC Lab
    CDM 00801, Loop
  • Paul Saweh
  • Section 702L
  • Class# 18684
  • 4.00 credits

CLOSED
  • Section 710
  • Class# 19127
  • 4.00 credits

CLOSED
  • Section 710L
  • Class# 19128
  • 4.00 credits

CLOSED
  • W
  • In-person
    LEVAN 00403, Lincoln Park
    or
    Online: Sync
  • GianMario Besana
  • Section 741
  • Class# 18477
  • 4.00 credits

CLOSED
  • Th
  • Levan Center Room 403
    LEVAN 00403, Lincoln Park
  • GianMario Besana
  • Section 741L
  • Class# 18520
  • 4.00 credits

CLOSED

CSC 242 Introduction to Computer Science II

  • MW
  • CDM Center 658
    CDM 00658, Loop
  • Eric Sedgwick
  • Section 401
  • Class# 18297
  • 4.00 credits

  • Tu
  • CDM Center 801 PC Lab
    CDM 00801, Loop
  • Eric Sedgwick
  • Section 401L
  • Class# 18521
  • 4.00 credits

  • Tu
  • CDM Center 658
    CDM 00658, Loop
  • Thiru Ramaraj
  • Section 701
  • Class# 18455
  • 4.00 credits

  • W
  • CDM Center 801 PC Lab
    CDM 00801, Loop
  • Thiru Ramaraj
  • Section 701L
  • Class# 18522
  • 4.00 credits

CSC 243 Introduction to Computer Science for Programmers

  • MW
  • CDM Center 224
    CDM 00224, Loop
  • Amber Settle
  • Section 401
  • Class# 18417
  • 4.00 credits

  • Section 720
  • Class# 19139
  • 4.00 credits

CSC 299 Sophomore Lab in Applied Computing

  • Section 401
  • Class# 18418
  • 4.00 credits
  • Topic: Building A Search Engine

  • Section 402
  • Class# 18987
  • 4.00 credits
  • Topic: Hrdw Prjs for the Raspberry Pi

  • MW
  • CDM Center 658
    CDM 00658, Loop
  • Eli Brown
  • Section 701
  • Class# 18924
  • 4.00 credits
  • Topic: Data Visualization on the Web

CSC 300 Data Structures I

  • TuTh
  • CDM Center 200
    CDM 00200, Loop
  • James Riely
  • Section 401T
  • Class# 18432
  • 4.00 credits

  • Section 402
  • Class# 18438
  • 4.00 credits

CLOSED
  • Section 410
  • Class# 19136
  • 4.00 credits

  • Section 411
  • Class# 18579
  • 4.00 credits

This section is linked to CSC 300-402. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 301 Data Structures II

  • Section 401
  • Class# 18419
  • 4.00 credits

  • TuTh
  • CDM Center 206
    CDM 00206, Loop
  • Tony Lowe
  • Section 402
  • Class# 18538
  • 4.00 credits

  • Section 410
  • Class# 18580
  • 4.00 credits

This section is linked to CSC 301-401. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

  • Section 411
  • Class# 18581
  • 4.00 credits

This section is linked to CSC 301-402. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

  • Section 420
  • Class# 19185
  • 4.00 credits

CSC 321 Design and Analysis of Algorithms

  • Section 401
  • Class# 18298
  • 4.00 credits

  • MW
  • CDM Center 224
    CDM 00224, Loop
  • John Rogers
  • Section 402
  • Class# 18681
  • 4.00 credits

CLOSED
  • Section 410
  • Class# 18582
  • 4.00 credits

This section is linked to CSC 321-401. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

  • Section 411
  • Class# 19204
  • 4.00 credits

CSC 347 Concepts of Programming Languages

  • MW
  • CDM Center 218
    CDM 00218, Loop
  • Corin Pitcher
  • Section 401
  • Class# 18523
  • 4.00 credits

CLOSED
  • Section 410
  • Class# 18918
  • 4.00 credits

CSC 352 Database Programming

  • Section 701
  • Class# 18300
  • 4.00 credits

  • Section 710
  • Class# 18584
  • 4.00 credits

This section is linked to CSC 352-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 355 Database Systems

  • MW
  • CDM Center 206
    CDM 00206, Loop
  • Eric Schwabe
  • Section 401T
  • Class# 18989
  • 4.00 credits

  • MW
  • CDM Center 206
    CDM 00206, Loop
  • Eric Schwabe
  • Section 402T
  • Class# 18495
  • 4.00 credits

CLOSED
  • MW
  • Online:Sync-Classroom Link
    Online
  • Eric Schwabe
  • Section 430
  • Class# 18442
  • 4.00 credits

CLOSED
  • MW
  • Online:Sync-Classroom Link
    Online
  • Eric Schwabe
  • Section 431
  • Class# 18917
  • 4.00 credits

CLOSED

CSC 361 Optimized C++

  • Section 701
  • Class# 18448
  • 4.00 credits

  • Section 710
  • Class# 18508
  • 4.00 credits

This section is linked to CSC 361-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 362 Optimized C++ Multithreading

  • Th
  • CDM Center 222
    CDM 00222, Loop
  • Edward Keenan
  • Section 701
  • Class# 18609
  • 4.00 credits

  • Section 710
  • Class# 18610
  • 4.00 credits

This section is linked to CSC 362-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 363 Theory and Practice of Safe Systems Programming

  • MW
  • CDM Center 202
    CDM 00202, Loop
  • Corin Pitcher
  • Section 401
  • Class# 24690
  • 4.00 credits

  • Section 410
  • Class# 24691
  • 4.00 credits

CLOSED

CSC 372 Mobile Application Development for Android

  • Section 701
  • Class# 18457
  • 4.00 credits

CSC 373 Computer Systems I

  • TuTh
  • CDM Center 228
    CDM 00228, Loop
  • Zhen Huang
  • Section 401
  • Class# 18302
  • 4.00 credits

CLOSED
  • TuTh
  • CDM Center 226
    CDM 00226, Loop
  • Karen Heart
  • Section 402
  • Class# 18463
  • 4.00 credits

CLOSED
  • Section 410
  • Class# 18588
  • 4.00 credits

This section is linked to CSC 373-401. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

  • Section 411
  • Class# 18990
  • 4.00 credits

CLOSED

CSC 374 Computer Systems II

  • Section 401
  • Class# 18303
  • 4.00 credits

  • Section 410
  • Class# 18590
  • 4.00 credits

CSC 376 Distributed Systems

  • TuTh
  • CDM Center 222
    CDM 00222, Loop
  • Karen Heart
  • Section 401
  • Class# 18443
  • 4.00 credits

  • Section 410
  • Class# 18992
  • 4.00 credits

CSC 381 Introduction to Digital Image Processing

  • Th
  • CDM Center 214
    CDM 00214, Loop
  • Jacob Furst
  • Section 701
  • Class# 18304
  • 4.00 credits

  • Section 710
  • Class# 18591
  • 4.00 credits

This section is linked to CSC 381-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CLOSED

CSC 394 Software Projects

  • Section 701
  • Class# 18381
  • 4.00 credits

  • Section 730
  • Class# 19187
  • 4.00 credits

CSC 395 Research Colloquium

  • F
  • In-person
    CDM 00206, Loop
    or
    Online: Sync
  • Jacob Furst
  • Section 401
  • Class# 18439
  • 2.00 credits

  • Section 410
  • Class# 18593
  • 2.00 credits

This section is linked to CSC 395-401. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 397 Topics in Computer Science

  • Tu
  • Lewis Center Room 1005
    LEWIS 01005, Loop
  • Zhen Huang
  • Section 702
  • Class# 24719
  • 4.00 credits

  • Section 711
  • Class# 24722
  • 4.00 credits

CSC 400 Discrete Structures for Computer Science

  • Section 701
  • Class# 18413
  • 4.00 credits

CLOSED
  • Section 703
  • Class# 25056
  • 4.00 credits

  • Section 710
  • Class# 18595
  • 4.00 credits

This section is linked to CSC 400-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

  • Section 712
  • Class# 25057
  • 4.00 credits

CSC 401 Introduction to Programming

  • W
  • Lewis Center Room 1111
    LEWIS 01111, Loop
  • Eric Sedgwick
  • Section 702
  • Class# 18460
  • 4.00 credits

  • Section 710
  • Class# 18597
  • 4.00 credits

This section is linked to CSC 401-702. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

  • Section 720
  • Class# 18690
  • 4.00 credits

Online course. Course materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 402 Data Structures I

  • Section 701
  • Class# 18414
  • 4.00 credits

  • Section 710
  • Class# 18598
  • 4.00 credits

This section is linked to CSC 402-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 403 Data Structures II

  • Th
  • CDM Center 200
    CDM 00200, Loop
  • John Rogers
  • Section 701
  • Class# 18415
  • 4.00 credits

  • Section 710
  • Class# 18599
  • 4.00 credits

CSC 406 Systems I

  • Th
  • CDM Center 224
    CDM 00224, Loop
  • Salman Parsa
  • Section 702
  • Class# 18483
  • 4.00 credits

  • Section 711
  • Class# 18589
  • 4.00 credits

This section is linked to CSC 406-702. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 407 Systems II

  • Section 701
  • Class# 18416
  • 4.00 credits

CLOSED
  • Section 710
  • Class# 18600
  • 4.00 credits

This section is linked to CSC 407-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 412 Tools and Techniques for Computational Analysis

  • Section 701
  • Class# 18476
  • 4.00 credits

  • Section 710
  • Class# 18601
  • 4.00 credits

CSC 421 Applied Algorithms and Structures

  • M
  • CDM Center 224
    CDM 00224, Loop
  • Tao Hou
  • Section 701
  • Class# 18305
  • 4.00 credits

  • Section 710
  • Class# 18602
  • 4.00 credits

This section is linked to CSC 421-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 435 Distributed Systems I

  • Section 701
  • Class# 18306
  • 4.00 credits

  • Section 710
  • Class# 18603
  • 4.00 credits

This section is linked to CSC 435-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 436 Web Applications

  • Tu
  • 14 E. Jackson Room 801
    14EAS 00801, Loop
  • Paul Duszak
  • Section 701
  • Class# 18496
  • 4.00 credits

  • Section 710
  • Class# 18604
  • 4.00 credits

This section is linked to CSC 436-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 447 Concepts of Programming Languages

This is a hybrid course that meets online and on-campus.

  • W
  • CDM Center 228
    CDM 00228, Loop
  • James Riely
  • Section 701T
  • Class# 18307
  • 4.00 credits

  • Section 710
  • Class# 18605
  • 4.00 credits

This section is linked to CSC 447-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 452 Database Programming

  • Section 701
  • Class# 18301
  • 4.00 credits

  • Section 710
  • Class# 18585
  • 4.00 credits

This section is linked to CSC 452-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 453 Principles of Database Management Systems

  • Section 701
  • Class# 18929
  • 4.00 credits

  • Section 711
  • Class# 18606
  • 4.00 credits

This section is linked to CSC 453-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 461 Optimized C++

  • Section 701
  • Class# 18449
  • 4.00 credits

  • Section 710
  • Class# 18509
  • 4.00 credits

This section is linked to CSC 461-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 463 Theory and Practice of Safe Systems Programming

  • MW
  • CDM Center 202
    CDM 00202, Loop
  • Corin Pitcher
  • Section 401
  • Class# 24692
  • 4.00 credits

  • Section 410
  • Class# 24693
  • 4.00 credits

CSC 472 Mobile Application Development for Android

  • Section 701
  • Class# 18444
  • 4.00 credits

  • Section 710
  • Class# 18587
  • 4.00 credits

This section is linked to CSC 472-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 480 Artificial Intelligence I

  • Section 720
  • Class# 18993
  • 4.00 credits

CSC 481 Introduction to Image Processing

  • Th
  • CDM Center 214
    CDM 00214, Loop
  • Jacob Furst
  • Section 701
  • Class# 18475
  • 4.00 credits

  • Section 710
  • Class# 18592
  • 4.00 credits

This section is linked to CSC 481-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 500 Research Colloquium

  • F
  • In-person
    CDM 00206, Loop
    or
    Online: Sync
  • Jacob Furst
  • Section 401
  • Class# 18308
  • 2.00 credits

  • Section 410
  • Class# 18594
  • 2.00 credits

This section is linked to CSC 500-401. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 555 Mining Big Data

  • Section 701
  • Class# 19121
  • 4.00 credits

  • Section 710
  • Class# 19122
  • 4.00 credits

CLOSED

CSC 562 Optimized C++ Multithreading

  • Th
  • CDM Center 222
    CDM 00222, Loop
  • Edward Keenan
  • Section 701
  • Class# 18611
  • 4.00 credits

  • Section 710
  • Class# 18612
  • 4.00 credits

This section is linked to CSC 462-701. Lecture and materials will be available at https://d2l.depaul.edu at the start of the quarter.

CSC 578 Neural Networks and Deep Learning

  • Section 701
  • Class# 18309
  • 4.00 credits

  • Section 710
  • Class# 18608
  • 4.00 credits

CSC 595 Topics in Computer Science

  • Tu
  • Lewis Center Room 1005
    LEWIS 01005, Loop
  • Zhen Huang
  • Section 702
  • Class# 24720
  • 4.00 credits
  • Topic: Program Analysis

  • Section 711
  • Class# 24723
  • 4.00 credits
  • Topic: Program Analysis

CSC 697 Graduate Internship

  • Section 701
  • Class# 18387
  • 1.00 credits

  • Section 702
  • Class# 18388
  • 2.00 credits

  • Section 703
  • Class# 18389
  • 3.00 credits

  • Section 704
  • Class# 18390
  • 4.00 credits

If you have taken an online class at DePaul in previous years you may already be familiar with this first modality. These classes do not meet at a specific time on specific days. An Online Async class is designed in D2L, where you find content, assignments, schedules, and structured opportunities for you to interact with your classmates, asynchronously.

For more information, please visit the guide to classes.

These classes take place at a specific time on a specific day, with the instructor and all the students meeting online using a synchronous meeting tool like Zoom. Before selecting this option, please carefully consider your ability to actively participate in video and audio with a reliable internet connection.

For more information, please visit the guide to classes.

These classes are a combination of asynchronous and synchronous online work. An online hybrid class is designed in D2L, where you find content, assignments, and schedules. In addition, the class meets synchronously on-line, on specified dates at the assigned time, using a synchronous meeting tool like Zoom. Though the class has assigned time(s) and day(s) of the week, it typically meets synchronously only some of the time. The class notes on the Enrollment Information tab of the Class Information screen may contain further details on the required/planned meetings.

For more information, please visit the guide to classes.

An Online: Async (Sync-Option) class is designed in D2L, where you find content, assignments, schedules, and structured opportunities for you to interact with your classmates, asynchronously. In addition, this class is paired with a class that takes place at a specific time on a specific day, on campus or on Zoom. Students in these classes may connect with the live classroom and instructor via Zoom, if and when they are available, but they are not required to do so. Typically, students in an Online:Sync-Option class will have access to the recordings of the paired live classroom.

For more information, please visit the guide to classes.

An Online: Sync-Classroom Link class takes place at a specific time on a specific day, linked to a class that takes place at the same time on campus. Students in these classes connect via Zoom with the live classroom and the instructor, so everyone can interact synchronously. Before selecting this option, please carefully consider your ability to actively participate in video and audio with a reliable internet connection.

For more information, please visit the guide to classes.

These classes are a combination of asynchronous and synchronous online work. An online hybrid class is designed in D2L, where you find content, assignments, and schedules. In addition, the class meets synchronously on-line, on specified dates at the assigned time, using a synchronous meeting tool like Zoom. Though the class has assigned time(s) and day(s) of the week, it typically meets synchronously only some of the time. The class notes on the Enrollment Information tab of the Class Information screen may contain further details on the required/planned meetings. Like 'On-Campus Plus Zoom,' this class consists of students who meet on campus in a Zoom enabled room at a specific time on a specific day, along with students who meet at the same time on Zoom. The difference is that most students will alternate between meeting on campus and meeting on Zoom, while some students will meet only on Zoom. This modality allows for increased enrollment in on-campus classes under social distancing conditions, while at the same time offering a fully online synchronous modality to students who may be unable or unwilling to come to campus.

For more information, please visit the guide to classes.

Meets on campus at a scheduled time.

For more information, please visit the guide to classes.

Students and faculty are on Zoom at scheduled day/time.

For more information, please visit the guide to classes.

Like traditional on-campus courses, but with the option to attend each class meeting in person or remotely via Zoom. Very flexible, but has the usual amount of live class meetings.

For more information, please visit the guide to classes.

 Featured Courses

  • CSC 397: Topics in Computer Science, Topic: Computational Biology 

    Are you interested in exploring biological systems through the lens of computer science, then check out CSC 397 CSC 397: Topics in Computer Science (Topic: Computational Biology). No biology background is required

    Computational Biology lies in the intersection of Computer Science & Biology and is the study of how biological information is organized and analyzed in biological ecosystems. Topics will include surveying publicly available databases for all domains, understanding genomics file formats and analyzing biological data using UNIX command line interface and PYTHON programming. Students will apply problem-solving and programming skills towards implementing a tool that will analyze complex biological data sets.

    This course will be offered as a Global Learning Exchange (GLE) in collaboration with São Paulo State University (UNESP), Brazil. Have fun working in teams while gaining cross-cultural exposure.

  • CSC397 Topics in Computer Science: Program Analysis for Vulnerability Mitigation 

    Program analysis is the process of automatically analyzing program code and/or behavior to learn a property such as correctness, robustness, safety and liveness. As software has been dramatically becoming more and more complicated and ubiquitous, program analysis has been increasingly used to solve critical computer science, software engineering, and cybersecurity problems. Tremendous effort has been invested by both the industry and academia to use and develop program analysis techniques for identifying and addressing software bugs, particularly software vulnerabilities, which are frequently exploited by real-world attacks, such as the series of Russian attacks on U.S federal agencies in 2020, the data leakage of over 500 million Facebook users' private information in 2021, and the pervasive ransomware attacks nowadays. Due to the severity of software vulnerabilities, many software vendors such as Google, Microsoft, Adobe, have incorporated the use of program analysis tools as part of their software development life cycle. 

    The purpose of the course is to introduce concepts and techniques that allow us to apply program analysis to solve problems. After taking the course, you will be able to

    • formulate a problem in a way so that it is solvable using program analysis 

    • implement and use popular program analysis techniques, such as control flow analysis and data flow analysis, to solve problems

    • analyze and mitigate software vulnerabilities rapidly

    • use and extend state-of-art automatic vulnerability mitigation tools to mitigate real-world vulnerabilities

    The course is intended as an advanced course. There will be homework assignments, reading assignments, a project and a final take-home exam. The lectures will be open to students’ suggestions and input.

    If you are interested in automatically analyzing program code, synthesizing program code, identifying software bugs (particularly vulnerabilities), and addressing software vulnerabilities, this is the course for you!

    LEWIS 01005 or online
  • CSC 595 Topics in Computer Science: Program Analysis for Vulnerability Mitigation 

    Program analysis is the process of automatically analyzing program code and/or behavior to learn a property such as correctness, robustness, safety and liveness. As software has been dramatically becoming more and more complicated and ubiquitous, program analysis has been increasingly used to solve critical computer science, software engineering, and cybersecurity problems. Tremendous effort has been invested by both the industry and academia to use and develop program analysis techniques for identifying and addressing software bugs, particularly software vulnerabilities, which are frequently exploited by real-world attacks, such as the series of Russian attacks on U.S federal agencies in 2020, the data leakage of over 500 million Facebook users' private information in 2021, and the pervasive ransomware attacks nowadays. Due to the severity of software vulnerabilities, many software vendors such as Google, Microsoft, Adobe, have incorporated the use of program analysis tools as part of their software development life cycle. 

    The purpose of the course is to introduce concepts and techniques that allow us to apply program analysis to solve problems. After taking the course, you will be able to

    • formulate a problem in a way so that it is solvable using program analysis 

    • implement and use popular program analysis techniques, such as control flow analysis and data flow analysis, to solve problems

    • analyze and mitigate software vulnerabilities rapidly

    • use and extend state-of-art automatic vulnerability mitigation tools to mitigate real-world vulnerabilities

    The course is intended as an advanced course. There will be homework assignments, reading assignments, a project and a final take-home exam. The lectures will be open to students’ suggestions and input.

    If you are interested in automatically analyzing program code, synthesizing program code, identifying software bugs (particularly vulnerabilities), and addressing software vulnerabilities, this is the course for you!

    LEWIS 01005 or Online
  • SE 598 Topics in Software Engineering: Program Analysis for Vulnerability Mitigation 

    Program analysis is the process of automatically analyzing program code and/or behavior to learn a property such as correctness, robustness, safety and liveness. As software has been dramatically becoming more and more complicated and ubiquitous, program analysis has been increasingly used to solve critical computer science, software engineering, and cybersecurity problems. Tremendous effort has been invested by both the industry and academia to use and develop program analysis techniques for identifying and addressing software bugs, particularly software vulnerabilities, which are frequently exploited by real-world attacks, such as the series of Russian attacks on U.S federal agencies in 2020, the data leakage of over 500 million Facebook users' private information in 2021, and the pervasive ransomware attacks nowadays. Due to the severity of software vulnerabilities, many software vendors such as Google, Microsoft, Adobe, have incorporated the use of program analysis tools as part of their software development life cycle. 

    The purpose of the course is to introduce concepts and techniques that allow us to apply program analysis to solve problems. After taking the course, you will be able to

    • formulate a problem in a way so that it is solvable using program analysis 

    • implement and use popular program analysis techniques, such as control flow analysis and data flow analysis, to solve problems

    • analyze and mitigate software vulnerabilities rapidly

    • use and extend state-of-art automatic vulnerability mitigation tools to mitigate real-world vulnerabilities

    The course is intended as an advanced course. There will be homework assignments, reading assignments, a project and a final take-home exam. The lectures will be open to students’ suggestions and input.

    If you are interested in automatically analyzing program code, synthesizing program code, identifying software bugs (particularly vulnerabilities), and addressing software vulnerabilities, this is the course for you!

    LEWIS 01005 or Online