UMaine COS 140: Foundations of Computer Science

Syllabus

(Get PDF Version)


(A word about syllabi: read them! A syllabus is essentially a contract between you and the professor, letting you know what is expected of you in order to learn the material and earn a good grade in the course. You should read this entire syllabus during the first week of classes and keep it handy for reference later on.)

This course is an unusual, possibly even unique, introduction to computer science—so unusual that we had to write our own textbook for it! Usually, introductory computer science courses are programming courses. Although programming is an essential skill for a computer scientist, computer science is much broader (and much more intellectually rich and exciting) than programming. Consequently, students at many universities can easily complete the first year or more of a computer science program and have little idea of what their major will entail—or whether or not they have found a good match.

Several of us in the School of Computing and Information Science (then the Department of Computer Science) believed it was important to develop an introductory computer science course that would truly introduce the field; that is this course. Programming will not be taught, nor is programming a prerequisite for this course. Instead, this semester we will look at several fundamental areas of computer science.

In addition to introducing you to the field, we would like to introduce you to what the major will be like. So, instead of just giving a high-level survey of each area studied, we will after a brief overview of each area have you study a selection of techniques in depth. This should give you an idea of the types of problems computer scientists (and computer science students) address and how they approach solving them.

We will ask a lot of you in terms of work outside of class. (As is usual for a college course, expect an average of 6 hours of work outside of class each week if you are an average student who would like to get a C in the course.) However, this reflects the workload in other courses in the computer science major—and we are hoping that you will be engaged enough by the course material that the work will be exciting.

This year, we will have, in addition to two teaching assistants (TAs), two Maine Learning Associates (MLAs). These computer science students have already had this course and already know a great deal about the major. We will also be shifting to a more active-learning format for the course, with the MLAs and TAs helping facilitate small-group discussion and problem solving.

I am excited about having the opportunity to teach this course, and I look forward to us all to have a fun and intellectually challenging semester!

Objectives

Students will be introduced to the field of computer science by becoming familiar with techniques from several areas in the field. Specifically, students will:

  • Understand what types of problems are addressed by computer scientists
  • Learn how computer scientists approach problems
  • Begin building the skills, other than programming, that computer scientists bring to their work
  • Gain an in-depth understanding of the techniques introduced in class
  • Begin to apply those techniques to new problems
  • Be able to extend the concepts the techniques are based on to understand different techniques
  • Better understand what makes a computer scientist
  • Assess the strength of the match between the student and the computer science major

The target student outcomes for this course are that the student will be able to:

  • Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions.
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of computer science.
  • Communicate effectively in a variety of professional contexts.
  • Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  • Apply computer science theory and software development fundamentals to produce computing-based solutions.

Active learning

Active learning, in which students are asked to actively discuss the material being presented and answer questions during class, has been shown repeatedly to provide better learning outcomes than traditional lecture-based classes. It is somewhat difficult to do in a class as large as this one, but we will do the best we can, with the aid of the TopHat software. Individual questions and polls will be interspersed with the lecture, some for credit and some not. Pair and small-group activities will also be assigned during class, again some for credit and some not. Due to the limitations of the software, we may assign students to groups and ask the groups to always sit together to facilitate easy discussion.

Reading the textbook is the first step toward understanding the material, and given the course’s emphasis on active learning in class, it is important that the assigned reading should be done before the class for which it is assigned. To help ensure this, as well as to make your reading itself interactive, the textbook, which must be read using TopHat, contains exercises that have to be done as you read and that are due before the class for which the reading is assigned. These exercises are for credit, even if they are not graded for correctness (e.g., a discussion question).

It is important to see the course(indeed, any course) not just as classes + homework, but rather as a structure set up by the teaching team and followed by you that leads you to learn the material. Classes and traditional homework are just two pieces of that structure. The recitation sections are another piece. In addition, there will often be assigned group work to be done outside of class, via either in-person meetings or virtual meetings (e.g., using Blackboard groupwork facilities or conference software such as Zoom). Office and lab hours, as well as any study groups, are the remaining pieces of the structure, along with your own individual study time.

