COP4521 Programming Secure Parallel, and Distributed Applications


Syllabus


Program examples


Lecture 1 (08/26, 8/28): Syllabus, Introduction to Python

Lecture 2 (08/28, 09/02, 09/04): Python Basics: Modules and Functions

Programming Assignment 1: Simulation and Evaluation of Strategies for a Game , Due: Sept 12 at 11:59pm.

Template for basic header that must be included in all programming assignments.

Homework 1, due Sept 9, 11:59pm.

Lecture 3 (09/04, 09/09): Python Basics: Sequence Data Types, FILE IO

More information about Python variables, assignments, pass by assignment

Lecture 4 (09/11): Python Basics: Functional Programming tools, and Object-Oriented Programming

Programming Assignment 2: An Apache Web Access Log Analyzer, apache_logs_small, apache_logs, assignment2_sample_outputs.txt, Due: Sept 26 at 11:59pm.

Homework 2, due Sept. 18, 11:59pm.

Lecture 5 (09/16, 09/18): Introduction to Parallel Programming

Lecture 6 (09/23) : Python Threads

Lecture 7 (09/26, 09/30): Python multiprocessing, OpenMP

Extra credits opportunity: ACM annual Fall Programming Contest on November 22nd, from 10am to 3pm. 1 extra point (in the final course numerical grade) for participation; 3 extra points for winning the contest. The extra points will be applied to the exam grade. Register for the contest at https://contest.cs.fsu.edu/

Programming Assignment 3: Parallel 2D Prisoner's Dilemma Simulation, files provided. Due: Oct. 13 at 11:59pm.

Homework 3, due Oct. 7, 11:59pm.

Lecture 8: Introduction to Networking

Lecture 9 : Socket Programming with Python

Midterm to be held on October 16 during class time. The exam covers materials from Lecture 1 to Lecture 9, and assignments 1 to 3.

Homework 4, due Oct. 14, 11:59pm.

Midterm information and reading list. You are allowed to bring a one-page (printing paper) cheatsheet to the midterm.

Programming Assignment 4: Internet Chat Server. Due: Nov. 4 at 11:59pm. Provided files

Lecture 10: Introduction to Database

Lecture 11: SQL Basics

Lecture 12: Relational Database in Python: SQLite3

Lecture 13: Web Application Development with Flask, Introduction to HTML (slides provided by Dr. Karen Words)

Programming Assignment 5: A Basic Flask Website . Due: Nov. 20 at 11:59pm.

Homework 5, due Nov. 13, 11:59pm.

Homework 6, due Nov. 14, 11:59pm.

Lecture 14: Introduction to Computer Security

Lecture 15: Symmetric Encryption

Lecture 16: Role Based Access Control, Flask Sessions,

Programming Assignment 6: Enhanced and Hardened Flask Website . Due: Dec. 4 at 11:59pm.

Lecture 17: Malware, Distributed DOS, and Firewall

Lecture 18: Optimizing single thread performance (content not in the final exam)

Homework 7, due Dec. 4, 11:59pm.

Final exam to be held on Tuesday Dec. 9, 5:30-7:30 in the classroom. The exam covers materials from Lecture 1 to Lecture 17, and assignments 4 to 6. Final exam information and reading list. You are allowed to bring a one-page cheat sheet to the exam.