Syllabus

Computer Science 1

Lee Tusman
Fall 2020

Class Details

Class: Mondays 2:30pm - 6:10pm
Final Session: Dec 14, 12 Noon - 2:30pm

Zoom: As this is a public website, please use the link from our Moodle page
Discord: Also linked from Moodle

Contact

Instructor: Lee Tusman
Pronounts: he/him
Contact: Lee.Tusman@purchase.edu
Office Hours: Wednesdays 10:30am - 12:30pm

Learning Assistant: Sofia Jaramillo
Pronouns: She/her
Contact: sofia.jaramillo@purchase.edu
Office Hours: By appointment

Course Description

This course is an introduction to computer science and programming as a basis for understanding computation. We will work with the Processing language, a flexible language for coding in the context of the visual arts, as well as a foundational tool for learning programming skills. This course will be adaptive to student needs for those within and outside of the Computer Science Major. We will begin the semester learning basic elements of programming along with coding skills and concepts. As the semester progresses students will propose and work on individual programming projects to demonstrate their knowledge and to apply concepts of computation to their own areas of interest and study.

Course Goals / Learning Outcomes

  • Students will have a cohesive knowledge of the foundational components of programming languages and be able to apply this knowledge
  • Students will have the ability to program software in Processing, starting from the concept stage and being able to translate this to software sketches
  • Students will have an understanding of the process of debugging and be able to use this knowledge to solve programming problems with their code
  • Students will have an understanding of the process of translating concepts to code and to refining one’s work through iteration

Additional Course Goals





Required Materials

  • Learning Processing, 2nd Edition - by Daniel Shiffman
  • Available for purchase in the campus bookstore, online in many places, and as a ebook, Kindle, etc. The newer edition is a bit better and more up to date but an older edition is ok. We also have two copies on reserve at the library. Please be in touch if you are having trouble acquiring the book in the first week of class.
  • Processing, a free Integrated Development Environment for programming. Available for free download or donation.
  • A laptop OR classroom computer (with personal USB drive) to hold your assignments
    • You are responsible for backing up your files!

University and Classroom Policies and Rules

Official Purchase College Academic Integrity Policy

The Purchase College academic integrity policy, purchase.edu/live/blurbs/840-academic-and-professional-integrity, explicitly forbids cheating, plagiarism, and other forms of academic dishonesty. Plagiarism is the appropriation or imitation of the language, ideas, and/or thoughts of another person and the representation of them as one’s own original work. Students are responsible for familiarizing themselves with the definition of plagiarism and the acceptable methods of attribution.

Violation of any of the above may lead to formal disciplinary action and the following sanctions:

  • Minimum Sanction: Failing grade on the assignment or examination. Maximum Sanction: Expulsion
  • Recommended Sanction (First Offense): Failing grade for the course
  • Recommended Sanction (Second Offense): Expulsion

Students who have any questions or doubts about whether any activity is academically permissible should check with the instructor.

Plagiarism and cheating are taken seriously. You will be held accountable for Purchase’s Student Code of Conduct for Academic Integrity.

Class policy on Collaboration

I support collaborative learning with some important caveats.

Coding can be difficult, and struggling with the material is part of the learning process. Students are allowed to collaborate to learn from each other. Do not collaborate in order to simply find out a solution to a project. Each participant should contribute approximately equally, and what you turn in should be your own. Copying a solution from another student, even if you change a few minor things such as variable names, is not a collaboration. You may help someone learn something, but you can not tell them what to code. If you have questions about collaboration or academic integrity, get in touch with me via email, talk with me before or after class, or come to office hours.

Tutoring Support

All students at Purchase College can take advantage of our tutoring services in the Learning Center and the Einstein Corner. This semester these will be held online via Zoom. These are free, 45-minute, peer-to-peer tutoring sessions in a variety of subjects and in writing across the disciplines. I encourage you to take advantage of this service to help you excel in this class, as well as your other courses. Please visit the Learning Center and Einstein Corner websites for more information. Einstein Corner has tutors for CS1 classes.

Homework

You will have in-class and outside of class coursework and homework in the form of code sketches and projects. All work is to be submitted on time by 11:59pm on the Sunday before our class. I ask for work to be turned in before class so I have time to review it so I know how you are doing. For each day late, your grade will drop a part letter grade.

Accessiblity Statement