Communication

During this course, several means of communication will be used:

  • Course website: This is where static information about the course will be posted, such as the syllabus, etc. Also, the schedule for classes will be posted there, though it may change during the semester.
  • Blackboard: Course announcements will be posted here, as will grades. Some discussion forums or wikis may be created here as well.
  • TopHat: We will use this for outside-class assignments and discussions, posting slides and other course material, and presenting material and asking questions during lectures. This is where the textbook resides as well.
  • Email: You can contact me, the TAs, or the MLAs via email. We will also use email to contact you. The email address we will use for you is the one Mainestreet has for you. Thus, you need to check your Mainestreet account very soon to make sure that the email address it has for you is one at which you actually receive and check email (or that it forwards to such an address).

Attendance

Students are expected to attend all classes and will be responsible for material covered during classes or portions of classes which they miss. This material includes both course content and announcements that may be made during class. Asking the instructor or fellow classmates for missed material is a good place to start, and I’m sure we will all do our best to let you know what went on in class. However, the ultimate responsibility lies with the student who missed the class, not with those whom he or she has asked for missed material.

Attendance will be taken via the TopHat software, which we will discuss further during the first class. Class attendance will be a part of your grade. Questions will be asked during class for credit as well.

Attending class also gives you an opportunity to ask questions about technical material, to have your voice heard in discussions about policies and procedures for the class, and to meet other students to form study groups for outside of class time.

If you know ahead of time that you will miss a class when homework is due, you must turn the homework in before the class or have someone else bring it to class for you. If you must miss a class because of a real emergency, you should turn in the homework as soon as possible, but you are on your honor not to look at or discuss the solutions with anyone before your homework is turned in. If you miss turning in more than one homework assignment due to an emergency, special arrangements must be made.

If you miss class on the day of an exam, you must contact me as soon as possible. If you have a legitimate excuse, I may allow you to make up the exam. If you have transportation problems or oversleep, you should come to class immediately to begin taking the exam. If you do not arrive before the end of class, you should come to my office immediately.

NOTE: Homework is usually assigned for each class and unless otherwise noted will be due one week + one class after assigned. This means that assignments overlap and most of the time you will have multiple assignments to be worked on at once. Attention to time management and scheduling is critical to ensure you get everything done on time.

Recitation

You must sign up for one of the recitation sections that accompany this course. Recitations will be used for group learning activities and asking the TAss and MLAs questions, discussing assignments and course material, and getting help on homework. As some instructions and other information may be given out in recitation that are not given in lecture, you must attend recitation unless the TAs or I say otherwise. Even if you don’t have questions, others may ask questions that help you to understand the material even better—and your answers to others’ questions will be valuable too.

Grading

  • Exams: 60% total
    • 2 preliminary exams (“prelims”): 15% for Prelim I, 20% for Prelim II
    • Final exam: 25%
  • Assignments: 35% total
    • Textbook questions: 5%
    • In-class activities: 5%
    • Homework: 25%
  • Attendance: 5%

Course grades will be assigned using the usual grading scale (90-100 = A, 80-89 = B, 70-79 = C, 60-69 = D, and anything < 60 = F), though there can be extenuating circumstances that cause deviations from this. However, this is only done when it will raise the student’s grade.

NOTE: If you are a Computer Science major, the School requires that you attain a C or better (not a C\text{\,–}!) in this course in order to graduate. You cannot achieve this without turning in your homework and participating in in-class questions and discussion!

