Word doc version: 2019-01-23-CSC105-syllabus

Class meetings

MWF 8:30-9:50

Noyce 3815

Learning Outcomes

We will explore what computer science educators have identified as seven “big ideas” in computing: creativity, abstraction, data and information, algorithms, programming, the internet, and global impacts (AP Computer Science Principles).  Our major learning objectives for this course include:

  • Understand the basic concepts of computers, their components, and operation (it’s not magic, it’s a lot of problem solving)
  • Understand how problems can be approached through computational principles and methods (if you have a hammer, what is a good nail?)
  • Increase self-efficacy in learning, using, and troubleshooting digital technologies (computers are buggy and so is life)
  • Consider digital technologies in context of historical development and social consequence (technology is made of human choices that ultimately impact other humans)
  • Reflect critically on how the affordances of digital information technologies shape our relationship to our selves, other people, and knowledge (make sure we are using computers, not the other way around).


There is no required textbook for this course. Readings will be made available through links to library resources, links to openly available material on the web, and in a few cases e-reserves on Pweb.

Accessibility & Inclusion

My goal is to create a fully inclusive classroom, thus I welcome individual students to approach me about distinctive learning needs. In particular, I encourage students with disabilities to have a conversation with me and disclose how our classroom or course activities could impact the disability and what accommodations would be essential. You will also need to have a conversation about and provide documentation of your disability to the Coordinator for Disability Resources, John Hirschman, located on the 3rd floor of the Rosenfield Center, 641-269-3089.

Religious observances

I encourage students who plan to observe holy days that coincide with class meetings or assignment due dates to consult with me in the first three weeks of classes so that we may reach a mutual understanding of how you can meet the terms of your religious observance and also the requirements for this course.

The work of the course & its evaluation

This course is collaborative: it is focused on learning and making in a community of peers. This is also a course designed to complement but not contribute to the progression of courses in the computer science major (i.e., it is a course aimed at those not majoring in CS). Therefore, it requires no prior background in the subject and anticipates no specific application of what is learned. You will not be asked to prove that you have mastered a particular skill. You will be asked to demonstrate engaged presence: willingness to do the work, share observations and reflections, and be a supportive colleague. Regular attendance goes without saying. To that end, the work of the course can be outlined as follows:

  • Attendance and engagement
  • Informal writing
  • Homework assignments
  • Project 1: Twine Narrative
  • Project 2: To be designed in consultation with me, collaborative in nature
  • Ethical implications and social impact of technology discussion leading and analysis paper

My goal is for everyone taking this course to be able to demonstrate familiarity and fluency with the course concepts and pursue questions within these topics that meaningful to them. While there are not a lot of expectations for memorization of material (i.e. there are no quizzes or exams), there are fairly high expectations for engagement with the material. I will be grading primarily for engaged presence in class and thoughtful completion of the work–it is less important that you do anything brilliantly and more important that you show up, do it, and then spend a minute to think about what you did. I would be very happy if you all completed the work of this course with engaged effort and received As. The following weighting will provide a basis for evaluation:

  • Attendance & engagement: 25%
  • Informal writing (outlines, blog posts, comments, in-class free writing): 15%
  • Homework Assignments: 15%
  • Project 1: 10%
  • Project 2: 15%
  • Ethics discussion reading selection & analysis: 20% (research & selection 5%, preparation for discussion 5%, 300-500 word analysis 10%)

Attendance & engagement

Typically, each class meeting will focus on one of three types of work: lecture, lab, or discussion. (Sometimes, these will be combined, and sometimes, we will have in-class work time for project planning.)

Lectures days will typically focus on the presentation of a key idea and may include some in-class activities. Engagement should take the form of listening, note-taking, asking questions, and participating fully in activities.

Lab days will typically focus on working through a series of steps to learn or make use of a particular tool–such as the Linux terminal, Python code, or a software designed to demonstrate a particular computing concept. Engagement requires doing the short background readings, showing up, working with colleagues as assigned, asking questions as needed, and completing the work of the lab. You may not always complete the lab during class. You should assume that you should then finish them outside of class.

Discussion days will focus on the history of computing in the first half of the semester and ethical implications of digital technologies in the second half of the semester. Engagement requires doing the reading beforehand, coming prepared to participate in a jig-saw style class discussion, and participating in various configurations of small group and full group discussions with thoughtfulness and vigor. At least, as much vigor as can be humanly expected at 8:30 in the morning.

