Assignments

Assignment 0: Getting Started with Unix and C

Due: October 16 18, 2020 (23:59:59)

This assignment aims at making sure you familiarize yourself with basic C fundamentals and building simple C programs as well as basic Git commands and working through Github classroom.

For a detailed description of the practical, please read this document.

Assignment 1: Manipulating Bits

Due: October 28, 2020 (23:59:59)

The purpose of this assignment is to become more familiar with bit-level representations of integers and floating point numbers. You’ll do this by solving a series of programming “puzzles.” Many of these puzzles are quite artificial, but you’ll find yourself thinking much more about bits in working your way through them.

For a detailed description of the practical, please read this document.

Assignment 2: Movie Review Sentiment Analysis

Due: October 28, 2020 (23:59:59)

Sentiment Analysis is a Big Data problem which seeks to determine the general attitude of a writer given some text they have written. The problem that you’ll solve in this assignment is about calculating or analyzing sentiments of the critics by their reviews about the movie.

For a detailed description of the practical, please read this document.

Assignment 3: Shortest Path Between Two Cities

Due: November 27, 2020 (23:59:59)

In this asignment, you are expected to find the shortest path between two cities in a given road network using the Floyd-Warshall algorithm, in which you are allowed to use only dynamic memory allocation to create any array in the code.

For a detailed description of the practical, please read this document.

Assignment 4: Defusing a Binary Bomb

Due: December 11, 2020 (23:59:59)

The purpose of this assignment is to help you to become familiar with x86-64 instruction set and to understand assembly code representations of C programs.

For a detailed description of the practical, please read this document.

Assignment 5: Buffer Overflow Attacks

Due: January 4, 2021 (23:59:59)

The purpose of this assignment is to help you get familiar with how buffer overflow vulnerabilities are formed, found, exploited and protected.

For a detailed description of the practical, please read this document.

Assignment 6: Understanding Cache Memories

Due: January 20, 2021 (23:59:59)

The purpose of this assignment is to help you understand the impact that cache memories can have on the performance of your C programs.

For a detailed description of the practical, please read this document.