In this class, the letter grades have the usual meaning.1 Earning an “A” means that you have done top-quality work and have excelled in meeting most course objectives. Achieving a “B” means that you have met the course objectives and have excelled in some way, for example, going beyond what is required for a “C” or exhibiting superior insight. Receiving a “C” means that you have successfully met the course objectives; a “C” is a respectable grade for an undergraduate in any course. A “D” means that you have passed, but at a low level. It should serve as a warning to you that you have not done as well as expected, that you may have trouble in computer science courses in the future, and that you are not making satisfactory progress toward your degree. An “F” means that you have not met the course objectives and have failed the course. I assign (+) and (-) grades as well to give a finer-grained evaluation of your work.

Getting help

If you are having any trouble at all with the material, please get help. The recitations are great places to get help, but if that doesn’t work out, then I am available during office hours or by appointment, as is the TAs. In addition, the MLAs will have some times that they are available, either in the lab on the first floor of Boardman Hall or online. We are more than happy to answer your questions and explain things to you that you may not understand. We understand that for many students in the course, this may be the hardest material you have covered, certainly harder than high school. Don’t be embarrassed to ask for help!

The easiest way to contact us is by email, but it is not the best way when you need help with the material—instead, email is great for setting up a face-to-face chat with the TAs or me. Email is best when you want to give us a message that requires no response or a short response, or when you have a straightforward question requiring a short response. However, if you have a question about the content of the course, a homework problem, or some other technical question, you should come to office or lab hours. Even if you think it is a “quick question”, it usually requires a face-to-face conversation to best answer it. Often a conversation will be quick, where email will just be confusing. So, please come to office or lab hours with these sorts of questions. Note that if you cannot make it to my or the TA’s office during office hours, you can make an appointment for some other time.

Consider starting or joining a study group, too. Studying in a group is a great way to learn the material. Not only will you get help from others, but teaching others the material they may not understand is a wonderful way to solidify your own understanding.

In addition, although unfortunately it is unlikely, the Tutor Program (104 Dunn Hall, 581-2351) may have tutors available for this class. It has been the students’ experience that the tutors are very good. If you think you need tutoring, you should contact the Tutor Program as soon as possible—they base whether or not to have tutors for a class on how many students have contacted them!

In the past, we have sometimes managed to find previous 140 students who the School has hired to be drop-in tutors. I will let you know if we are able to do that this semester.

Finally, some of the lab monitors in the Boardman first-floor lab may be available and able to answer your questions.

Late policy

Homework is due at the end of the class on the due date unless otherwise announced. Unless otherwise announced, homework is to be turned in in hardcopy form—either printed or legibly hand-written. (Some homework may be assigned via TopHat.)

If you miss class, make sure that you turn your homework in before class; at worst, send an electronic copy of the homework (even if it is just a photograph of the homework) to the TAs before the homework is due, then turn in the hardcopy later. Even if you feel you could do better, make sure that you turn in whatever you have completed for your homework assignment. If there is some compelling reason for your homework being late, you should talk to us about it as soon as possible ahead of time.

We may penalize late homework 10% per day or portion of a day it is late—that includes later the same day after the end of class. We reserve the right not to accept homework for a grade that is 7 or more days late.

Homework, group work, and cheating

Different courses are taught in different ways, and different instructors try to achieve different things with homework. Thus, the policy for homework in this course may be quite different from the policy in another course (even a course with the same instructor). If an instructor does not tell you his or her policy, you should always ask before you work with others.

The homework in this class is meant to give you an opportunity to wrestle with the material on specific problems so that you can gain a better understanding. To reach this end, we encourage students to discuss the homework with each other to help understand the material. However, this does not mean that homework can be treated as a group assignment! Each student is expected to work on every problem on the assignment and to submit his or her own original work on the homework assignments unless told otherwise. In particular, you cannot split up the assignment and have different people work on different problems.

Working in groups to better understand the material is encouraged for this course. However, cheating will not be tolerated. It is cheating to try to get credit for work that you did not actively participate in or to not give credit to others who also contributed to that work. We realize that it is unavoidable that group discussion will lead to answers that may be very similar. However, we expect the answers not to be identical or even substantially so (unless the answer is trivial, of course, e.g., a number).

