COP4521
Programming Secure Parallel, and Distributed Applications
Fall 2024 Syllabus
Acknowledgement: The course materials are adapted from Sharanya Jayaraman and
Karen Works's course materials.
Instructor Information
Position |
Name |
E-mail |
Office |
Office hours |
Course Instructor |
Xin Yuan |
xyuan@fsu.edu |
Lov 168 |
Mon, Wed 3:00 - 4:00 PM, plus ad hoc times announced on Canvas
or by appointment |
Teaching Assistant |
Qijin Bao |
qb24@fsu.edu |
MCH 104 |
Fri 2:00-3:30pm, https://fsu.zoom.us/j/5674623965 |
Teaching Assistant |
Trivikram Dharmavarapu |
td23z@fsu.edu |
MCH 102A |
Mon, Wed 11:45am-1:15pm https://fsu.zoom.us/j/7558134996
|
Teaching Assistant |
Janvi Polam Reddy |
jp23y@fsu.edu |
MCH 114A |
Tue, Thu 9:30-11:00am https://fsu.zoom.us/j/8024530644
|
Class Schedule
Main class
Room |
Time |
HCB 0103 |
Monday and Wednesday, 4:50 - 6:05 PM |
Course Requirements
Prerequisites
- COP 4530 Data Structures, Algorithms, and Generic Programming II
- Students also need to have a user-level knowledge of Unix, and
be comfortable working in the Unix environment. All programming assingments
will be graded on our department's linprog servers.
Course Website
Textbook
The following textbooks are optional for the class:
- Network Security Essentials: Applications and Standards (6th Edition) ,
William Stallings, 2017
ISBN-13: 9780134527338
- Python Application Programming,
Piyush Kumar and Biswas Parajuli
ISBN-13:9780998169408
- D. Grossman, "Sophomoric Parallelism and Concurrency," 2012. (An Open Source Textbook)
Course Description
Over the last decade, information management, security, parallel,
and distributed computing have become essential parts of application development.
In this course, software engineers learn how to develop parallel, distributed,
and secure applications using Python by applying principles of
information management, secure, parallel, and distributed computing.
Course Objectives:
The objective of the course is to introduce concepts and principles of
information management, security, parallel and distributed computing, and
networking to the degree that students can develop secure, parallel, and
distributed applications (in python).
Upon completion of the course, the student should be able to:
- Develop applications using Python.
- Explain information management and security computing principles
(such as basic computer security concepts, fundamental security design,
encryption, message authentication, malicious software, and intruders)
and infer how to apply these in the general software application
design and development.
- Build software applications that implement information management
and security computing design principles using public and symmetric
key cryptography, and role-based access control.
- Explain networking and parallel and distributed computing principles
and infer how to apply these in the general software application design
and development.
- Properly implement networking protocols and parallel and distributed
algorithms in applications
Grading Policy
The final course grade will be computed as follows:
Programming Assignments |
40 % |
Midterm Exam |
20 % |
Final Exam |
30 % |
Homework/Surveys/Quizzes/Exercises |
10 % |
Letter Grade Scale
Letter | Numerical Average |
A | 92.00 - 100 |
A- | 90.00 - 91.99 |
B+ | 88.00 - 89.99 |
B | 82.00 - 87.99 |
B- | 80.00 - 81.99 |
C+ | 78.00 - 79.99 |
C | 72.00 - 77.99 |
C- | 69.00 - 71.99 |
D | 62.00 - 68.99 |
D- | 60.00 - 61.99 |
F | 0.00 - 59.99 |
In addition to the scale listed above, in order to earn a C- or better
in the course, you must earn at least 60% in the exams (or 30 points out of the 50
points from the midterm and the final).
Incompletes
The grade of 'I' (Incomplete) will be assigned only under the
following exceptional conditions:
- Due to an extended illness or other extraordinary circumstance, and
with appropriate documentation, the student is unable to participate in
class for a period affecting graded work, such that it is not possible
to complete/grade the missing work before end of course.
- The missing work cannot constitute the majority of the work in the
course, and the student must already be passing the course in their
other coursework, for an incomplete to be considered
- In such a case, arrangements must be made to make up the missed
portion of the course prior to the end of the next semester.
Please note that "Incomplete" is not a
"get-out-of-bad-grade-and-retake-the-course" card. University policy on
Incompletes will be strictly followed.
Exams
There will be a midterm exam and a final exam. All exams are in the normally scheduled classroom. On-campus students will be required to bring and show your Student ID on test days. The final exam will be cumulative. The test formats will be a mixture of short-answer, code reading and understanding, and code writing.
Programming Assignments
- There are tentatively 8 programming assignments of various sizes, they
will be weighted differently. Most will be individual assignments with
zero, one or two being group assignments.
- Make sure to immediately start working on
programming assignments when they are announced. Assignment
specifications will be posted on the course web page.
- Please note also that programming is a skill, and PRACTICE is the only
way to learn a skill effectively. Please make sure to start assignments
early enough to leave yourself time for appropriate practice, as well as
testing and debugging!
- Turn in all assignments on time! The ability of complete
programming assignments in time is an important capability of a good
software engineer. Gaining this ability is a part of the training in
this course. Late assignments will be accepted one day after the due
date, with the deduction of a letter grade (10%). Assignments more
than a day late will not be accepted.
- Programs that do not run to the completion with the intended input
on linprog (the machine where your programs will be graded) will
receive at most 10% of the total grade for the program.
Test your code on linprog to make sure it runs to completion at least
for the given testing cases before you submit it!
- Each student is responsible for ensuring that their program files were submitted
correctly, and that the correct version was submitted. Double-check before you
submit.
- Any concerns or issues regarding the accuracy of grades must be
addressed first to the grader of the assignment in question, and also
must be brought up within 7 days of the grade being posted
Homework, Surveys, Quizzes, and Exercises
Homework, surveys, quizzes, and exercises will be given, both in Canvas
short-answer format and in small coding-exercise format. Some quizzes may
be set up as auto-graded quizzes on Canvas. Such coding exercises
will be assigned and due in a short time period.
Student Responsibilities
- Students should log on to Canvas at least every other day to
check for course updates.
- Students are expected to keep up with the class, engage with
the course material, and submit assignments by the due dates.
- Assignments, quizzes, and exams are expected to be products of
individual students per the FSU Academic Honor Policy. Students
should not discuss any of the questions with each other before
or during the actual assignments, activities, quizzes, or exams
without instructor approval.
- To receive maximum points for questions, students need to follow
the instructions carefully, follow word limits as instructed, and
use spell and grammar checking.
- To be successful in this course, students need to complete all
required assignments and tests.
Excused Absence Policy
- Excused absences include documented illness, deaths in the family
and other documented crises, call to active military duty or jury duty,
religious holy days, and official University activities. These absences
will be accommodated in a way that does not arbitrarily penalize students
who have a valid excuse. Consideration will also be given to students
whose dependent children experience serious illness.
- It is the student's responsibility to notify me as soon as possible
regarding any excused absences that affect graded work. In the case of
quizzes, you need to notify me within 24 hours of any excused absence
that causes you to miss a quiz
Miscellaneous Policies
- The course web page is your friend -- check and refresh it
frequently! It will be continually updated with essential course
materials, such as assignments, examples, and notes outlines. It will
also include other helpful supplements, such as instructions for using
the compilers, suggested exercises, and other useful help materials. It
is your responsibility to check the web page often for posted
materials.
- Students in the class should have a computer account from the
Computer Science Department (sign up for one if you don't already have
one), and this can and should be used to store project files and access
one of the compilers used in the course.
- Knowing the contents of this syllabus is each student's
responsibility. "I didn't know" in regards to a clearly stated course
policy will NOT be considered a valid excuse for anything during the
course
Academic Honor Policy:
The Florida State University Academic Honor Policy outlines the
University’s expectations for the integrity of students’
academic work, the procedures for resolving alleged violations of those
expectations, and the rights and responsibilities of students and faculty
members throughout the process. Students are responsible for reading the
Academic Honor Policy and for living up to their pledge to “ . . .
be honest and truthful and . . . [to] strive for personal and
institutional integrity at Florida State University.” (Florida State
University Academic Honor Policy, found at
http://fda.fsu.edu/Academics/Academic-Honor-Policy.)
ALL WORK IN THIS COURSE IS INTENDED TO BE DONE INDIVIDUALLY
unless explicitly specified
In addition to this information, please be aware of the
following:
- It is NOT APPROPRIATE to utilize websites such as: CHEGG.com, COURSEHERO.com, etc. DO NOT post our assignments to these websites to solicit answers, and DO NOT use/view/utilize the 'solutions' found on these websites. Doing so is in direct violation of the FSU honor policy.
- It is NOT APPROPRIATE to work on assignments with other students or to give or receive solutions to or from anyone before an assignment is due and handed in (by all parties).
- It is NOT APPROPRIATE to share any amount of code with your classmates. When you turn in code with your name on it, you are representing that work as your own. If your submission matches that of another student, this is considered a violation of the Academic Honor Code.
- It is NOT APPROPRIATE to copy/paste, or use any amount of code written by other people from any web sources, forums, etc. as your own solutions.
- It is NOT APPROPRIATE to post your code online. If I find your code online (unapproved online compilers, text sites, blogs, help sites, etc...), no matter what the intent was in posting your code, this is automatically in violation of the Academic Honor Policy and the appropriate actions will be taken. If you are keeping code on sites like GitHub, make sure your code is not searchable and viewable by the public.
- Plagiarism detection tools, such as MOSS, will be used in the
grading process.
- A first violation of the honor code will result, at minimum
(but not limited to), a penalty of a 0 grade on the assignment or test
involved, along with a reduced letter grade in the course.
- If the violation is that of soliciting solutions on external
web sites (Chegg, Course Hero, etc), the penalty will be an automatic F
in the course, regardless of whether it is a first violation or not
- Any second violation of the honor code will result in a Hearing
Referral under FSU Honor Code policies (this is an FSU requirement
for any case in which a student has a prior violation in ANY
course).
- A second violation in THIS course will result in a Hearing Referral
with the proposed minimum sanction of an F in the course
Americans With Disabilities Act
Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Student
Disability Resource Center; and
(2) bring a letter to the instructor indicating the need for
accommodation and what type. This should be done during the
first week of class.
This syllabus and other class materials are available in
alternative format upon request.
For more information about services available to FSU students
with disabilities, contact the:
Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/
Syllabus Changes
Except for changes that substantially affect implementation of
the evaluation (grading) statement, this syllabus is a guide for
the course and is subject to change with advance notice.