Link Search Menu Expand Document

Syllabus

Table of contents

  1. Overview
  2. Course Meetings
  3. Primary Course Components
    1. Grades
    2. Assignments
    3. Exams
    4. Resources
    5. Academic Integrity
    6. Material Attribution

Overview

Welcome to CS151! We’re really excited to have you on board with us this Fall for a gentle, but thorough introduction to computer science. The course is designed for students with no formal exposure to computer science or programming. The goal is to provide an introduction to computer science that will prepare students to either take further computer science courses, or use computer science in their field of study.

By the end of the course, students will learn

  • Variables, Expressions, Types
  • Input/Output
  • Logic and Control Flow
  • Loops
  • Methods
  • Decomposition
  • Algorithms
  • Objects and Classes
  • Computational problem solving

Course Meetings

Lectures, labs, and office hours are the main ways in which you will interact with your professor and TAs. You can see the weekly schedule of course meetings on the course schedule page.

Primary Course Components

  • Concept Videos: Concept videos will introduce material and give you and overview of what is happening in labs and lecture. Each concept video will be followed with self-check questions that are not graded, but will help you with the concept check quizzes during lecture. Concept videos must be watched before their corresponding lecture section.

  • Lecture Sections: Discussion sections are where you will delve into the content more deeply with interactive examples, such as “pen-and-paper” worksheets, computer science unplugged activities, pair/group programming, and code along problems. This is where you will develop computational skills needed to understand the basics of programming.

  • Lab Sections: Labs are the primary place you will learn to program. To earn full credit for a lab, it must be completed, submitted, and checked off. Checkoff can be done either in lab or in office hours. If you have a special circumstance where you are unable to check-off a lab, please email laralinmcc@gmail.com. Labs can be completed individually or in pairs. Each lab will be due one week after the lab is assigned. For example, a lab assigned on a Tuesday will be due the following Tuesday. There will be at least 12 total labs — but only your top 10 lab scores will count towards your grade. Each lab is worth 4 points. Half a point will be deducted for each day that a lab is checked off late; however, a maximum of 2 points will be deducted for any given lab.

  • Office Hours: During office hours, you can meet with a TA or Lara for help with course material, assignments, or bigger picture questions. We will hold a mixture of in-person and virtual office hours at a wide variety of times. Virtual office hours will be held on Google Meet, the link can be found at the course schedule page. In-person office hours will be held in Lara’s office. You are welcome to come for any reason, including course material questions, lecture clarifications, career path discussions, or just to hang out.

  • Project and Homework Description: These assignments will be one of the best ways for you to apply what you have learned in lecture, lab and discussion. These will be a bit more time intensive than the other assignments and will require you to be caught up on the other components of the class. Homework will tend to be a bit less difficult and time intensive, while projects will take a bit longer and require more work on your part. Note that you may use 6 slip days (explained in more detail below) total this semester on assignments in this category.

As a course, we commit to making sure no student fails the class due to lack of class resources, so if you are behind or confused, please reach out for help. The course staff will make themselves as available as possible to help you.

Grades

The class will not be curved. Instead, your final grade will be based on buckets of your overall score in the class that will be decided at the end of the semester based on the difficulty of the exams, quizzes, projects, labs, and homework.

Your overall grade will be calculated using the following relative weights:

Assignment Type# of AssignmentsNumber DroppedPointsWeight in Overall Grade
Concept Checks / Attendance244408%
Labs12210025%
Quest21204%
Midterm105010%
Final Exam106012%
Homework 01051%
Project 110255%
Project 210255%
Project 310255%
Project 410255%
Research Paper10255%
Final Project107515%

Assignments

These details are subject to change during the semester, however the current plan of record is the following:

  • ~24 Concept Checks - Held at the beginning of lecture section. Graded on correctness.
  • 12 Labs - 1x per week. Work w/ partners, submit individually.
  • 4 Programming Projects - spread throughout the semester. Work individually, submit individually.
  • 1 Final Projects - Midterm Project and Final Project. Work individually or with a partner.