If you feel that any part of your assignment has been derived substantially from the ideas or work of others, then you need to clearly indicate this on your assignment and be prepared not to receive credit for that portion. Otherwise, it will be considered plagiarism.

Cheating or any other sort of violations of academic integrity will be dealt with severely. The University’s syllabus statement about academic honesty is:

Academic honesty is very important. It is dishonest to cheat on exams, to copy term papers, to submit papers written by another person, to fake experimental results, or to copy or reword parts of books or articles into your own papers without appropriately citing the source. Students committing or aiding in any of these violations may be given failing grades for an assignment or for an entire course, at the discretion of the instructor. In addition to any academic action taken by an instructor, these violations are also subject to action under the University of Maine Student Conduct Code. The maximum possible sanction under the student conduct code is dismissal from the University.

Professor absences

Occasionally, I may have to miss class, for example, to present research at a conference, etc. If this should happen, then either class will be canceled, one of the TAss or another professor will teach that day, I will provide online versions of the lecture(s), or I will, if needed, schedule make-up classes.

UMaine policy statements

Academic honesty statement

Academic honesty is very important. It is dishonest to cheat on exams, to copy term papers, to submit papers written by another person, to fake experimental results, or to copy or reword parts of books or articles into your own papers without appropriately citing the source. Students committing or aiding in any of these violations may be given failing grades for an assignment or for an entire course, at the discretion of the instructor. In addition to any academic action taken by an instructor, these violations are also subject to action under the University of Maine Student Conduct Code. The maximum possible sanction under the student conduct code is dismissal from the University.

Students accessibility services statement

If you have a disability for which you may be requesting an accommodation, please contact Student Accessibility Services, 121 East Annex, 581.2319, as early as possible in the term. Students who have already been approved for accommodations by SAS and have a current accommodation letter should meet with me privately as soon as possible.

Course schedule disclaimer (disruption clause)

In the event of an extended disruption of normal classroom activities, the format for this course may be modified to enable its completion within its programmed time frame. In that event, you will be provided an addendum to the syllabus that will supersede this version.

Observance of religious holidays/events

The University of Maine recognizes that when students are observing significant religious holidays, some may be unable to attend classes or labs, study, take tests, or work on other assignments. If they provide adequate notice (at least one week and longer if at all possible), these students are allowed to make up course requirements as long as this effort does not create an unreasonable burden upon the instructor, department or University. At the discretion of the instructor, such coursework could be due before or after the examination or assignment. No adverse or prejudicial effects shall result to a student’s grade for the examination, study, or course requirement on the day of religious observance. The student shall not be marked absent from the class due to observing a significant religious holiday. In the case of an internship or clinical, students should refer to the applicable policy in place by the employer or site.

Sexual violence/discrimination reporting

The University of Maine is committed to making campus a safe place for students. Because of this commitment, if you tell a teacher about an experience of sexual assault, sexual harassment, stalking, relationship abuse (dating violence and domestic violence), sexual misconduct or any form of gender discrimination involving members of the campus, your teacher is required to report this information to the campus Office of Sexual Assault & Violence Prevention or the Office of Equal Opportunity.

If you want to talk in confidence to someone about an experience of sexual discrimination, please contact these resources:

For confidential resources on campus: Counseling Center: 207-581-1392 or Cutler Health Center: 207-581-4000.

For confidential resources off campus: Rape Response Services: 1-800-310-0000 or Partners for Peace: 1-800-863-9909.

Other resources: The resources listed below can offer support but may have to report the incident to others who can help:

For support services on campus: Office of Sexual Assault & Violence Prevention: 207-581-1406, Office of Community Standards: 207-581-1409, University of Maine Police: 207-581-4040 or 911. Or see the OSAVP website for a complete list of services at www.umaine.edu/osavp.