page 1 of 6
CAS CS 112: Introduction to Computer Science II
Boston University, Spring 2021
Syllabus
Description: The second course for computer science majors and anyone seeking a
rigorous introduction. Covers advanced programming techniques and data
structures using the Java language. Topics include searching and sorting, recursion,
algorithm analysis, linked lists, stacks, queues, trees, and hash tables. Carries MCS
divisional credit in CAS. Fulfills a single unit in the following BU Hub areas:
Quantitative Reasoning II, Creativity/Innovation, Critical Thinking.
Prerequisites: CAS CS 111, or the equivalent. If you have not had significant prior
experience with recursion, you are strongly encouraged to take CS 111 first.
Instructors
A1/C1: Christine Papadakis-Kanaris (cpk@cs.bu.edu)
B1: David G. Sullivan, Ph.D. (dgs@cs.bu.edu)
See the course website for the schedule of instructor, TA and CA office hours.
Teaching Assistants (TAs)
Aileen Chavez (aileenc@bu.edu)
Ivan Izhbirdeev (ivani@bu.edu)
Melissa Lin (mlin2022@bu.edu)
Tristan Marchand (tmarch@bu.edu)
Kelly Ruan (kruan@bu.edu)
Course Assistants (CAs)
We are fortunate to have a number of undergraduate course assistants (CAs) as
members of the course staff. They will be working with you in the labs and holding
office hours each week. See the course website for their names and contact info.
Meeting Times and Places
lectures: section A1: TuTh, 12:30 pm-1:45 pm, LAW AUD or remotely (see below)
section B1: MWF, 1:25-2:15 pm, YAW 613A or remotely (see below)
section C1: TuTh, 2:00-3:15 pm, LAW AUD or remotely (see below)
labs: see your schedule for the time; fully remote on Zoom (see below)
note: the Wed evening time in your schedule is only for the midterm exams (see below)
In keeping with the University's Learn from Anywhere model:
• The lectures will be offered using a hybrid mode of instruction. Beginning
with the second lecture, there will be in-person class meetings at the times
listed in your schedule, but classes will also be live-streamed via Zoom for
students who cannot attend in person.
• The first day of lecture will be fully remote. All students should attend
lecture on Zoom that day. Links to the Zoom meetings for lecture will be
provided on the course's Blackboard Learn site before the first lecture.
CAS CS 112: Introduction to Computer Science II Spring 2021
Syllabus
page 2 of 6
• In-person lecture attendance will be managed using the InClassLfA app.
Students who wish to attend class in person should use this app to indicate
their preference for doing so.
• We encourage you to participate in the lectures either in person or on Zoom.
However, if you cannot participate in a given lecture, there will be a
recording that you can watch asynchronously. To avoid falling behind, you
should watch the recording within 24 hours of the original lecture.
• The weekly lab sessions will be fully remote. Students are expected to
attend their lab session on Zoom at the time at which it is held. Note
that the letters of your lecture and lab do not need to match. For example, if
you are in the A1 lecture, you can sign up for a B or C lab.
• Students who attend class in person or ask questions via audio on Zoom
should be aware that they may be recorded. However, these recordings will
only be shared with students and staff members who are part of the course.
COVID-19-Related Class Expectations
To promote a safe learning environment, those who attend lecture in person must:
• comply with University-mandated COVID-19 testing and health attestation
requirements
• wear a face covering at all times during class and when in other public spaces
• maintain physical distancing of 6 feet from the nearest person at all times,
including when entering and leaving the classroom
• contact Student Health Services at 617-353-3575 if you experience symptoms
of COVID-19 (see https://www.cdc.gov/coronavirus/2019-ncov/symptoms-
testing/symptoms.html).
The instructors will follow the above guidelines, and students who choose to attend
class in person must also adhere to them. Students who do not wish to follow these
guidelines should take the class remotely.
Exams
The midterms and final exam will be administered online using an approach that
we will announce later. You will be required to use a webcam and microphone
during the exams. In addition, we strongly recommend that you have access to a
mobile phone with a data connection in case of a Wi-Fi outage.
There will be two time options for each midterm exam. Students living in the US
will be expected to take the midterms from 6:30-8:00 p.m. Eastern time on the
Wednesday evenings mentioned in the schedule below (3/3 and 4/14). We will also
schedule an alternate exam time for students whose time zone makes the
Wednesday evening time impractical; this alternate time will be in the morning
before the start of classes on either the day of the exam or the following day.
We will also offer two time options for the final exam, but we will not be able to
determine them until midway through the semester. The initial exam information
posted by the Registrar is likely to be incorrect. Make sure that you are
available for the entire final-exam period (through Sat. evening, May 8)!
CAS CS 112: Introduction to Computer Science II Spring 2021
Syllabus
page 3 of 6
Course Website: http://www.cs.bu.edu/courses/cs112
In addition, announcements and some course materials will be posted on the
course's Blackboard Learn site.
Requirements and Grading
1. Weekly problem sets (40% of the final grade)
2. Exams: two midterm exams (25%) and a final exam (30%)
3. Participation (5%; see below)
To pass the course, you must earn a passing grade on each of the first two
components.
Collaboration Policy
You are strongly encouraged to collaborate with one another in studying the lecture
materials and preparing for quizzes and exams.
Problem sets will include two types of problems:
• individual-only problems that you must complete on your own
• pair-optional problems that you may complete alone or with a partner.
For both types of problems, you may discuss ideas and approaches with others
(provided that you acknowledge this in your solution), but such discussions should be
kept at a high level, and should not involve actual details of the code or of other types
of answers. You must complete the actual solutions on your own (or, in the case
of a pair-optional problem, with your partner if you choose to use one).
Rules for working with a partner on pair-optional problems:
• You may not work with more than one partner on a given assignment.
(However, you are welcome to switch partners between assignments.)
• You may not split up the work and complete it separately.
• You must work together (e.g., via a Zoom meeting) for every problem that
you complete as a pair, and your solution must be a collaborative effort.
• You must both submit the same solution to each problem that you did as a pair,
and you must clearly indicate that you worked on the problem as a pair by
putting your partner's name at the top of the file.
Academic Misconduct
We will assume that you understand BU’s Academic Conduct Code:
http://www.bu.edu/academics/policies/academic-conduct-code
You should also carefully review the CS department's page on academic integrity:
http://www.bu.edu/cs/undergraduate/undergraduate-life/academic-integrity
Prohibited behaviors include:
• copying all or part of someone else's work, even if you subsequently modify it;
this includes cases in which someone tells you what you should write for your
solution
• viewing all or part of someone else's work (with the exception of work that you
and your partner do together on a pair-optional problem)
CAS CS 112: Introduction to Computer Science II Spring 2021
Syllabus
page 4 of 6
• showing all or part of your work to another student (with the exception of work
that you and your partner do together on a pair-optional problem)
• consulting solutions from past semesters, or those found online or in books
• posting your work where others can view it (e.g., online)
• receiving assistance from others or collaborating with others during an exam,
or consulting materials except those that are explicitly allowed.
Incidents of academic misconduct will be reported to the Academic Conduct
Committee (ACC). The ACC may suspend/expel students found guilty of misconduct.
At a minimum, students who engage in misconduct will have their final
grade reduced by one letter grade (e.g., from a B to a C).
Other Policies
Laptops: Students taking CS courses are expected to have a laptop capable of running
a currently supported version of Microsoft Windows, Mac OS X, or Linux. See this
page for more info: https://www.bu.edu/cs/undergraduate/undergraduate-life/laptops
Late problem sets: Problem sets must be submitted by the date and time listed on the
assignment (typically by 11:59 p.m.). There will be a 10% deduction for submissions
up to 24 hours late, and a 20% deduction for submissions between 24 and 48 hours
late. We will not accept any homework that is more than 48 hours late. Plan
your time carefully, and don’t wait until the last minute so you will have ample time
to ask questions and obtain assistance from the course staff.
Pre-lecture preparation: To help you prepare for lecture, you will typically be required
to complete an assigned reading and/or watch one or two short videos. This
preparation is not graded, but failing to complete it will make it more difficult for you
to understand the material presented in lecture.
The participation portion of your grade will be based on your completion of online
questions connected to the lectures, and on your consistent participation in the lab
sessions on Zoom. You will receive full credit for participation if you answer at least
85% of the online lecture questions and if you participate in at least 85% of the lab
sessions on Zoom. If you complete x% of the questions or participate in x% of the lab
sessions for a value of x that is less than 85, you will get x/85 of the possible points.
The final exam will replace your lowest problem-set grade if doing so helps your final
grade. The final exam will also replace your lowest midterm-exam grade if doing so
helps your final grade.
The final grades are not curved. The performance of the class as a whole is taken into
account in assigning letter grades, but this can only improve your grade, not harm it.
Extensions and makeup exams will only be given in documented cases of serious
illness or other emergencies. You cannot redo or complete extra work to improve your
grade. Incompletes will not be given except in extraordinary circumstances.
Course Materials
• You are not required to buy a textbook. Instead, we will provide detailed lecture
slides and assign readings from freely available online resources.
CAS CS 112: Introduction to Computer Science II Spring 2021
Syllabus
page 5 of 6
• Required: We will be using the Top Hat Pro platform. More detail will be
provided in class.
Schedule (tentative)
Week lecture dates topics, exams, assignments, and special dates
0 A1/C1: 1/26, 1/28
B1: 1/25, 1/27, 1/29
Course overview and introduction; Java basics
User input; conditional execution
Static methods; loops
1 A1/C1: 2/2, 2/4
B1: 2/1, 2/3, 2/5
Loops (cont.); variable scope
Primitives, objects, and references
Arrays
2/5: last day to add a class
2 A1/C1: 2/9, 2/11
B1: 2/8, 2/10, 2/12
Object-oriented programming
Memory management
Problem Set 1 due on 2/12
3 A1/C1: 2/18
B1: 2/16, 2/17, 2/19
Inheritance and polymorphism
Bag data structure
No lecture on 2/15 (Presidents' Day)
B1: lecture on 2/16 (Monday schedule)
Problem Set 2 due on 2/19
4 A1/C1: 2/23, 2/25
B1: 2/22, 2/24, 2/26
Recursion
Recursive backtracking
3/1: last day to drop without a 'W'
Problem Set 3 due on 2/26
5 A1/C1: 3/2, 3/4
B1: 3/1, 3/3, 3/5
Recursive backtracking (cont.)
Sorting and algorithm analysis
Midterm 1 on 3/3 or 3/4 (see page 2 above)
6 A1/C1: 3/9, 3/11
B1: 3/8, 3/10, 3/12
Sorting and algorithm analysis (cont.)
Problem Set 4 due on 3/12
7 A1/C1: 3/16
B1: 3/15, 3/17, 3/19
Linked lists
A1/C1: No lecture on 3/18 (Wellness Day)
8 A1/C1: 3/23, 3/25
B1: 3/22, 3/24, 3/26
Linked lists (cont.)
List ADT; Iterators
Problem Set 5 due on 3/26
9 A1/C1: 3/30, 4/1
B1: 3/29, 4/2
Stack and queue ADTs
Java generics
B1: No lecture on 3/31 (Wellness Day)
4/2: last day to drop a class with a 'W'
10 A1/C1: 4/6, 4/8
B1: 4/5, 4/7, 4/9
Tree basics; binary trees
Binary search trees
Problem Set 6 due on 4/6 (Tuesday)
11 A1/C1: 4/13, 4/15
B1: 4/12, 4/14, 4/16
Binary search trees (cont.); balanced trees
Hash tables
Midterm 2 on 4/14 or 4/15 (see page 2 above)
Problem Set 7 due on 4/18 (Sunday)
CAS CS 112: Introduction to Computer Science II Spring 2021
Syllabus
page 6 of 6
12 A1/C1: 4/20, 4/22
B1: 4/21, 4/23
Hash tables (cont.)
Heaps and priority queues
B1: No lecture on 4/19 (Patriots' Day)
13 A1/C1: 4/27, 4/29
B1: 4/26, 4/28
Heaps and priority queues (cont.)
Wrap-up
Problem Set 8 due on 4/28
4/30-5/3: Study period
14 Final exam: time and date TBD
Please wait until your instructor informs you of
the date. The initial date posted by the Registrar
will not be correct.
Make sure that you are available for the entire
exam period – up to and including Saturday
evening, May 8!
学霸联盟