CS 141: Introduction to computer science

Winter 2024

Professors:
David Bunde, SMC E-203, 341-7479, dbunde@knox.edu
Office hours: Whenever my office door is open; email for an appointment.

Michael Gerten, SMC E-206, 341-7867, mgerten@knox.edu
Office hours: Whenever my office door is open; email for an appointment.

Teaching Assistants:
NameEmailLab periodOffice hours
Cole Andrews acandrews@knox.edu 5th Monday during 4th in the SMC library
Fazil Kagdi fkagdi@knox.edu 6th Sat 1-2pm, SMC libary
Tim Lorenz tjlorenz@knox.edu 6th Mon 7-8pm, SMC library
Eita Ueda eueda@knox.edu 5th Tues 4-5pm, under the whale

Website: http://courses.knox.edu/cs141

Course overview

This course teaches problem solving on a computer. We will be using the Java programming language, but the point of the class is not just to learn Java. Rather, you are learning how to express what you want the computer to do, with Java being the specific language you’re using. Our goal is to teach programming as a tool for use in Computer Science or your own field.

Meetings

There are two sections of the lecture for this course and two sections of the lab. Prof. Bunde teaches the sections during 5th period (1:20-2:30), lecture on MWF in SMC E-117 and lab on Tuesday in the Stellyes lab (SMC E-016). Prof. Gerten teaches the sections during 6th period (2:40-3:50), lecture on MWF in SMC A-203 and lab on Tuesday in the Stellyes lab (SMC E-016) You do not need to have the same professor for lecture and lab; we will endeavor to keep the sections synchronized.

We will have in-class exams on 1/26 and 2/19.

Resources

This class does not have a traditional textbook. We are experimenting with using an online textbook from zyBooks. As you read, you'll be completing exercises to illustrate the material and get you your first practice with it.

You can get access to the book by entering code KNOXCS141Winter2024 at https://learn.zybooks.com (create an account if you don't already have one). The cost is $65. If the money is an issue, select "Have payment questions?" on that page and you can defer payment for up to 30 days. We will also be letting the bookstore know about the book so you can pay through them.

You'll also need to get a Clicker (i>clicker+; available at the bookstore or online for this course. This is a radio device that lets you "vote" a multiple-choice answer (A-E). We'll use it as part of the Peer Instruction pedagogy (see below).

We will be using Google Classroom. We will post copies of the slides, assignments, and announcements there. Everyone should have been invited to the class; if we missed you, please send us an email.