Each student has 2 “personal days” that can be used for wellness or other purposes, which includes non-urgent health tribulations like the common cold that do not rise to the level of a SHACS visit. You do not need to ask or apologize for these days, but please let me know as soon as possible if you will not be in class. If you have more than two absences without a documented accommodation, health issue, or emergency, your participation grade will suffer. If you have 4 or more unexcused absences, you will receive a participation grade of zero.

Missing class does not excuse you from completing the work of the class. Homework will be due at the next course meeting, and you will be responsible for the concepts covered in lecture and discussion. This is especially true on lab days. Missing class on a lab day will be especially difficult for you and your colleagues, as many of these labs are collaborative. You will need to take responsibility for making arrangements to complete any lab missed.

If you must miss class, please refrain from asking what you missed over email. You may consult the reading outlines prepared by your colleagues or come to office hours.

Although it is not required, coming to office hours to ask questions, talk more about the reading, or just to chat is a valuable form of engagement, and I strongly encourage you to make use of office hours in this and all your courses. If you have class or work conflicts during my scheduled office hours, I will do my best to set up a different time to meet with you.


Writing is habit of attention and practice of thought. I find it to be an invaluable tool for learning and creativity. For this reason, informal writing is a key component of engagement in this course. Informal writing practices in this course will include:

  • Collaboratively producing notes (usually an outline or argument summary) for each reading (there are multiple readings for each discussion day, you will contribute to an outline of one)
  • In-class writing to focus our attention and spark ideas (free writing, index card activities)
  • Blog posts that respond to and reflect upon class discussion
  • Comments on others’ blog posts

I will provide a schedule of which form you are responsible for at which time, and whether this will be done independently or collaboratively. Each form should be brief, typically 200-300 words.

In the second half of the semester, you will complete a discussion leading assignment that combines research, presentation and writing. Additional guidelines can be found under assignments.

Homework assignments

Regular homework assignments will cover problems from lecture material and laboratory exercises. These are due at the beginning of class on most Fridays. You are welcome to discuss general course material with others, but any work you do and submit should be your own. The only exception to this is when assignments cover lab exercises that were performed collaboratively. In this case, each collaborator should submit any required materials individually and give proper attribution by naming their lab partners for any work conducted jointly.


Project 1, a Twine narrative, will be due the week before spring break. Project 2, a collaborative project designed in consultation with me that demonstrates engagement with a technology related to the course, will be due the last week of class. Each of these projects will be accompanied by a short in-class presentation and a short reflective statement on process. Suggestions and additional guidelines will be provided.


CS 105 is a 4-credit course. Class time will take 4 hours per week. Therefore, you should expect to spend about 6 hours a week outside of class completing reading, labs, homework, informal writing, and projects. Some weeks may require more and some weeks may require less. If you find yourself struggling to complete the work for this course in that time frame, please come and meet with me. Coursework at Grinnell is rigorous, but it should not feel impossible.

Creating a community

This classroom is a community of inquiry composed of individuals from diverse backgrounds and experiences coming together to learn. To that end:

  • Please come to every class, on time, and for the full scheduled time.
  • Please prepare for class by reading, taking notes, and formulating questions.
  • Please contribute to our conversation, both by listening and speaking.
  • Please give every activity the best effort you are able.
  • Please challenge yourself.
  • Please find a way to ask for help rather than panic, worry, or give up.
  • Please find a way to support your colleagues in these efforts.
  • Expect to make mistakes. Expect others to make mistakes. Please be generous.
  • Try not to make assumptions, especially about people.

Intentional use of technology

The nature of this course means that computers will be omnipresent in our classroom. My experience as a teacher, student, and scholar has taught me that harnessing their power as tools requires mindful and reflective use. I have had to develop practices for checking in with myself to see if what I’m doing at any given moment is contributing to or distracting from my goals.

  • Please turn off all audio notifications on your personal devices before class starts.
  • I will ask you to attempt multiple forms of reading, note-taking, writing, and communication. I ask that you follow directions in good faith, knowing that I will not ask you to change your habits permanently and that I will give you a chance to reflect on and decide what modes of reading, writing, and discussion work best for you. (Exception: any student with a documented disability requiring technological accommodation for classroom activities.)
  • If devices of any kind are used in a distracting manner (e.g. texting, someone not participating in small group work because they are answering email, multiple people tuned out on Facebook leading to lackluster discussion), I will call attention to it publicly.
  • Have you heard the term “deep work“?

Facilities and support


The computer network used by the math and computer science departments is called the MathLAN; its machines run the Linux operating system by default, and we will be using Linux for this course.

