General Information

  • Location: WeWork, 600 California St, San Francisco
  • Instructor:
    • Name: Julien Delange
    • Instructor Email: julien - @ - northeastern.edy with subject prefix: [CS5007]
    • Office Hours: to be announced.
  • Assisistant
    • Name: to be announced.
    • Assistant email: to be announced.
    • Office Hours: to be announced.

Materials Repository

You can find the Git repository for this class on GitHub at juli1/CS5007-materials.

Schedule

The class takes place in Summer 2, which starts on June,29 2020.

This is the schedule for the incoming classes.

  • Module 1: July, 1 2020 - 6:00pm to 9:00pm
  • Module 2: July, 8 2020 - 6:00pm to 9:00pm
  • Module 3: July, 15 2020 - 6:00pm to 9:00pm
  • Module 4: July, 22 2020 - 6:00pm to 9:00pm
  • Module 5: July, 29 2020 - 6:00pm to 9:00pm
  • Module 6: August, 05 2020 - 6:00pm to 9:00pm

Modules

Module 1: Introduction & shell scripting

  • Concepts: Generalities on computer architecture, UNIX principles, what is POSIX, command line usage, shell scripting
  • Slides: to be added
  • Lab Project: shell script

Module 2: The C programming language

  • Concepts: data structure, header file, instructions, pointers, data types
  • Slides: to be added
  • Lab Project: c program with pointers manipulation

Module 3: Compiler Principles & Assembly Language

  • Concepts: what is a preprocessor, a linker, translating code from one language to the other. Introducion to Assembly Language. What is a library and how to create one.
  • Slides: to be added
  • Lab Project: source code analysis

Module 4: Process Management

  • Concepts: concept of a process, memory management/protection
  • Slides: to be added
  • Lab Project: mini-shell

Module 5: File and I/O

  • Concepts: concept of a process, memory management/protection
  • Slides: to be added
  • Lab Project: chat server/client

Module 6: Concurrency

  • Concepts: thread, mutex, semaphore, barrier. sync vs. async
  • Slides: to be added
  • Lab Project: concurrent chat server

Final Exam

To be added

Resources

Books

Websites