The Office of Disability Resources collaborates directly with students who identify with disabilities to create accommodation plans, including testing accommodations, in order for students to access course content and validly demonstrate learning. For students who may require accommodations, please contact the Office of Disability Resources as soon as possible: 914-251-6035, ODR@purchase.edu (Student Services Building, #316A), www.purchase.edu/odr

It is my goal that this class be an accessible and welcoming experience for all students, including those with disabilities. You are welcome to talk to me at any point in the semester about course design concerns, but it is best if we can talk as soon as possible about the need for any adjustments.

Tentative Nature of syllabus

If needed, this syllabus and the course outline may be revised to better suit the class. Students are responbile for keeping up with any changes distributed via email or in class. The most up to date syllabus will always be linked from Moodle.

Classroom Community

Attendance

Don’t miss class our Zoom class on Mondays! We only have one of these a week!

Learning programming is a cumulative effort. More than most other courses each of our classes will build on what you have learned in previous classes. Missing class sets you back in this process. It is important that you attend every class.

Here’s my policy: Three absences will lower your grade by one letter. (i.e. an A will became a B). With each additional unexcused absences, the grade will drop an additional unit for each absence. I will take attendance at the beginning of class, often with a brief check-in quiz. If you miss the quiz or are more than 15 minutes late, that is the equivalence of an absence. If there is an emergency or otherwise extenuating circumstance that prevents you from attending class, please email me.

We will be covering critical concepts and working on code and projects in-class and you are responsible for reviewing our class site and reaching out to your peers outside of class time to catch up on what you have missed.

Please see my separate handout on expectations for virtual participation.

Discord

We will be using the online messaging and chat software Discord. You can access it through a web browser or download a standalone application. We will use it outside of our Zoom sessions. If you have a question and want help, ask in the #questions channel. For any big important news I will put official class announcements on the #announcements channel and I will also post it to Moodle or email the entire class.

You are welcome to ask and answer questions and have ongoing conversations. Please keep announcements a channel just for me to post class announcements. Please remember to be respectful and treat this as a virtual extension of the classroom.

Programming Language choice

There are countless forums and debates dedicated to what programming language you should learn first. The language you choose doesn’t matter as much as you may believe. Instead, it’s important to learn basic concepts of coding. We will be primarily focused on the Processing language, built on top of the Java language. Java is widely used and can run on almost any computer. Processing provides a friendly coding development environment, has lots of resources for beginners, is capable of intensive computing tasks, provides a simple graphic library, and will teach you fundamental skills which can be applied to other languages. We may touch on other languages in this course including an overview of Java at the end of the semester. Students will have knowledge to be able to go on and work with almost any other language at the conclusion of our course.

Philosophy

We are all learners and educators. Your experience and participation is valid and necessary. I am not the sole source of information. You are responsible for and encouraged to be in charge of your own education. Leap forth into areas of interest. Teach with and learn from others.

Please hold me accountable and point out areas that need to be improved.

  • Help each other out. Ask lots of questions of me and your fellow students.
  • Learning to program is failure followed by success.
  • If you are feeling left behind, stuck, or frustrated in any way, please let me know immediately. I am here to help.
  • Sleep enough hours. Good sleep will get you through college, reduce stress, help you do well in class, and feel better. And it’s free.

Statement of Values and Code of Conduct

with acknowldegement and thanks, adapted from Everest Pipkin

It is my intent to lead a course that serves students from diverse backgrounds and perspectives, and that our varied life experiences may enter the classroom as a resource, strength and benefit. I will address you by your name and pronouns and make arrangements to address disabilities or religious needs.

Free exchange of ideas and critique is encouraged and expected but I will not tolerate harassment, including threats of violence, deliberate intimidation, unwelcome sexual attention, and offensive comments related to gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, or background. During class discussion and critique we aim to speak and to listen, be mindful and generous in our interactions, and make everyone feel heard.

Requesting Help on homework/code/projects

  • When you get stuck on a problem with your code and can’t figure it out, take a good break such as taking a walk before coming back to try again. Try to explain your code’s logic to a friend or family member, even someone who doesn’t code.
  • You may wish to visit Einstein’s Corner.
  • When you are sending me code, please send a minimal version, what you expected, and what you are getting. Please don’t message me last minute. It can take me up to 24 hours to respond to emails, and longer on weekends or at the end of semesters. It is generally better for us to review your code together at office hours.

Grades

  • 25% - Homework assignments / problem sets
  • 15% - Midterm Exam and Project
  • 15% - Weekly check-in quizzes (EASY)
  • 25% - Final Exam and Project
  • 20% - Participation, Attendance and Preparedness

Participation

  • Participation includes asking or answering questions in class, participating in office hours or co-teaching others, assisting in group work and conversations, participating in online forum, and in other ways.

    Resources

Websites

Events