Computer Labs

SCI 3815 is an open lab, available at most hours for students to use. Other possibile MathLAN-equipped lab classrooms include SCI 3813 and SCI 3819. If you need to finish up a laboratory exercise after class, this is the place to do it!

Course Mentor

This course will have a peer mentor, Obuchi Adikema ‘21 [adikemao]. Obuchi’s role in our course will include support during labs, meeting with you outside of class to work through questions, input in assignment and activity design.

CS Tutors

Student tutors are hired to work in the open lab (and the adjoining room, SCI 3813) and answer questions about the MathLAN machines and their software (Sunday through Thursday, 7-10 pm). You can identify the tutor on duty by the flag at their workstation. These folks should be a good resource for many (though not all) of your coursework-related questions.

CS Learning Center

You are welcome to use this study space, located in SCI 3814, to work on assignments for this class. The CS Learning Center also hosts a library of CS-related books and magazines which you are welcome to use on the 3rd floor of Noyce.

CS Commons

Please feel welcome to use the CS Commons in SCI 3817 to take a break. Be respectful and share the space with other CS students.

Honesty & intellectual integrity

Grinnell College’s Academic Honesty policy is located in the Student Handbook available online for the 2018-19 school year: Honesty in Academic Work.

It is the College’s expectation that students be aware of and meet the expectations expressed in this policy.

In computer science courses, these expectations include but are not limited to the following specific practices (adapted from prior CS 105 syllabi):

  • Collaboration policies given in this syllabus and on particular assignments will be followed.
  • When you explicitly work as part of a group or team, you need not identify the work of each individual (unless I specify otherwise). However, when you submit group work as part of your individual homework, you must attribute the other group members as contributors to the particular problem(s).
  • You may discuss concepts (algorithms, ideas, approaches, etc.) described in the readings, lab exercises, or during class with anyone.
  • You may only discuss homework assignments (algorithms, solutions, write-ups, code, debugging, etc.) with computer science tutors, the CSC 105 mentors, or the CSC 105 instructor.
  • All the work submitted (code, experimental data, write-ups, etc.) must be your own or that of your group. Code or documentation provided by the instructor must be attributed, including code that you copy and subsequently modify. No other code or written work (from any source) may be shared with others or copied for your own use.
  • All non-syntax consultations (i.e., ideas about algorithms) from any source, including the readings, labs, provided code, and internal or external language references, require formal citation within the related program or write-up.
  • Any conceptual contributions by individuals not in your group must be acknowledged and attributed in your report. That is you must give specific attribution for any assistance you receive. (This includes from tutors or mentors.) The suggested acknowledgment format is: “[Person X] helped me to do [thing Y] by [explaining Z].”
  • Any program results or output must be faithfully recorded, not forged. (A thoughtful explanation of unexpected behavior can often be a worthwhile submission and is much better than the alternative.)
  • You are responsible for safeguarding your work from being copied by others. This requires you to take reasonable precautions with hard copy printouts as well as file system permissions. (Note that MathLAN’s default permissions prevent others from viewing your files.)

As an instructor, I will meet my obligation to bring any work suspected to be in violation of the College’s Academic Honesty Policy to the attention of the Committee on Academic Standing, after which there is no recourse with me.


This course has a long history of being offered and developed by the Computer Science Department at Grinnell. This syllabus is based most closely on previous iterations offered by Dr. Jerod Weinman and Dr. Ursula Wolz.

This is the first iteration of CSC 105 as taught by me. While I have thought carefully about each element of it, I recognize that teaching, like life, is buggy. Different learning communities have different needs, and not everything executes as imagined. For example, previous iterations of this course took place in a shorter times slot, which might mean that lab work and out of class work need to be re-jiggered. I welcome feedback offered in good faith at any point, and I reserve the right to change elements of the course while in progress based on that feedback or my own assessment of progress. I will communicate clearly and in advance about changes made.

I especially invite you speak with me about particular interests and goals that you have related to this course. I would love to work with you to figure out how you can use this course as a platform for developing a knowledge base or competency that is useful for you in some way.


This syllabus and all course materials have been prepared in conversation with and adapted from the example of many generous colleagues, including but not limited to: those who taught prior iterations of CS 105 and created foundational materials, Dr. Jerod Weinman, Dr. Sam Rebelsky, Dr. Urusula Wolz, Dr. Katie Walden, Megan Adams, Dr. Erik Simpson, Dr. Mike Guenther, and Dr. Ryan Cordell.