Course Syllabus

Class Web Page
The ELMS page will be used to post readings, assignments, etc. though some of those might link to descriptions on my own site. You may receive an e-mail informing you of emergency announcements, but you are responsible for checking the main class site regularly.

Meeting Times: Mon/Wed/Fri 3-3:50pm in CSI 3120.

Contact Hours: I will be available for questions outside of class time via e-mail and on the class Slack space and in office hours as posted each week on ELMS. The teaching assistant will be available in office hours as posted each week on ELMS.

Restrictions: Must not have completed any courses from CMSC131-499 course range; and must not be concurrently enrolled in CMSC131. Credit only granted for: IMDM127 or CMSC131.

Course Short Description
An introduction to the principles of Computer Science supported by exercises in computer programming with an emphasis on creative coding, algorithmic image creation and manipulation, and interactive experiences. Students will make use of both exploratory coding approaches, and problem/solution-driven approaches, to design and implement software with visual and auditory output. The course also includes an introduction to a wide variety of issues relating to computer science and software, including software design and construction, problem-solving, and fundamental questions about the nature, limitations, and ethical use of computers and algorithms. It also explores how creativity tools can be used and as well as providing some insight into how they are implemented. The course is targeted to students with a broad diversity in backgrounds and interests. No prerequisites are assumed beyond high school algebra.

Additional Descriptive Information
Unlike many traditional computing courses, there will be some assignments where a single "right" solution does not exist, but rather there will be required assignment elements with multiple ways to demonstrate them. However, there will also be assignments where a specific correct solution is what is being sought, though still multiple ways to accomplish it. As an example of the first, an assignment might ask you to draw two overlapping squares. You can imagine how many placement and color combinations might be possible. As an example of the second, an assignment might ask you to rotate an image so that it is upside-down. Two examples of how this might be solved are rotating it 180° clockwise or rotating it 180° counter-clockwise. Either would apply course topics and have the same end result.

As an introduction to topics in computer science and programming that can then be applied creatively, assignments in this course will include a mix of styles. For example, in addition to programming code, there will be "written" elements in some assignments through which you will need to demonstrate mastery of certain higher-level concepts, whether technical, mathematical, ethical, etc. There will also be written components with some through which you express things such as what artistic concept you are demonstrating through your code and how it meets the goals within the assignment description. Your grades will depend on things such as the appropriate use of the technical components, satisfying the given directions and requirements, clear effort being demonstrated on creative components, etc.

Exams will be closed-book, closed-notes, closed-technology.

We will be making use of a variety of software tools, Tools are being selected with care to making sure they are available on Windows and OSX, and that they are free to (at least) students at UMD. Examples include Processing 3.5.4, and Photoshop® available on TERPware.

Example Learning Outcomes
• Conceptualize, enter, compile, debug and run interactive programs in a relevant computer language.
• Design and implement software and webpages that generate creative output in images and sounds.
• Programmatically generate or modify images.
• Use existing creativity support tools to create, edit and store sounds, images, and shapes.
• Describe and use a systematic process to analyze a computational problem so as to construct a program or algorithm to solve that problem.
• Explain limitations on algorithmic problem solving, and identify some types of problems that are not easily or ultimately solved by algorithm.
• Describe ethical issues in computer use, comment on issues of technology and society, and analyze case studies of computer use to identify these issues and offer solution ideas.

Example Creative Connections
• An assignment might ask students to take inspiration from Kandinsky's Color Study. Squares with Concentric Circles and create a geometric work such as this two-cell image.
• A different type of assignment might ask students to take inspiration from Camille Utterback & Romy Achituv's Text Rain to programmatically add text to an image and write software that could add text to an image based on where the sky meets an object.


Textbooks
There is one required and one recommended textbook for this course.
• Required: "Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction" by Daniel Shiffman. Available as PDF at dl.acm.org/doi/pdf/10.5555/1481360
• Recommended as secondary reference: "Processing: A Programming Handbook for Visual Designers and Artists" by Casey Reas and Ben Fry.


Major Course Deliverables
Coding and other Assignments: These will take various forms and are individual assignments on which you may ask questions only to the instructor and teaching assistants. You may use the class slides, the posted code examples, the examples and documentation on the processing.org website, and the textbook as resources as well. However, you may not use online resources such as Chegg or Reddit to ask for help, or post to places like the class Slack (other than direct messages to the instructor) or any other unofficially created hangouts. You will find the description to every assignment on ELMS, and these assignments need to be submitted via ELMS before their respective deadlines. Actual source code files will be required on coding assignments (not screenshots of code). Some assignments will potentially require other files. Each assignment description will detail this.

Semester Exams and Final Exam:
We will have three semester exams (scheduled for September 30th and October 28th and December 2nd in class) and a final exam (currently scheduled for Friday, December 16th at 1:30pm in a room to be announced).


