CSc 620 - Surreptitious Software
0 : Administrivia
Christian Collberg
Department of Computer Science
University of Arizona
Class |
|
: | |
620 -- Surreptitious Software |
Lecturer |
|
: | |
Christian Collberg |
WWW |
|
: | |
http://www.cs.arizona.edu/classes/cs620/fall08/index.html |
Office |
|
: | |
Gould-Simpson 758 |
Office Hours |
|
: | |
Fri 8-10 |
Phone |
|
: | |
621-6612 |
Lectures |
|
: | |
TTh 17:00-18:15, GLD-S 942 |
Honor's section |
|
: | |
|
TA |
|
: | |
13cm<174>>none |
|
Here are ways to communicate with me and the rest of the class:
- Study how to protect programs against intellectual
property violations.
- We'll study obfuscation, watermarking, tamperproofing,
birthmarking, and hardware protection.
- At the end of the course you should
- be familiar with algorithms for software
protection,
- know how to use tools for program
transformation.
I will hand out copies of chapters from my forthcoming
book Surreptitious Software.
You are NOT allowed to redistribute the chapters
in any form, electronic or hardcopy!
You are responsible for reading
and understanding this syllabus.
If you have any concerns or issues
about the information in this document
you should bring them up during the
first week of class.
Course Description
- Introduction to several major high-level programming languages and their
characteristics.
- Programming projects are required in at least three languages.
This semester we will study the languages: Haskell,
Prolog, and Ruby.
The official course description is at
http://garnet.ccit.arizona.edu/schedule.cgi?CxSCz372z044zOpen
There are no exams.
The goal of the class is to
- learn about algorithms for software
protection, and
- learn how to use tools for program
transformation.
- I will give some lectures.
- You will give some lectures.
- You will do projects and write project reports.
- Preparing lectures.
- Working programming projects.
- Writing project reports.
- Assignments will be mostly in the form of programming problems.
- You may work the assignments on any machine you want, but
before you hand them in you should test the code on
lectura! The TA(s) will grade the assignments on lectura,
and if they don't work there, he/she won't debug them for you!
There can be subtle problems with code that's developed on
a Windows machine, for example, when it is run on a Unix
machine. For example, the two systems use different newline
characters.
- Prerequisites: Knowledge of programming languages and compilers.
- You need to be a competent programmer in a
procedural/object-oriented language, such as Java or C.
Assessment Scheme
There will be
- no exams.
- 5 quizzes on the material we study in class. (20%)
- Three assignments:
- Study and report on a program protection tool. (20%)
- Give 1-2 lectures on an algorithm. (20%).
- Final project (40%).
- Assignments handed in no more than 24 hours late will incur a 10% penalty.
- Assignments handed in more than 24 but no more than 48 hours late will incur a 20% penalty.
- Assignments handed more than 48 hours after the deadline will receive a grade of 0.
Pop quizzes will be given out at the beginning or end
of class and cannot, under any circumstance, be made up at a later date.
- All grades (for exams, quizzes, and assignments) will be curved up
by throwing away the highest grade in the class and scaling up such
that the second highest grade is 100.
- The curving is done to adjust for particularly difficult tests/assignments,
and to prevent an outlier from skewing the grade distribution.
- You cannot, after scaling, receive more than 100 on any exam, quiz,
or assignment.
- You will fail the class if you get less than 50 (after curving) on the
final project.
- Otherwise, a curved total grade of [90,100] gives you an A, [80,89] a B,
[70,79] a C, [60,69] a D, and 59 and below an E.
- Except under exceptional circumstances I
will not assign incomplete grades.
- I decide what is an exceptional circumstance.
- To avoid any ambiguities, I have formalized the informal rules given above.
- The rules below should be considered minimum requirements to achieve
a particular grade. The instructor reserves the right to do additional
adjustments, as necessary.
- Any contradictions, omissions, errors, or ambiguities in the grading scheme
will be resolved by the instructor.
- Any issues or concerns regarding the grading scheme should be brought to the
attention of the instructor within the first week of class.
- All raw scores range from 0 to 100.
- Each individual score (final, midterm, quizzes, assignments)
will be curved using the function
where is a set of scores (for an assignment, a test, etc.)
and is a student.
- Note: is set subtraction.
-
returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
where is a set of scores (for an assignment, a test, etc.)
and is a student.
- Note: is set subtraction.
-
returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
where is a set of scores (for an assignment, a test, etc.)
and is a student.
- Note: is set subtraction.
-
returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
where is a set of scores (for an assignment, a test, etc.)
and is a student.
- Note: is set subtraction.
-
returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
where is a set of scores (for an assignment, a test, etc.)
and is a student.
- Note: is set subtraction.
-
returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We round up to the nearest integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are required to attend lectures.
- I will take attendance.
- Ask me in advance if you need to miss class.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
class web site! x$ is a set of scores (for an assignment, a test, etc.)
and is a student.
- Note: is set subtraction.
-
returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We round up to the nearest integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are required to attend lectures.
- I will take attendance.
- Ask me in advance if you need to miss class.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
You are responsible for checking this site regularly. x,s)$ returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (0%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We round up to the nearest integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are required to attend lectures.
- I will take attendance.
- Ask me in advance if you need to miss class.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
- You should also check the course news group
cs.course372 for announcements.
- There is no objectionable material in this class.
You will be completing your homework on the department's instructional
machine, Lectura. You will also have access to the department's lab in
Gould-Simpson 228. You can access Lectura over the network or by dialing
in. You will, therefore, need to set up an account on Lectura. To do so,
go to the seventh floor of Gould-Simpson during normal business hours
during the first few days of the semester and follow the instructions for
setting up an account. When you apply for your account, you will pick up
an application form. Fill out and return the form to Gould-Simpson 721 to
pick up a magnetic access card that will allow you 24-hour access to the
Gould-Simpson 228 lab.
Students with disabilities who require reasonable accommodations to
fully participate in course activities or meet course requirements
must register with the Disability Resource Center. If you qualify for
services through DRC, bring your letter of accommodations to me as
soon as possible. See http://www.salt.arizona.edu/.
- Assignments in this course require individual attention and effort
to be of any benefit. All work is expected to be that of each student
alone. You may not consult with others, except in ways specifically
authorized by the course instructor. You also may not plagiarize another
person's work or copy another person's code.
- Students are responsible for
understanding and complying with the University's Code of Academic
Integrity. A synopsis of the Code is attached; the full text is
available from the Office of the Dean of Students in Room 203 Old
Main. Among other provisions, the Code demands that the work you submit
is your own, and that graded papers and exams will not subsequently be
tampered with. Copying of another student's programs or data, or
writings is prohibited when they are part of a published class
assignment; it is immaterial whether the copying is by computer, xerox,
pen or other means. Witting collaboration in allowing such copying is
also a Code violation.
- Assignments in this course require individual attention and effort
- Violations of the Code will, at minimum, result in loss of credit
for a graded item. An egregious first violation or any second violation
will minimally result in failure of the entire course.
- See also http://studpubs.web.arizona.edu/policies/cacaint.htm
the University of Arizona Code of Academic Integrity.
I take academic integrity seriously! I will report every violation! f$ be the set of final exam scores.
Let be the final exam score for student .
Let be the weight of the final exam (0%).
is the curved final score for .
[midterm exam:]
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We round up to the nearest integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are required to attend lectures.
- I will take attendance.
- Ask me in advance if you need to miss class.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
- You should also check the course news group
cs.course372 for announcements.
- There is no objectionable material in this class.
You will be completing your homework on the department's instructional
machine, Lectura. You will also have access to the department's lab in
Gould-Simpson 228. You can access Lectura over the network or by dialing
in. You will, therefore, need to set up an account on Lectura. To do so,
go to the seventh floor of Gould-Simpson during normal business hours
during the first few days of the semester and follow the instructions for
setting up an account. When you apply for your account, you will pick up
an application form. Fill out and return the form to Gould-Simpson 721 to
pick up a magnetic access card that will allow you 24-hour access to the
Gould-Simpson 228 lab.
Students with disabilities who require reasonable accommodations to
fully participate in course activities or meet course requirements
must register with the Disability Resource Center. If you qualify for
services through DRC, bring your letter of accommodations to me as
soon as possible. See http://www.salt.arizona.edu/.
- Assignments in this course require individual attention and effort
to be of any benefit. All work is expected to be that of each student
alone. You may not consult with others, except in ways specifically
authorized by the course instructor. You also may not plagiarize another
person's work or copy another person's code.
- Students are responsible for
understanding and complying with the University's Code of Academic
Integrity. A synopsis of the Code is attached; the full text is
available from the Office of the Dean of Students in Room 203 Old
Main. Among other provisions, the Code demands that the work you submit
is your own, and that graded papers and exams will not subsequently be
tampered with. Copying of another student's programs or data, or
writings is prohibited when they are part of a published class
assignment; it is immaterial whether the copying is by computer, xerox,
pen or other means. Witting collaboration in allowing such copying is
also a Code violation.
- Assignments in this course require individual attention and effort
- Violations of the Code will, at minimum, result in loss of credit
for a graded item. An egregious first violation or any second violation
will minimally result in failure of the entire course.
- See also http://studpubs.web.arizona.edu/policies/cacaint.htm
the University of Arizona Code of Academic Integrity.
- Be courteous and treat others in the class with respect.
- Please be courteous to other students by refraining from
talking, playing loud music in your headphones,
silencing cell phones, pagers, etc.
- We come to class to learn: don't read the newspaper,
solve cross-word puzzles, etc.
Let's Have Fun!!! f^s$ be the final exam score for student .
Let be the weight of the final exam (0%).
is the curved final score for .
[midterm exam:]
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (00%).
-
is the curved midterm score for .
- Let be the set of scores for the :th quiz.
- Let be the score for student on the :th quiz.
- Let be the weight of the :th quiz (
).
- We throw away each student's lowest quiz score (note: is set subtraction):
-
is the total curved quiz score for student .
- Let be the set of scores for the :th assignment.
- Let be the score for student on the :th assignment.
- Let be the weight of the :th assignment (
).
- Let
be the assignment score after late penalties have been applied:
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We round up to the nearest integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- Please come and see me to chat, ask questions, or snack:
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are required to attend lectures.
- I will take attendance.
- Ask me in advance if you need to miss class.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
- You should also check the course news group
cs.course372 for announcements.
- There is no objectionable material in this class.
You will be completing your homework on the department's instructional
machine, Lectura. You will also have access to the department's lab in
Gould-Simpson 228. You can access Lectura over the network or by dialing
in. You will, therefore, need to set up an account on Lectura. To do so,
go to the seventh floor of Gould-Simpson during normal business hours
during the first few days of the semester and follow the instructions for
setting up an account. When you apply for your account, you will pick up
an application form. Fill out and return the form to Gould-Simpson 721 to
pick up a magnetic access card that will allow you 24-hour access to the
Gould-Simpson 228 lab.
Students with disabilities who require reasonable accommodations to
fully participate in course activities or meet course requirements
must register with the Disability Resource Center. If you qualify for
services through DRC, bring your letter of accommodations to me as
soon as possible. See http://www.salt.arizona.edu/.
- Assignments in this course require individual attention and effort
to be of any benefit. All work is expected to be that of each student
alone. You may not consult with others, except in ways specifically
authorized by the course instructor. You also may not plagiarize another
person's work or copy another person's code.
- Students are responsible for
understanding and complying with the University's Code of Academic
Integrity. A synopsis of the Code is attached; the full text is
available from the Office of the Dean of Students in Room 203 Old
Main. Among other provisions, the Code demands that the work you submit
is your own, and that graded papers and exams will not subsequently be
tampered with. Copying of another student's programs or data, or
writings is prohibited when they are part of a published class
assignment; it is immaterial whether the copying is by computer, xerox,
pen or other means. Witting collaboration in allowing such copying is
also a Code violation.
- Assignments in this course require individual attention and effort
- Violations of the Code will, at minimum, result in loss of credit
for a graded item. An egregious first violation or any second violation
will minimally result in failure of the entire course.
- See also http://studpubs.web.arizona.edu/policies/cacaint.htm the University of Arizona Code of Academic Integrity.
- Be courteous and treat others in the class with respect.
- Please be courteous to other students by refraining from
talking, playing loud music in your headphones,
silencing cell phones, pagers, etc.
- We come to class to learn: don't read the newspaper,
solve cross-word puzzles, etc.
Christian Collberg
2008-08-26