We will be programming with BlueJ. This is a programming environment specifically designed for teaching Java. It's free to download; you're encouraged to get it installed during the first week or so of class. (You'll need it for the second lab.)

Peer Instruction

This class will be taught using Peer Instruction, in which the lecture is periodically interrupted with multiple choice questions that you answer and then discuss with your peers. (These questions are graded for participation so don't worry if you can't answer them all.) Peer Instruction has been shown to improve your learning; you learn more by explaining your ideas to others and hearing their explanations than by just listening to me.

To get the benefits of Peer Instruction, you need to actively participate. Attempt to correctly answer the questions. Be sure to explain your reasoning and listen to the reasoning of other students when you're in your group. This can be uncomfortable since you'll have to admit when you don't understand something, but this is an opportunity to get clarifications from your peers.

Succeeding in this class

Expect to work for this class. This is one of three classes that make up a full-time schedule so you should spend ~13 1/3 hours/week on it.

Be sure to keep up with the reading and assignments. Come to class and participate fully in the activities. Ask questions when there is something that you don't understand. After that, the best way to spend your time on the course is to practice. Write little programs that use the concepts we've been learning about in class. This includes redoing problems we do in class or you do for homework; just erase your solution and see if you can recreate it. You don't truly understand what we're doing in class unless you can apply it yourself. The key thing is that you spend time thinking about and writing code. (Remember how long it took you to become a proficient writer. Learning to program is every bit as much a process and requires every bit as much practice.)

Rough schedule

The following is a rough schedule of what we'll cover each week. It is likely to be tweaked during the term so don't expect this to be our exact schedule.

Week 1: Introduction to code. Conditionals and booleans. While loops.

Week 2: For loops. Reference types. Strings.

Week 3: Input and output. Static methods.

Week 4: Functions. Exam 1.

Week 5: Arrays.

Week 6: 2D arrays.

Week 7: Creating our own classes.

Week 8: Inheritance. Graphical User Interfaces. Exam 2.

Week 9: Recursion.

Week 10: Lists. Review.

Assignments

Late work

Due dates for assignments from the text are strictly enforced since the main goal of these assignments is to prepare you for class. Our exams and the final will be taken during scheduled periods so they also have firm deadlines.

Lab assignments are officially due Tuesday at the beginning of your lab period. Everyone has an automatic extension for the rest of that day (until Tuesday at midnight). We may release solutions or discuss them in class at any time after the automatic extension, after which those problems cannot be submitted. Otherwise, assignments submitted up to 24 hours after the automatic extension incurs a 10% penalty and work submitted after that incurs a 20% penalty.

In addition, you get two "late days" that may be used on lab assignments during the term. (Note that late days CANNOT be used for exams or reading assignments.) Each allows you to reduce the late penalty on an assignment by 10%. They can be used for the same assignment (completely removing the penalty on that assignment) or different assignments (reducing the penalty by 10% on each).

Individual extensions beyond the automatic extensions and these two late days may be granted, but require extraordinary circumstances.

Absences

Regular attendance is expected. If you miss class for any reason, you are still responsible for that day's material so you need to get notes from someone. It is possible to make up exams and get excused from the day's clicker questions if you notify the professor of your section ahead of time and have a valid reason, such as significant illness (doctor's verification may be required) or are on college business (athletic competition or class field trip).

Policy on Collaboration

Reading assignments and exams in this class must be completed individually. You are allowed to talk with others about the homework and are encouraged to work together in small groups (2-3 students). Even when working together you must write your submission yourself and understand it completely. In addition, you must do two things:

  1. First of all, you must acknowledge all collaborators by adding a note to your solution describing who helped you and how. Get in the habit of doing this as soon as you talk.
  2. Secondly, you must avoid "collaborations" where one person gives the solution to another. When working together, each person should contribute ideas. If one person is helping another, the helper can explain concepts and guide the "helpee" toward a solution, but cannot tell them how to solve the problem. In all collaborations, everyone is expected to understand the entire solution and each individual must write up their solution separately.

The same policies apply to getting help from inanimate sources. If you use the web or a book, you must cite this source. As in collaborations with another person, you are expected to write your own solution; do not copy text or code from any source. You may look at other sources for examples or conceptual help, but not actual solutions. Some problems assigned for this class may have been used previously, but you are expected not to deliberately seek solutions. (If you come across one accidentally, let us know and we will give you a modified assignment.)

Please feel free to contact us if you have any questions about this policy.

Academic accommodations

Students who qualify for accommodations in this class are encouraged to contact Stephanie Grimes (sgrimes@knox.edu) in the Office of Disability Support Services as soon as possible to ensure that such accommodations are implemented in a timely fashion.

Extra credit

We will give extra credit several times this term for attending colloquium talks sponsored by the CS department (possibly other departments, depending on the talk) and submitting a short writeup about the talk. This offer applies to any qualifying talk for which you are not otherwise getting credit; you should not submit a writeup for this class and also for another class.

In order to get credit for a talk, submit a quick writeup (~1 page) to Prof. Bunde (dbunde@knox.edu) within a week or so of the talk (slight extensions possible, but you need to remember the talk...). DO NOT just summarize the talk; we want to hear what you thought about it or how it relates to other things you've seen/heard. While your writeup doesn't have to be brilliant prose, we do expect you to write thoughtfully and correctly and may return your writeup for revisions before giving you credit.

Grading

At the end of the term, all of your work will combined into an overall course percentage based on the following weights:
Textbook participation activities10%
Textbook challenge activities10%
Clicker questions10%
Lab assignments and Homework25%
Exams15% each
Final15%

The range of scores mapping to each grade will be determined at the end of the term. The mapping will not be stricter than the "standard" 90/80/70/60 and may be more generous. In general, spend your time learning the material rather than worrying about your grade, but feel free to talk with us if you are concerned about it.