PFS! Computer Science

Course Description and Policies

Course Description

The Partnership for Success! Introduction to Computer Science course provides students with a range of experiences involved with computers, computational thinking, programming, and technology and culture. The course is primarily designed for students with little or no formal instruction in computer programming. Topics of study include using a computer to organize information, using JavaScript to write computer programs, using HTML and CSS to create static and dynamic websites, and a series of conversations around some of the legal, social, and ethical issues associated with the use of technology. Some years the course includes computation-related subjects such as the use of spreadsheets.

Assignments include presentations of material, programming exercises, course readings, and projects.

General course information

The Introduction to Computer Science is a five-week course designed to introduce students to the fundamentals of computers, computational thinking, and computer programming. It is a survey course that covers a wide variety of topics, all them centered around the subjects of computers and their use. The course content is developed through a series of presentations, conversations, demonstrations, and activities, with daily opportunities for students to demonstrate their progress through the curriculum, most of them involving use of a computer. A primary reference is the course website which includes computer-based and smartphone-based access to materials and assignments.

Hardware used in this course

In this class you'll be working on a MacBook Pro running Linux, and that machine will be available to you in class. The work we do in here can be continued at home (if you wish) on a Chromebook, iPad, or any laptop running Apple's macOS, Microsoft's Windows, or Linux.

We'll be using both replit.com and p5js.org for most our work.

Code of Conduct

The instructor of this course is dedicated to providing a respectful, harassment-free community for everyone. We do not tolerate harassment or bullying of any community member in any form.

A fine line

Hackers, coders, nerds, and geeks, have a counter-culture tradition that celebrates a piratical "us vs. them" mentality. Good-natured teasing and "shenanigans" are all part of the fun when sharing a private joke with friends, but in a classroom, misunderstandings can develop quickly. Be especially sensitive to how your remarks and behavior—perhaps even meant to be helpful but expressed in an agressive, critical, or demeaning way—may be misunderstood.

Harassment includes

Participants asked to stop any harassing or bullying behavior are expected to comply immediately.

If a participant engages in harassing behavior, representatives of the community may take reasonable action they deem appropriate including warning the offender and reporting the behavior to school administrators.

If you are being harassed, notice that someone else is being harassed, or have any other concerns, please act to intercede or ask for help from the instructor or any school teacher or administrator.

This Code of Conduct has been adapted from the one at PyLadies.com and is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported license.

Course policies

Students follow the policies of the Partnership for Success! program. Additionally, students are responsible for maintaining a digital record of the work they do in this course. Strategies for doing this will be discussed in class.

Students are responsible for completing work on time. Any issues with turning in work should be discussed with the instructor as soon as possible.

Grading and evaluation

This course covers a broad range of material, and daily assignments aligned with the material covered assist students in acquiring new concepts as the course progresses. Assignments are manageable, with support materials available in class and online, and feedback for some of the work done in here is nearly instantaneous.

Digital assignments are evaluated for completeness and correctness, and records of student work are available to them on an ongoing basis.

Academic Integrity

In most classes it is understood that for some assignments, students may collaborate with one another. Four lab partners may perform an experiment as a group and share data. A student team may design and present a project together. Students might consult each other to find out how to solve a homework problem. In these cases, collaboration is accepted and even encouraged.

Collaboration is a good thing

The term "collaboration" refers to discussing a problem and sharing ideas on how to solve it. It does not consist of simply copying someone else's work.

In many cases, however, the teacher desires an individual assessment of the student, ie. an answer to the question: "How much progress has the student made in mastering the material?" These assessments, usually in the form of quizzes and tests, are to be performed without assistance from any other sources or students.

There are many examples of cheating:

  1. giving or receiving unauthorized information on tests, examinations, or other work that your teacher doesn't want you to collaborate on
  2. using any unauthorized aids on tests, examinations, or other work (including programming exercises), or
  3. copying someone else's work, in whole or in part, and submitting it unattributed as your own.

Thus, looking at someone else's test paper to copy the answer to a problem, discussing a test problem or sharing its solution with another student, copying test problems or answers and sharing them with another student, stealing a test, stealing the answers to a test, and using notes during a test that have not been expressly allowed by the teacher are all prohibited.

SPECIAL NOTE FOR COMPUTER SCIENCE STUDENTS

While occasionally looking for assistance on the Internet is an important skill, do not copy-paste snippets of code from other sources. The only way to learn how to code is to sit down at the machine and start coding. If you find that it's taking you too long to struggle with the material, ask the instructor or another student for advice, or check the pseudocode that is available for most problems. Time invested in trying to understand how to use certain coding techniques will pay off far more than time spent Googling for random bits of code.

The penalties for cheating vary, depending on the institution, the department, the teacher, and the nature of the infraction. Commonly, a student caught cheating will receive a failing grade on the assignment and be subject to disciplinary action, including suspension and a letter being placed in the student's file. A friend of mine who is a professor states that at her university, there are a total of ten disciplinary actions possible in response to cheating, including: "expulsion, suspension (withdrawal from the University for a given period of time), mark reduction on the assignment or exam, reduction in the final course grade, a grade of F in the course, conduct probation, written reprimand, suspension of any degree already awarded, rescinding any degree already awarded."

Copy-paste is NOT allowed

In your science classes, you use a common lab protocol with the entire class, usually perform labs within a class, and usually share data with at least one other lab partner. When it comes time to report those results, your work is to be completely your own: Your own writing of results, analysis, conclusions, your own calculations, your own percent error, etc. You are allowed to talk to others about your results, and with your lab partner even to talk about your results, confirm your percent error, etc. You should not be "talking and writing at the same time," or copy-pasting results. Your work is your own, and the teacher knows it's not your own by comparing what s/he sees on your paper with what others in the class have done. If the numbers/results are similar, that's as it should be. If the calculations/writing are exactly the same, we know you cheated. It's pretty easy.

In computer science, the temptation to use others' work as a source for your own is often powerful. There are a large number of references readily available on the Internet, and searching for these references is extraordinarily easy. And yet, you mustn't do this!

The purpose of this class is not for you to produce programs. This purpose of this class is for you to learn how to write programs, and you do that, in large part, by developing both your programming and problem-solving abilities. Neither of these are aided, at all, by copy-pasting from code that others have written.

There is a place for copy-pasting in computer science and computer programming, and if you go on to work with computers for a living, you will find yourself using other people's work quite a bit. This class, for the most part, is not about that. This class is about working to develop experience with the fundamental skills of creating algorithms to solve problems.

In introductory physics programs, the professor is not interested in seeing you find answers—the answers to the problems that you're solving are already known! The professor is interested in seeing you develop the problem-solving skills that can be used to produce the answers. Learning how to "think physics" is what those classes are about.

And learning how to write programs is what this class is about.

So... don't copy-paste in here. It's against the rules, and it is of no use in helping you learn programming. Despite my efforts to discourage you from this habit, you may find yourself tempted anyway. Don't. Copy-pasting is considered cheating—"academic dishonesty"—and is treated as such, with the accompanying consequences: zero on the assignment, meetings with the deans/parents, a letter in your file, etc. You should know that it's enormously easy for me to identify when you've copy-pasted. I employ tools that compare your work with that of other students in the class, and compare your programs with those available online.

Don't do it.