课程信息
本文件概述了加州大学伯克利分校教授的本课程的政策。
基本背景信息
这些课程政策很长。除了合作政策之外,我们并不期望你一次性阅读全部内容。但是,希望你能在本文档的某个地方找到任何后勤问题的答案。
欢迎来到 计算机科学 61B
CS 61 系列是计算机科学的入门课程,特别强调从程序员的角度看软件和机器。CS 61A 涵盖了高级的问题解决方法,为你提供了多种组织编程问题解决方案的方式,包括函数的组合、 对象的集合或规则的集合。在 CS 61B 中,我们转向更详细(从某种程度上说,更基础) 的编程层次,特别关注编写程序的设计和运行程序的效率。
先修要求
本课程假设你已经学过 CS 61A、CS 88 或 E7,或具有修过这些课程之一的同等背景知识。本课程 在很大程度上建立在你已经修过 CS 61A 的假设之上。CS 88 和 E7 的学生可能会发现 课程开始时有些吃力,特别是在面向对象编程方面。我们假设你入学时没有 Java 经验, 但我们将很快掌握基本 Java 语法。
如果你已有 Java 经验,很好!我们希望你能帮助 其他同学完成讨论、实验和我们的课程论坛,特别是在 开始几周大家都在学习 Java 的时候。
替代课程
这是一门关于数据结构和编程方法的课程。由于不使用语言很难教授编程, 因此这门课恰好也教 Java。但是,这并不是一门关于 Java 的详尽课程, 也不是关于创建 Android 应用程序、用户界面、图形或任何有趣内容的课程。
你们中的一些人可能已经修过数据结构课程,只是想学习 Java 或 C++。对你来说, 自学可能是更好的选择。
最后,1 学分的自学课程 CS 47B 面向"在 61B 中有足够部分学分"的学生, 允许他们(在导师许可的情况下)完成 CS 61B 课程要求而不必参加完整课程。47B 指南在 此链接 。
心理健康与健康
作为一名学生,你可能会遇到各种可能造成学习障碍的问题,例如人际关系紧张、焦虑加剧、酗酒/吸毒问题、抑郁、注意力难以集中和/或缺乏动力。这些心理健康问题或压力事件可能导致学业表现下降或降低学生参与日常活动的能力。加州大学提供服务来帮助你解决这些以及你可能遇到的其他问题。如果你或你认识的人正遭受上述任何情况,请考虑利用校园内提供的保密心理健康服务。我们鼓励你联系咨询中心寻求支持。校园辅导员或下班后临床医生全天候 24/7 可用。
全国自杀预防生命线是一个 24 小时热线,任何学生或教职员工都可以拨打与人谈论自杀问题:(800) 273-TALK (8255)。
更多资源可以在我们的 资源标签页 中找到。
如果你正在经历影响心理健康的特殊情况,并希望与课程工作人员会面以制定课程内的特殊照顾安排,或者希望获得更多资源,你可以 在此处 与我们预约会议。
特殊照顾
加州大学伯克利分校致力于创建一个满足其多元化学生群体(包括残疾学生)需求的学习环境。如果你预计或在本课程中遇到任何学习障碍,请随时与讲师讨论你的关切。
如果你有残疾,或认为自己可能有残疾,你可以与残疾学生项目(DSP)合作申请官方特殊照顾。残疾学生项目(DSP)是负责与学生本人及其讲师合作批准与残疾相关的学术特殊照顾的校园办公室。你可以在此处找到有关 DSP 的更多信息,包括联系信息和申请流程。如果你已经通过 DSP 获得了特殊照顾批准,或正在走流程,请预约与课程工作人员会面,以便我们制定实施方案。
课程形式
讲座
讲座安排在周一、周三和周五下午 1 点至 2 点,地点为 Dwinelle 155。由于教室不够大,无法容纳所有注册学生亲自参加,讲座将通过 Zoom 同时进行网络直播。
我们将在内容日程上发布讲座录像以及 Josh Hug 的 2023 年春季网络视频。两者内容大致相同。
讨论课
讨论课为期 1 小时,内容包括复习上周学习材料的练习题。在讨论课上,助教将帮助学生复习材料并解答练习题中的问题。请注意,你的助教可能不会覆盖练习题的所有问题,这是有意的——你可以在之后通过我们发布的答案解析来复习剩余的题目。
讨论课将主要以线下形式进行,但我们可能会在 Zoom 上提供有限的远程选项。
有关每个 section 负责人员的信息可以在工作人员页面上找到。本学期我们不会进行 section 报名。
所有 section 和讲座的日程表可以在课程网站主页的底部找到。
讨论课出勤不是强制性的,但你会因出勤获得 进度积分 。
本学期我们有三 (3) 种不同类型的讨论课:
Bridge 复习课(2小时)
你希望在深入讨论练习题之前更加强调概念吗?如果是这样,我们的 bridge 讨论课可能适合你!我们一些优秀的助教将主持一个两小时的讨论课,专门为那些对本周材料不太熟悉的同学设计。这是一个很好的方式来更加熟悉主题,并在 section 期间获得更加个性化的关注。bridge 讨论课期间涵盖的材料和难度与 regular 讨论课相同,我们会延长迷你讲座来加强概念理解。
Regular (1小时)
这个 section 最适合已经跟上讲座进度并准备解决一些中等难度题目的同学。如果你不确定参加哪个,我们推荐参加这个 section。
考试难度(1小时)
Exam-level sections 是节奏更快的 section,包含更困难题目的不同练习题。这些 section 的目标是让你熟悉 exam 级别的问题和解决问题的策略。通常会更少地关注复习/迷你讲座,而将更多时间用于解题。
实验课
实验课为时 2 小时,包含学生提交计分的编程作业。在这些 section 中,助教将介绍作业、复习相关材料并回答学生的问题。
实验课将主要以线下形式进行,但我们可能会在 Zoom 上提供有限的远程选项。
实验课出勤不是强制的,但有一个例外——Project 3 Checkoffs。这个作业需要由助教检查通过才能获得学分。
有关每个 section 负责人员的信息可以在工作人员页面上找到。
本学期我们不会有 section 报名。对于强制出勤的实验课:
- Project 3 Checkoffs:将有官方报名渠道,你和你的搭档将展示你们为 Project 3 完成的工作。报名将在课程最后一周前不久开放。
答疑时间
在答疑时间,你可以从我们的工作人员那里获得各种作业、考试准备、后勤事务以及你可能需要的任何建议方面的帮助。我们将同时提供线下和线上答疑时间。你也可以在实验课期间询问与实验无关的问题。
我们将通过 Zoom 进行答疑时间。要了解更多关于 CS 61B 答疑时间如何运作的信息,请阅读我们的 答疑时间指南 。我们将使用在线 答疑排队系统 来跟踪答疑时间的学生。工作人员将始终跳过排队中不遵守我们答疑时间政策的工单。
资源
网站
课程主页 将提供课程信息的一站式服务。课程日程以及所有讲义、作业、实验、常见问题等都将发布在那里。
讨论论坛
我们本学期的讨论论坛将使用 Ed Discussions。对于大多数关于课程的问题,Ed 是提问的正确地方。课程工作人员会定期阅读,所以你会很快得到答案。此外,通过在线发布而不是直接给我们发邮件,其他学生可以通过看到问题和答案而受益。在提问之前别忘了检查 Ed,以防其他人已经发布过了。如果你有关于自己代码的问题,不应该与班级分享,或者你有个人问题,你可以在 Ed 上发布私人帖子,只有讲师和工作人员才能看到。
请阅读我们的 Ed 指南 和 政策 。我们只会回复遵守我们 Ed 使用政策的问题。
工作人员邮箱
电子邮件地址 cs61b@berkeley.edu 将向课程工作人员(讲师和首席助教)发送消息。你可以用它来进行你不想在我们班级论坛上看到的通信。首席助教和讲师都会阅读它,所以你通常会在几天内收到回复。如果你发送的问题具有普遍意义,我们可能会在 Ed 上发布回复(当然,我们会保密个人信息)。如果你有任何需要例外于课程政策的问题(例如医疗紧急情况或导致长期缺勤的突然必要旅行),请联系 cs61b@berkeley.edu 。 请不要就例外事项给讲师或课程工作人员发电子邮件。请发送邮件至 cs61b@berkeley.edu 。
Beacon
我们将使用我们自己定制的学习管理系统 Beacon,而不是使用 bCourses,其网址为 beacon.datastructur.es 。你可以使用 Beacon 来跟踪你的成绩和迟交作业。你也可以 在此处 阅读我们关于 Beacon 的完整指南。
阅读材料
本课程没有指定的必修教材。
有一本由我自己和一大群课程工作人员编写的在线教材。可以在以下网址找到: https://cs61b-2.gitbook.io/cs61b-textbook/ 。 如果你觉得这些笔记不够,你可以考虑参考 Paul Hilfinger 的(免费)Java 参考手册 或 《Head First Java》第二版,作者 Sierra 和 Bates(O'Reilly,2005) 。 这些都不是课程必需的。课程第 5-14 周的 可选 教材是 Wayne 和 Sedgewick 编写的《算法》第四版。
Java 核心语言的官方描述可在以下网址在线获取: Java 语言规范 (Java SE 17 版),作者 James Gosling、Bill Joy、Guy Steele、Gilad Bracha、 Alex Buckley、Daniel Smith 和 Gavin Bierman。它非常全面和精确,但代价是内容相当密集和技术性强。你会发现官方的 Java 17 文档 也很有用
软件
本课程的官方编程环境和文本编辑器是名为 IntelliJ 的集成开发环境(IDE)。虽然我们不会强制使用 IntelliJ,但我们强烈推荐它。除了 IntelliJ,我们不会正式支持任何其他编辑或编程环境。
本学期,我们将使用 Java 17 或更高版本(因此至少需要 IntelliJ 2021.2.1,但我们推荐 IntelliJ 2022.3 或 IntelliJ 2023.2)。
你可以在任何 Windows、Mac OS X 或 Linux 电脑上做任何你想做的工作。你将在实验课 1 中设置你自己的电脑。
本学期我们将使用版本控制系统 Git ,并在 GitHub 上使用私有仓库。 版本控制系统允许你在开发的各个阶段维护一系列文件的"快照"。如果使用得当,这会为你提供一些备份保护,这样当出现问题时,你可以恢复工作的先前状态。此外,对于面向团队的项目(以及在现实世界中),版本控制系统有助于管理协作工作。
课程作业
本课程有五个必修方面可以让你获得分数:
- 每周调查
- 实验作业
- 家庭作业
- 项目
- 考试
每周调查
虽然讲座和 section 的出勤不是必需的,甚至也不是预期的,但我们确实希望你能跟上学习材料。为了帮助我们跟踪你的学习进度和对课程的感受,我们将有 12 个每周调查,截止时间为每周一晚上 11:59。
提交 10 个每周调查将获得满分(即你可以跳过 2 个)。提交更多不会获得额外学分。
实验作业
在课程的第一阶段(第 1 到第 5 周),实验课将帮助你设置电脑并教你如何使用基本的 Java 编程工具,在完成 Project 1 后还将包括同伴代码审查。
在课程的第二和第三阶段(第 6-15 周),实验课通常会涉及讲座中描述的某些数据结构或算法的实现。所有实验课的完成时间不应超过两小时,尽管有些可能会稍微长一点。你将使用 GitHub 以电子方式提交所有内容,你的成绩将在 Gradescope 上查看。
实验课根据 Gradescope 上的自动评分器测试进行评分。没有隐藏的测试让你看不到分数,尽管我们可能有你无法访问的测试。
在 14 个实验课中,只有 10 个需要你提交作业。这 10 个实验课每个价值 5 分(总共 50 分)。
你不需要参加实验课来获得实验课的学分,但有一个特定的作业除外(见上面的 实验课 部分)。
本学期,我们 不 允许实验作业有实验搭档。我们确实鼓励你讨论想法(参见 实验合作政策 ),但你提交的代码应该是你自己的。
没有实验课会被删除,但我们有宽松的迟到政策。
家庭作业
本课程有 5 个必修的家庭作业。
我们有三种类型的家庭作业:
- 编程作业(HW0、HW2),与实验课类似。
- HW1 是关于在 CS 课程中如何做一个好同学的作业。它旨在设定课程规范,并提醒我们如何在 CS 61B 中尊重和包容伯克利社区的所有成员。
- 概念作业在第二次期中考试(HW3)和期末考试(HW4)前不久截止,帮助你备考。它们将在 Gradescope 上提供,包括选择题和填空题的组合。你可以预期需要在纸上解决这些问题,然后在 Gradescope 上填写答案。
作业 0、1、3 和 4 价值 15 分。作业 2 是更具挑战性、更耗时的作业,价值 30 分。
没有作业会被删除,尽管我们有宽松的迟到政策。
项目
除了作业和实验课之外,还将有 4 个编程项目。在这些项目中,你将构建一个完整的系统。除了 Project 3 之外,所有项目都必须独立完成。
Project 0 和 1 相对比 Project 2 和 3 容易,花费时间更少,并且有更多的框架代码。Project 2 将是一个更大规模的设计项目,只有很少的骨架代码。Project 3 将是一个顶点项目,你将从头开始设计一个项目。取决于你的雄心程度,它最终可能比 Project 2 的工作量大得多。
每个项目都有特定的主题:
- 项目 0(2048):Java 入门
- Project 1(双端队列):基础设计、测试和代码审查
- 项目 2(Ngordnet):设计、大规模实现
- 项目 3(BYOW):大规模设计
项目将有不同的评分器发布时间表和每个时间间隔内允许提交次数的限制。完整的评分器详细信息将在每个项目发布时提供。
项目 0、1、2 和 3 分别价值 50、50、125 和 125 分。
项目 3
由于 Project 3 是一个大规模设计项目,它将与其他三个项目有一些不同。
项目 3 将有一个同步检查部分。
对于 Project 3,所有学生都必须与搭档合作完成。你可以选择一个合作伙伴,或者请求与另一个有相似工作习惯和目标的学生配对。
CS 61B 的主要目标之一是为你提供成为成功软件工程师的工具,其中之一就是与他人有效合作的能力。 除非极端情况,我们不会批准学生在 Project 3 上正式独立工作。 如果你认为你有令人信服的理由在 Project 3 上独立工作,我们将在项目发布前不久发布一个你可以填写的表格(请留意 Ed 上的相关信息)——我们将在 Project 3 发布前不久通知你你的请求是否获得批准。
关于合作的完整细节可以 在此处 找到。
考试
将有两次期中考试和一次期末考试:
- 期中考试 1:2 月 15 日星期四,太平洋时间晚上 7-9 点
- 期中考试 2:3 月 21 日星期四,太平洋时间晚上 7-9 点
- 期末考试:5 月 7 日星期二,太平洋时间上午 8-11 点
期中考试 1 的成绩在退课截止日期前将无法查询。如果你是计划攻读 CS 专业的学生,并且担心在退课截止日期前退课,请联系课程工作人员寻求建议。
远程考试
本学期我们 不 提供任何远程考试。你需要在指定日期亲自参加考试。
如果有任何特殊情况使你无法参加考试或其替代考试,例如考试冲突或生病,请填写此 表格 。
如果你无法参加期末考试,我们可能可以让你在下一学期参加考试——但不保证。
替代考试
如果你无法在预定时间参加考试,我们每次考试只提供一个替代考试时间,且仅限线下。
- 替代期中考试 1:2 月 15 日星期四,太平洋时间晚上 8-10 点
- 替代期中考试 2:3 月 21 日星期四,太平洋时间下午 5-7 点
- 替代期末考试:5 月 7 日星期二,太平洋时间上午 11 点-下午 2 点
没有其他替代考试时间。
我们仅在你无法在正常时间参加考试时提供替代考试时间。例如,如果你同时有另一门考试,你可以参加替代时间的考试。但是,希望在不冲突的考试之间休息一下不是参加替代时间考试的有效理由,因为在这种情况下你能够在正常时间参加考试。
我们将在考试临近时发布一个表格,供你报名参加替代时间考试。
考试评分
我们的考试目标是平均分为 65%。如果考试太难,班级平均分低于 65%,我们将对每个人的分数进行调整,使平均分达到 65%。
如果平均分达到或超过 65%,那么我们不会改变分数(即你的分数不会降低)。
考试的最高分为 100%。如果调整后你的分数超过 100%,在计算成绩时将上限设为 100%。
你不需要担心成绩调整的具体计算方式,但为了透明起见,我们在下面描述了计算方法:
为了计算调整后的分数,我们将每个人的分数乘以(0.65 / 平均分)。另一种数学上等效的表述方式是:我们将降低考试的最高分,直到平均分达到 65%。
示例:班级平均分为 60%,你的分数为 70%。调整后,你的分数将为 70 *(0.65 / 0.60)= 75.83%。
期末考试覆盖政策
对于那些错过考试、状态不佳或在整个学期取得重大进步的同学,考试覆盖政策让你有机会使用期末考试分数来弥补期中考试的一些分数。
覆盖政策仅在有助于提高你的分数时才会应用。例如,如果你在两次期中考试中都取得了中位数分数,但后来状态不佳,期末考试考得很差,我们不会改变你的期中考试分数。
覆盖政策只能用于弥补期中考试的分数。例如,如果你期中考试考得好,不能用来弥补期末考试的分数。
你不需要担心覆盖的具体计算方式,但为了透明起见,我们在下面描述了计算方法:
如果有助于提高你的成绩,我们将用你的期中考试和期末考试百分位分数的平均值来替换你的期中考试百分位分数。例如,如果你的期中考试 1 分数在第 50 百分位,期中考试 2 在第 30 百分位,期末考试在第 80 百分位,那么你覆盖后的期中考试 1 分数将在第 65 百分位,覆盖后的期中考试 2 分数将在第 55 百分位,而你的期末考试分数将保持在第 80 百分位。
额外学分
本课程的额外学分非常有限,因为我们更希望你通过在作业和考试中展示你的知识来获得成绩。话虽如此,这里有一些:
- 学期前调查(2.5 分)
- 学期中调查(2.5 分)
- 学期末调查(2.5 分)
- 官方大学课程评估(最多 2.5 分)
我们可能会增加额外的学分,但请不要指望我们这样做。
进度积分
有三种方式可以获得"进度"积分,这些积分是为了奖励你跟上课程进度。
- 同步参加讨论课(线下或线上)
- 同步参加实验课(线下或线上)
- 参加现场/Zoom 讲座、观看预先录制的视频,或按时观看录制的讲座(在下一次讲座开始前)。
每次讨论课或实验课价值 0.5 个进度积分。每次讲座价值 0.5 个进度积分。你最多可以获得 16 个进度积分。我们将使用每周调查和形成性评估的回复来计算进度积分。详情请参阅每周公告!
进度积分会加到你的分数中,但不能使你的分数超过 750 分。换句话说,如果你有 740 分和 15 个进度积分,你的最终分数将是 750 分。
成绩
你的字母等级将由总分(满分 1000 分)决定。换句话说,除了上述的覆盖政策外,本课程 没有成绩曲线 。你的成绩将取决于你相对于分数档的表现,而不是取决于其他人的表现。虽然我们通常不会这样做,但我们保留在成绩过低时降低 61B 评分档的权利。我们不会提高它们。
| 类别 | 百分比 | 分数 |
|---|---|---|
| 家庭作业 | 9% | 90 |
| 实验课 | 5% | 50 |
| 调查 | 1% | 10 |
| 项目 | 35% | 350 |
| 期中考试 1 | 10% | 100 |
| 期中考试 2 | 15% | 150 |
| 期末考试 | 25% | 250 |
| 总计 | 100% | 1000 |
| A+ | A | A- | B+ | B | B- |
|---|---|---|---|---|---|
| 984 | 914 | 854 | 794 | 754 | 714 |
| C+ | C | C- | D+ | D | D- | F |
|---|---|---|---|---|---|---|
| 679 | 644 | 609 | 569 | 534 | 499 | 0 |
这些分数档的设计符合系里的指导方针,即低年级必修课程的平均 GPA 应在 2.8-3.3 的范围内(包括退课或以 P/NP 成绩修课的学生)。设计过程包括设定我们期望学生在 A、B 和 C 档达到的具体标准,并根据我们基于以前学期建立的学生表现预测模型调整数字和插值其他分数档。
由于本课程不按曲线评分,而且我们在上面提供了所有评分细节,偶尔学生在收到最终总分后会"只差几分"就到下一个评分档。在这种情况下,请不要联系我们。我们不能"四舍五入"你的成绩或给你未完成工作的学分。如果你发现自己无法完成作业,请参考我们友好的迟到政策(详情见下文),或在截止日期前联系我们。
我们只会在严重的医疗或个人紧急情况导致你错过期末考试,且你在那之前的工作令人满意的情况下才会给予未完成成绩。不要试图仅仅为了有更多时间学习或做项目而获得未完成成绩。这违反了大学政策。在申请未完成成绩之前,请联系学院顾问或查看你所在学院的未完成成绩政策,以了解这是否适合你。
合作与学术不端
截止日期可能会带来压力,我们知道在极端压力下,人们很容易开始为那些你原本认为不合适的行为找借口。也许你会发现自己面临着 CS 61B 项目的截止日期,在所有这些压力下,你会说服自己只是暂时作弊一下,这样你就能得到分数,然后你会回来真正学习你应该学习的东西,以恢复你的因果平衡(我听过几次类似的话)。
请不要这样做。我们关心你是否学到了材料,以及你的成绩是否反映了你的学习,无论时间线如何。如果你觉得你需要通过学术不端来赶上截止日期,请联系课程工作人员。
任何家庭作业、实验课或项目中的学术不端行为将导致你需要撰写一份匿名反思并发布在本课程网站上,并重新提交作业。第二次在家庭作业、实验课或项目中抄袭将导致本课程成绩为 F。 所有抄袭事件都将提交给学生行为办公室 ,包括与他人共享代码的情况。鉴于我们友好的迟到政策(见下文),这一规则没有例外。
在 2017 年春季学期,我们整理了一系列 由被发现抄袭的学生撰写的事件报告 。如果你发现自己想作弊,你可以参考那些做出错误选择的人的话作为警示。
作业和实验合作政策
家庭作业和实验课的全部意义在于学习。对于家庭作业或实验课,你可以自由地以任何你选择的方式与他人合作,但请记住,更大的独立性可能会给你更好的学习体验(只要你不是完全卡住了)。 尽管我们允许在家庭作业和实验课上进行密切合作,但你提交的解决方案仍然应该是你自己的工作! 完全相同或几乎相同的提交将被视为抄袭。
项目合作政策
相比之下,项目的设计不仅是为了学习(特别是如何在大型不熟悉的系统中自力更生),也是为了评估你对课程材料的掌握程度。因此,它们主要应该由你自己完成(或在项目 3 中与你的搭档一起,项目 3 允许搭档),特别是在编写实际代码时。
考试违规
对于考试,我们绝对不会姑息。 任何事件都将导致本课程不及格,尽管伯克利会让你在下学期重修 CS 61B。如上所述,所有作弊事件都将提交给学生行为办公室。
学术不端
什么是作弊? 学术不端的黄金法则是,你不应该声称对不属于你的工作负责。
这显然有一些解释空间,在整个课程中,你会从讲师、互联网、其他学生等那里得到一些帮助。这是可以的,我们希望课堂是一个开放、友好、协作的环境,我们可以互相帮助,尽可能高地理解课程材料。
为了帮助(但不完全定义)可接受行为的界限,我们对编程作业有三个重要规则:
-
独立完成 :你提交的所有代码(骨架代码除外)都应该由你和你的搭档独立编写,除了解决小问题的小片段(示例见下面的允许部分)。
-
不得拥有或共享代码 :在你提交最终作品之前,你永远不应该拥有你(或你的搭档)没有编写的解决方案代码。在网上查找解决方案代码实际上就是拥有解决方案代码。
如果你将此类代码分发给其他学生或 61B 的未来学生(在合理范围内),你将承担同等责任。 不要把你的代码给任何人——即使他们在拼命请求。不要在网上发布解决方案(在 GitHub 或其他任何地方)! 如果你不确定你做的事情是否可以,请询问。
-
引用来源 :当你在编程作业中从他人那里获得重大帮助时,你应该在源代码的某个地方用注释中的
@source标签引用该帮助。我们让你自己决定什么构成"重大"。但是,引用并不会改变允许的合作或参考程度。示例:
// @source 我与[某人]合作,下面的代码接收一个对象列表 // 并遍历列表,直到找到数字3并返回索引。 ... // @source 来自 https://stackoverflow.com/questions/16242733/sum-all-the-elements-java-arraylist, // 下面的代码遍历列表并求和。 ... // @source 此代码由 ChatGPT 生成。它读取并解析文件中的所有整数, // 然后我将其传入我的 computeSum 方法。 ...
为清楚起见,下面列出了一些特定活动的示例:
允许的 :
- 解决问题方法的高层次讨论。
- 提供或接收关于问题解决方案的重要概念性想法。这种帮助应该在你的代码中作为注释引用。为了他人的学习体验,我们要求你尽量不要直接给出关键答案,而是尝试引导人们找到这样的解决方案。
- 讨论代码中的特定语法问题和错误。
- 使用你在网上找到的小代码片段来解决小问题(例如,谷歌搜索"uppercase string java"可能会让你找到一些示例代码,你可以复制并粘贴到你的解决方案中)。这种用法应该在你的作业、实验课,特别是项目代码中作为注释引用!
极度谨慎使用 :
- 与另一个人或一群人一起做项目。你的代码不应该与任何人的代码大体相似!
- 使用 GitHub Copilot / GPT3 等。如果你只是生成一些样板代码,那没关系。但是,你不应该使用此类工具来生成非平凡的方法。我们正在努力培养你的基本技能,依赖人工智能会在你没有人工智能帮助的情况下给你带来麻烦,比如考试。 任何人工智能生成的代码都必须被引用并明确注释。 违反此引用规则是严重的抄袭行为。请注意,人工智能生成的代码,尤其是来自 ChatGPT 等来源的代码,通常存在细微的错误或完全不正确。
绝对禁止 :
- 在别人的电脑上打字或口述代码违反了"独立完成"规则。
- 在最终截止日期前以任何形式拥有另一名学生的代码, be it electronic or on paper. Th属于cludes the situation where you’re trying to help someone debug. Distributing such code 是 equally forbidden.
- Possessing solution code that you did not write yourself (from online (e.g. GitHub), staff solution code found somewhere on a server it should not have been, etc.) before a final deadline. Distributing such code 是 equally forbidden. Looking at solution code online counts as possessing code.
- Posting solution code to any assignment in a public place (e.g. a public git repository, Google Drive, Discord, etched into stones above the Mediterranean, etc). Th是 applies even after the semester 是 over.
- Working in lock-step with other students. Your workflow should not involve a group of people identifying, tackling, and effectively identically solving a sequence of subproblems.
We have advanced cheating detection software, and we will routinely run this code to detect cheating. Every semester, we catch and penalize a significant number of people (roughly 100 cases per semester). 不要 be 一 of them. If you find yourself at such a point of total desperation that cheating begins to look attractive, contact 一 of the instructors. Likewise, if 61B 是 causing massive disruption to your personal life, please email
cs61b (at) berkeley.edu
.
In essence, our ultimate goal is for students to grasp the code they’ve crafted. It’s not just about completing projects; it’s about cultivating a deep comprehension of their code. We assign these projects to give you an opportunity to build a strong foundation in coding, ensuring that you truly understand the core principles behind the concepts we teach in th是 course.
If you admit guilt to an act of plagiarism before we catch you, you will receive the same penalty (redoing the assignment), but we will not refer your case to the Center of Student Conduct. However, we would strongly prefer that you ask us for additional time before opting to plagiarize. You do not need to admit guilt to ask for additional time.
Obviously, the expressive power of Java 是 a subset of the English language. And yes, you can obviously obey the letter of this entire policy while completely violating its spirit. However, th是 policy 是 not a game to be defeated, and such circumventions will be seen as plagiarism.
If you would like to review our academic misconduct resolution procedures, you can find them here .
Lateness
每项作业的预期截止日期都发布在课程网站上。我们默认你会在截止日期前完成每项作业。 Especially in the 第一 few weeks, the course content builds on itself, and not completing an assignment will make it much more difficult to complete later assignments and do well on exams.
There 是 no partial credit for work that is submitted late. And thus, Gradescope will give you zero points if you submit after the deadline.
However, we understand that you may be busy, tired, or experiencing a crisis. We would like your grade to reflect what you demonstrate proficiency in and accomplish in the class, and have designed some flexibility to our lateness policy to achieve that as much as possible. Your health, safety, and well-being are the priority, and ideally your grades should reflect what you have learned, not when you learned it.
延期
By default, all assignments will follow th是 extension policy:
- Short extension: Extension requests of less than 24 hours will be instantly processed by an automatic system,
- Long extension: Extension requests between 24-72 hours will be manually processed by GSIs and will receive a reply within 1 business day.
延期申请可以在 Beacon 中提交( guide ),并且需要你提供详细的延期原因。延期可以在 Beacon 中申请。如果你有 extenuating circumstances ,你可以申请更长的延期。延期不保证批准。
异常:
- For 项目 2 only , a short extension will be up to 72 hours and a long extension will be 72-120 hours. Like before, short extensions are automatically granted while long extensions require manual approval.
- Surveys may not be extended.
- Conceptual homeworks (HW3 and HW4) may not be extended, as we will release solutions as exam prep.
- 项目 3B/C may not be extended, as it 是 difficult to arrange late project presentations.
An important note on extensions: leading up to an assignment deadline, we usually provide increased support for that assignment (in the form of incrased staffing). As a result, continuing to work on an assignment after the original deadline may lead to slower respones times on Ed/longer wait times in OH, as staff will actively prioritize assignments whose deadlines have not passed.
Extenuating Circumstances
We define extenuating circumstances as circumstances outside of the student’s control that directly inhibits the student’s ability to complete assignments in a timely manner. Some examples include unforeseen physical/mental health crises, technical issues (broken laptop), family emergency, etc.
If you are experiencing such circumstances and require an extension past what can be requested in Beacon, please fill out th是 form . There 是 a separate Google form and a more involved process. We will be restrictive about granting these extensions.
We will not be considering retroactive submissions to the extenuating circumstances form. Th是 means that you should proactively submit to the form before the assignment’s deadline to be considered. 异常 will only be made in extreme cases.
Additionally, if you’d like to speak to a student support 助教, book an appointment with us here .
Late Adding CS61B
如果你试图在学期后期正式注册计算机科学 61B,你必须在加入课程后的 3 天内提交所有未完成的课程作业。 Th是 means that you should be following along with the course schedule according to the schedule on the main page and announcements on Ed. Please email cs61b@berkeley.edu if you are not added to Ed or Gradescope.
Please use the Late Add Intent form if you are waiting to be enrolled and need access to course platforms. If you’d like to meet with course staff for advice on catching up with the course, please make an appointment here .
旁听 CS61B
这是为非正式旁听本课程的学生准备的。也许你是非伯克利学生,想要复习 your programming knowledge or even a high school student who wants to get a head start on your programming career. If th是 sounds interesting to you, we have set up a public autograder for the Spring 2021 version of the course.
To get everything set up, go to Gradescope and select the “Add a course” button. Enter course code MB7ZPY to be added. You will not be given a student repo, so you will have to create your own on GitHub in order to submit assignments. After you complete setup and lab1, you will also have access to all the code for the class.
That’s all you have to do! All lectures, worksheets, and specs will be available on the Spring 2021 Website . 重要: you should be using the Spring 2021 skeleton, website, and gradescope. You will not be using any resources from th是 current semester. Every term we change assignments and lectures up a little bit, so make sure to stick to the Spring 2021 verion of things.
致谢
Some course handout material derived from previous terms, professors, and GSIs.