The syllabus can be downloaded
here (PDF)
.
Instructor:
- Dr. Jeffrey Paone
- Office: 280K Brown Hall
- Phone: x2587
- Email: jpaone {at} mines {dot} edu
- Office Hours: Tuesday 1pm-3pm, Thursday 10am-12pm, or by
appointment
Teaching Assistants
- Josh Nachtigal (
- Roy Procell (rprocell)
Lectures:
- Monday & Wednesday 1:00 - 1:50
- Marquez Hall 235
Labs:
- Friday 1:00 - 1:50
- Marquez Hall 026
Recommended Textbooks:
- Interactive Computer Graphics: A Top-Down Approach with Shader
Based OpenGL, 6th ed., Edward Angel, Dave Shreiner, 2011.
- OpenGL: A Primer, 3rd ed., Edward Angel, 2007.
- OpenGL Development Cookbook, 1st ed., Muhammad Mobeen Movania, 2013.
- OpenGL 4 Shading Language Cookbook, 2nd ed., David Wolff, 2013.
- OpenGL Quick Refernce API Version 4.5, Khronos Group, 2014.
Other resources will be posted on the website.
Assignments:
- There will be seven individual programming
assignments throughout the semester. Due dates will be specified and
are firm. Individual programming assignments must
represent individual student work.
- If your program requires input from a data file or the user, please
include sample data files or input with the submission.
- All programs (homework assignments, programs, projects, labs) must
be submitted in electronic form through Canvas.
- Every submission must include a README file which describes how to
build and run the assignment. Any other information that is required
to run the program should be included here as well.
- Your goal should be to make it easy for us to see how great you
did. If we make a couple of good faith attempts but fail to get your
program running, we will try once to contact you to help us. If we
still cannot get your work to compile, it will receive a zero grade.
Late Policy:
- All assignments and projects are due at the date and time specified
on the item handout.
- Items received less than 24 hours past the due date will receive a
10% grade reduction.
- Items received greater than 24 hours but less than 48 hours past
the due date will receive a 25% grade reduction.
- Items received greater than 48 hours but less than 72 hours past
the due date will receive a 50% grade reduction.
- Items not turned in or received more than 72 hours past the due
date will receive a grade of zero.
Projects:
- There will be two course projects, to be completed in teams of
three. The first will be a midterm project due shortly before Fall
Break. The second will be a final project due during the last week of
class.
- In addition to the programming project, each team will give a brief
in-class presentation showcasing their project.
- All code and files required for the projects must be submitted to
the team's Canvas page.
Labs:
- Each week there will be a laboratory session that will cover the
new techniques discussed in lecture each week. The lab assignments
will be due by the end of the day each following Friday, giving you a
full week to complete the lab.
- The lab assignments are intended to be done during the class time
and should not require much time after the lab session.
- The assignments will build off of the labs so use the labs as a
starting point for your assignments.
- Initially, labs will be individual assignments. As the semester
progresses, it will be possible to work together on labs. Refer to
each lab specific assignment for the corresponding collaboration
policy.
Exams:
- There will be two exams during the semester. The exams will divide
the semester into approximate thirds.
- Make-up exams will be allowed only in accordance with University
policy. Make-up exams resulting from illness require notification
(email is fine) the day of the exam and a doctor's note when well.
Make-up exams due to legitimate travel require advance notice and
instructor's approval.
Grading:
The final course grade will be computed from the following course
percentage breakdown:
- 35% Homework Assignments
- 10% Midterm Project
- 15% Final Project
- 10% Exam I
- 10% Exam II
- 10% Participation & Hero Level
- 10% Labs
There will be multiple opportunities for extra credit throughout the
course, including extra credit sections on various homework assignments
and projects, extra credit questions on the exams, extra credit assignments, and extra
credit presentations.
Final grades will be determined using a straight scale. The straight
scale assigns letter grades as follows:
Range |
Grade |
[93, 100] |
A |
[90, 93) |
A- |
[87, 90) |
B+ |
[83, 87) |
B |
[80, 83) |
B- |
[77, 80) |
C+ |
[73, 77) |
C |
[70, 73) |
C- |
[63, 70) |
D |
[0, 63) |
F |
Discrepencies:
- If you have any questions regarding how any assignment, project, or
exam is graded and you think you deserve more points than you
received, you must see the instructor within one week of the day the
item was returned to class. No claims, justifiable or not, will be
considered after this deadline.
- Any assignment returned to the instructor is subject to total
re-grading. Note: it is technically possible that this regrade may be lower than your initial score.
Participation:
- A portion of the student's grade will be comprised of in-class and
online participation.
- After the first week of class, students are expected to participate
by making regular forum posts, either asking a question or responding
to an existing topic. From time to time, there may be specific
discussion topics.
- Regular course attendance is mandatory. If attendance is low, the
instructor reserves the right to administer pop quizzes for credit, to
be determined.
- During the course, you will create a hero and bring this hero to
life. As the course progresses, your hero will become more powerful
and level up. In order to level up, your hero will need to earn
experience points (XP). There are many ways to earn XP. See the next
section on how to earn XP.
Achievement System
- As you complete assignments and labs you will earn XP for your
hero. Each assignment will have a number of achievements you can earn
by adding various features to your program. Some of these achievements
will be hinted at for you to discover, others will be explained as
extra credit, and a last set will be hidden for you find on you own.
Earning an achievement will also award your hero with XP.
- What if I miss an achievement for on an assignment? If after
submitting an assignment you find out you did not earn an achievement,
then you will be permitted to go back and attempt to earn the
achievement. Each student will be allowed ONE RESUBMISSION
of the assignment at any point in the semester. This resubmission will
not be regraded, i.e. your grade for the assignment will not
be recomputed or altered. However, if you satisfy the requirements for
an achievement then you will earn the achievement and the associated
XP.
- At the end of the semester, the instructor will award up to 500
bonus XP for exemplary attendance, participation in class, etc. If you
participate regularly and come to class, this could be enough to get
you up a level and over the hump to the next letter grade.
- XP required to level up:
Level |
XP |
0 |
0 |
1 |
250 |
2 |
500 |
3 |
750 |
4 |
1000 |
5 |
1250 |
6 |
1500 |
7 |
2000 |
8 |
2500 |
9 |
3000 |
10 |
4000 |
11 |
4500 |
12 |
5000 |
13 |
5500 |
14 |
6000 |
15 |
6500 |
- Hopefully you noticed that your hero can reach Level 15, which will
earn you 15 participation points. Since participation counts for 10%
of your overall grade, this is your opportunity to earn extra credit
throughout the semester (a max of 5 bonus points to your semester
grade).
Piazza:
- Be polite. This also applies to assignment clarifications (e.g.
writing "This requirement makes no sense" may not be the best
phrasing. Try something like: "I'm not clear what requirement X means.
Should I do [x] or [y]?")
- A Piazza post is not a text message; use complete sentences and
correct spelling, punctuation, and grammar.
- When asking a question, do not post large blocks of code. A single
line of code, to clarify your question, may be appropriate. Before
posting, ask yourself: would this be giving most of the answer to
another student? Thinking about how to phrase the question may help
you solve the problem.
- Achievement Unlocked! You are doing a rather thorough reading of
the syllabus. Email the professor with the subject line "I See All" to
earn the Eye of Sauron achievement.
- When answering a question, do not post the exact code from your
homework solution. Possible exception would be something that takes
one line and is primarily a syntax question. E.g., to a question like
"How do I set the color of my rectangle" you might answer with
something like "You need to set the color before drawing. If g is a
Graphics object, you can do g.setColor(Color.CYAN);".
- Using pseudocode is an excellent way to answer questions.
Computing:
- This class will involve extensive use of OpenGL and GLFW. You may
use any platform to develop your program. We will provide Makefiles to
aid with the compilation on most systems.
- In general, OpenGL / GLFW code that compiles and executes correctly
will perform correctly on any other machine on which it compiles.
However, certain elements of OpenGL and GLSL are less-standardized.
For this reason, it is important that you test your code on the lab
machines in Marquez Hall 026 prior to submitting. This will become
more important in the second half of the semester when we cover more
advanced techniques and shader programming. If we have trouble getting
any of your GLSL code to run properly we will contact you once for
assistance.
Collaboration Policy for Programming
Projects in CS Courses
The following policy exists for all CS courses in the CS department.
This policy is a minimum standard; your instructor may decide to augment
this policy.
- If the project is an individual effort project, you are not allowed
to give code you have developed to another student or use code
provided by another student. If the project is a group project, you
are only allowed to share code with your group members.
- You are encouraged to discuss programming projects with other
students in the class, as long as the following rules are followed:
- You view another student's code only for the purpose of
offering/receiving debugging assistance. Students can only give advice
on what problems to look for; they cannot debug your code for you. All
changes to your code must be made by you.
- Your discussion is subject to the empty hands policy, which means
you leave the discussion without any record [electronic, mechanical,
or otherwise] of the discussion.
- Any material from any outside source such as books, projects, and
in particular, from the Web, should be properly referenced and should
only be used if specifically allowed for the assignment.
- To prevent unintended sharing, any code stored in a hosted
repository (e.g. on github) must be private. For group projects, your
team members may, of course, be collaborators.
- If you are aware of students violating this policy, you are
encouraged to inform the professor of the course. Violating this
policy will be treated as an academic misconduct for all students
involved. See the Student Handbook for details on academic dishonesty.
Academic Code of Honor:
- All students are expected to follow the University's Academic Code
of Honor.
- A student or assigned team working on a program may discuss
high-level ideas with other students or teams. However, at time of
submission all work submitted must be his/her/their own work.
- Use of the Internet as a reference is allowed but directly copying
code or other information is cheating. It is cheating
to copy, allow another person to copy, all or part of an exam or a
project, or to fake program output. It is also a violation of the Code
of Honor to observe and then fail to report academic dishonesty. You
are responsible for the security of your own work.
- We will provide, as part of the course, functional code examples
for most of the topics covered. While you are encouraged to examine
these examples, your submissions must represent a good-faith effort to
complete the assignment. Merely copying and pasting code from the
examples will result in a failing grade. Furthermore, relying too
heavily on the given examples will fail to prepare you for the much
more open-ended midterm and final projects.
Disability Accommodations:
The following website http://disabilities.mines.edu outlines CSM's
disability services. Any student requiring accommodations contact the
instructor via email or schedule an individual meeting within the first
two weeks of class to coordinate accommodations.
Discrimination and Harassment:
This course and all learning
opportunities at Mines require a safe environment for everyone to be
productive, develop professional practices, and to be able to share and
learn without fear of discrimination or harassment. Discrimination or
harassment of any type will not be tolerated. Sometimes harassment is
unintentional, but regardless of intent the instructor will address any
language or behaviors that might discriminate, stereotype, or promote
harassment. If you witness discrimination or harassment of others,
please bring it to the attention of Mines faculty so it can be
addressed immediately.
|