Grading Distribution and Rules
Coding and Other Assignments: 50%
A reminder that you may not work on these with others. You may see the instructor or teaching assistant for help. Once an assignment deadline passes, submission is no longer allowed. Do not attempt to submit through other means such as e-mail. To accommodate for a limited number of unexpected things that do not qualify as official university excuses, each student will have two 24-hour extension "tokens" that they may apply over the course of the semester. Using a token gives that student 24 hours beyond the assignment due date to submit the assignment, but the student must contact me at egolub@umd.edu to ask for this by the original deadline to inform me that they want to use one of their tokens. Note that each student only gets two tokens, they are non-transferable and non-renewable. Please note that the tokens are only applicable for assignments and not for any exams.

Beyond the above tokens, assignments are covered by university rules about what constitutes an excuse for missing a major-grading assignment deadline. Such excuses would need to be fully documented, be in the list of university-approved excuses, and due to the extended period of time of an assignment would need to overlap with the due date. With an approved excuse, the deadline would be adjusted. This would be discussed in more detail individually if the case arises. Please note that self-documentation is not accepted for these. Please refer to the "Illnesses" section below.

Assignments will have different weights to the overall total. At the end of the semester, based on how many points worth of assignments we have had, we will scale things to an "out of 100%" score for the portion of your grade connected to these assignments based on the relative value of each. So, as an example, if in the end there were 40+50+50+30+60+40 points worth of these assignments, the "out of 100%" would be calculated by dividing your total on these assignments by 270.

Semester Exams and Final Exam: 50%
At the end of the semester, based on how many points worth of questions we have had, we will scale things to an "out of 100%" score for the portion of your grade connected to exams. Not all exams will have the same number of points. So, as an example, if in the end there were 40+50+50+75 points worth of questions, the "out of 100%" would be calculated by dividing your exams total by 215.

Exams are covered by university rules about what constitutes an excused absence from a major grading event, and the documentation for missing a major grading event such as an exam. For an excused absence on a semester exam, no make-up will be given. Instead, your overall exam scoring will be adjusted to reflect the one missed exam. Note that not every exam will have the same number of points and I will have a formula to handle this correctly in the end.

Exam regrading request policy will be discussed in class, but please note that any requests will need to be in writing via e-mail.

Semester grades will be assigned based on the following anticipated ranges. It should be noted that some range cut-offs may be adjusted down slightly. The very lower and upper parts of each range will be reserved for +/- grades.
RangeGrade Family
90-100A
80- 89B
70- 79C
60- 69D
 0- 59F


Due to the potential circumstances of the semester, this is subject to change if needed, but such changes would be discussed in advance.


Masking Guidelines
These things are always in flux. As of now masks are listed as optional in the classroom, but I would like to ask everyone to seriously consider wearing a mask in class. If you are not wearing a mask, I will ask you to keep a certain distance away from me if you come up to ask something, but I will of course still take the question.


Illnesses
If a long-term medical issue impacts an assignment, you must notify me as soon as you are medically able to. Official documentation will be needed, and we will discuss how the assignment will be handled. Self-documentation will not suffice for this. Arrangements for excusing or making up an excused assignment will be handled on a case by case basis, but documentation must be provided as soon as medically possible which should be no later than two days after the deadline to begin that conversation.

In the case of an exam, any medical excuse must include the day of the exam or be of a substantial length ending within two days of the exam, and in the form of official medical documentation (self-documentation will not suffice unless the University states that we need to start allowing that). The default for accepted excuses will be to use the scores on the remaining exams "in place of" the missed exam. Again, notification and this documentation should be provided as soon as medically possible and should be no later than one week after the exam.


Academic Honesty
The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council. This Code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. Cheating includes: reusing portions of coursework for credit, allowing others to prepare work, and utilizing external aids including commercial term paper and internet companies. If you have a question regarding any of the above or the code in general, consult immediately with one of the instructors.

The University of Maryland Honor Pledge reads: I pledge on my honor that I have not given or received any unauthorized assistance on this assignment/examination. Unless you are specifically advised to the contrary, the Pledge statement should be handwritten and signed on the front cover of all papers, projects, or other academic assignments submitted for evaluation in this course. Students who fail to write and sign the Pledge may be asked to confer with the instructor. For more information on the Code of Academic Integrity or the Student Honor Council, please visit: https://www.studentconduct.umd.edu/


Special Needs
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Accessibility and Disability Services (ADS) within the first two weeks of the semester.

Religious Observance
It is the student's responsibility to inform the instructor by e-mail of any religious observances that will conflict with your attendance, assignment deadlines, or final exam. The student should provide this notification to the instructor by the end of the second week of the term; the notification must identify the religious holiday(s) and the date(s). If this notification is not given to the instructor by this date, any missed assignments, activities, and/or exams are subject to grade penalties.

University-Wide Items University-wide course policy information of course applies as well.

Copyright Notice
Class materials posted on this course site and/or ELMS are copyrighted and may not be reproduced for anything other than for personal use of students taking this class, without written permission from instructor.