Assignments will be due at 11:59pm, with a 10% penalty per each day that the assignment is late up to 5 days total.

  • Slip Days: Each student will receive 6 slip days, to be used for homeworks and projects only. Each slip day allows you to extend the deadline period by one day with no penalty. For example, if a project is due Friday at 11:59 PM PT, you may turn it in without penalty up until Saturday at 11:59 PM PT by using one slip day. Note: You can use a maximum of three slip days per project.

  • Late Submissions: Late submissions for projects will be handled on a case-by-case basis. If you are out of slip days for a project but cannot make a deadline, please contact laralinmcc@gmail.com figure out an extension. If you do not reach out to anyone in advance, we reserve the right to mark the submission down by 10% for each day that it is late.

Exams

Instead of one midterm and one final exam, this course will have 3 exams, spaced evenly across the semester, with the third exam happening during finals week. Exam 1 will be on Wednesday, September 22nd. Exam 2 is will be on Monday, November 1st. Exam 3 will take place during finals week.

Resources

This course website, cs151.org, will be your one-stop resource for the syllabus, schedule, lecture videos, and assignment links. Additionally, we will be using the following software.

  • Edstem: You will get a link to sign up for this tool when we begin class. We will use Edstem for almost all class content. Labs, concept videos, project, and all of the code you will write will be with Edstem. Note that Edstem may display a “grade” for you, but the official one is in Blackboard.

  • Gradescope: You will automatically be enrolled in a Gradescope course. Your exam grades will be released on Gradescope and you’ll be able to view the complete grading rubric.

  • Blackboard: Your official class midterm and final grades will be published in Blackboard. You should already have a Blackboard account. Get in touch with your advisor if you can’t access the course on Blackboard. Other than occasionally syncing grades to Blackboard, we will not be using Blackboard.

Academic Integrity

Let’s get honest about being honest. It is truly a disappointment to catch students cheating. All we really want is for you to learn the material and if the class is stressful enough that you feel the need to cheat, we have failed as instructors. If you are feeling stressed out in the course, please tell us. We will do what we can to help you. Know that Edstem has a very good plagiarism detector.

Maintaining academic integrity is a crucial part of your learning experience, as cheating prevents us as instructors from understanding where our model of instruction isn’t working. We understand that academics can be stressful and that it might be tempting to cheat; however, there are ways to meet your goals that don’t require academically dishonest means. Here, we will lay out our academic integrity policies and some good practices that will help you avoid academic dishonesty and improve your overall mastery of the material.

What constitutes cheating?

  • Copying part or all of another student’s project code with the exception of your partner(s) assuming that the project you are working on allows for partnered work. This includes students from previous semesters (we still have their code and will know if you do this).
  • Sharing or receiving the exact steps used to solve a project problem (even if code is not explicitly sent).
  • Copying part or all of another student’s exam answers.
  • Collaborating with another student when taking the quest, midterm, or final exams by receiving or giving assistance of any kind.
  • Copying code from online sources without crediting them

What constitutes collaboration?

  • Asking instead of telling. If you’re working with your friends and one of them is stuck on a part of an assignment, try to ask them guiding questions instead of telling them the answer.
  • Keeping things conceptual! It’s more beneficial to your learning if you come up with a solution yourself, rather than having it told to you. This also applies if you are helping someone else. We highly encourage collaboration, so let’s define what that means. Discussing approaches to problems is fine (in fact, we actively encourage it), as long as you eventually arrive at a good enough understanding of the problem that you are able to code the solution completely by yourself. You should not allow concerns about cheating to get in the way of discussing the class material with your classmates. It is okay if you have received some help with ideas along the way (but not a fully worked out solution).

What happens if you cheat? We will set up a meeting with you to discuss the situation and determine the consequences.

Material Attribution

We’d like to thank UC Berkeley’s CS10: The Beauty and Joy of Computing and CS61A: Structure and Interpretation of Computer Programs, from which this course borrows high-level topics and organization.