CS51B - (S^4) Spring Structured Study Sessions for Programming
CS51B - (S^4) Spring Structured Study Sessions for Programming
Course Description
Note: this syllabus is subject to change.
Overview
Computational Sciences are built on two foundational topics: mathematics, including statistics, and computer science.
While most secondary schools around the world provide a decent introduction to foundational mathematics concepts,
typically students do not encounter anything beyond very basic computer science curriculum until postsecondary
education. The Spring Structured Study Sessions (S^4, course code CS51B) are designed to help bridge this gap and
support students preparing for upper-division courses in computer science. Additionally, the sessions are designed to
familiarize students with some concepts that advanced CS courses may not tackle directly, but that are highly useful in the
field. Just like math, computer science takes time and practice to master. We’re here to help on that journey! S^4 offers a
friendly environment of classmates and helpful Peer Tutors to learn about topics ranging from binary numbers to object-
oriented programming.
Before enrolling in CS110 / Problem Solving with Data Structures and Algorithms, students are required to either pass a
technical interview administered by CS faculty members and teaching assistants or successfully complete S^4. Students
who pass the technical interview but still want to gain confidence in their skills are encouraged to opt into the course.
They may also follow along with the material on their own (or form their own study groups) and visit Peer Tutor’s office
hours for help as needed.
As you probably know, learning to code takes a lot of repeated practice, and it's more fun with friends! The S^4 sessions
are designed to provide an opportunity to practice in a friendly environment with classmates and Peer Tutors who can give
extra guidance and support. To facilitate this environment, students shall meet once a week on Forum for one hour. During
this hour, students work in breakouts through a series of coding exercises and learning material, with Peer Tutors available
to answer questions. This setup ensures students are getting hands-on practice with the concepts and that the necessary
support from Peer Tutors is available as they work.
Will one hour of coding practice per week take students from beginner to master? No. Attending the S^4 will provide
students with helpful resources, but it is ultimately up to them to pursue the extra practice. We hope that students take
advantage of visiting ++Peer Tutor’s Office Hours++ for further assistance.
For the S^4, the material students are expected to work on each week has two parts: Pre-Class Work and Lab.
1. The purpose of the Pre-Class Work is to introduce students to the topics that will be discussed during the Lab. Pre-
Class Work usually has 3 distinct parts: (1) Programming Crash Course Videos that serve as a light resource of
information on a variety of CS topics; (2) resources that the Lab will primarily focus on - these are often more
technical and take up more time; (3) Forum Code Workbook that offers some coding practice for students so that
they feel more confident during the Lab.
2. The primary purpose of the Lab is to provide students with guided practice in specific topics so that students can
develop necessary Python skills. The Lab builds on the Pre-Class Work material and offers practice in the form of
quizzes, multiple-choice questions, and coding exercises, all while collaborating with a peer in breakouts and being
able to request help from a Peer Tutor. The Lab meets once a week. At the end of the Lab, students are required to
submit their workbooks. Students who miss the class are required to submit the Lab as makeup work within 7 days.
Participants' Responsibilities
1. Preparation
The class page will usually contain resources from external sources and practice exercises as described above in
under pre-class work. Reviewing these materials will ensure that you come to the session equipped with the
required knowledge to solve the tasks.
Students also need to come prepared to focus, learn, and engage with peers. It is recommended to close all tabs and
windows in the background, turn off notifications, and make the most of the hour with peers and Peer Tutors. This is
easier said than done. Students are referred to this resource, ++Forum Magic++, to learn about the “magical”
cognitive processes in our brain that affect our attention during online interactions. The document also explains
several best practices for limiting distractions during class.
Some of the workbooks provide students with a way to test their code and see if it works correctly. This feature is meant to
provide students with immediate feedback on their progress, indicating whether their work is complete and correct. If an
error is indicated, students should go back and try to fix it! This is an important part of the learning process! The results
(how many tasks were correct vs incorrect) will not affect your HC scores or Cornerstones grades in any way.
3. At the end of the session
After breakouts, there will be a "Common Confusions" poll at the end of the session in which students will vote on which
task they most want to review as a group. This will give a chance for Peer Tutors to guide students through the solution for
one (or possibly more) particular task(s). What if the one-hour session ends before you finished the Lab workbook? See
below.
Access to resources: After exiting the classroom, students will retain access to the work they did in breakouts. Students
can locate this by re-entering the class and navigating to the class resources at the end. Students can continue to work
within class workbooks by opening them in a tab outside of the classroom. However, these versions are still shared. Any
changes made will be visible by your groupmate(s) and Peer Tutors. Additionally, access to Jupyter notebook versions for
the Lab Notebooks will be made available on Google Drive.
After the session, Peer Tutors will review the work that students did during the session and provide some feedback to
students on their progress. Students can view this feedback in Forum in the form of comments on the breakout
workbooks. Students are welcome to reach out to their Peer Tutors (e.g. during Office Hours) for more direct feedback or
tips on how to improve.
Assignments
Note: Sunday is considered the beginning of the academic week for determining due dates.
Course Scoring
Type % of Course Score
Assignments 0%
HCs
CrashCourse. (2017, March 9). Boolean Logic & Logic Gates: Crash Course Computer Science #3. [Video]. YouTube. (10
minutes).
https://www.youtube.com/watch?v=gI-qXk7XojA&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=5
CrashCourse. (2017, March 16). Representing Numbers and Letters with Binary: Crash Course Computer Science #4.
[Video]. YouTube. (11 minutes).
https://www.youtube.com/watch?v=1GSjbWt0c9M&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=6
Computerphile. (2014, January 23). Floating Point Numbers - Computerphile. [Video]. YouTube. (9 minutes).
https://www.youtube.com/watch?v=PZRI1IfStY0
HCs
CrashCourse. (2017, March 30). Registers and RAM: Crash Course Computer Science #6. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=fpnE6UAfbtU&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=8
CrashCourse. (2017, April 6). The Central Processing Unit (CPU): Crash Course Computer Science #7. [Video]. YouTube.
(12 minutes).
https://www.youtube.com/watch?
v=FZGugFqdr60&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=9&t=451s
CrashCourse. (2017, April 13). Instructions & Programs: Crash Course Computer Science #8. [Video]. YouTube. (11
minutes).
https://www.youtube.com/watch?v=zltgXvg6r3k&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=10&t=527s
CrashCourse. (2017, April 27). Advanced CPU Designs: Crash Course Computer Science #9. [Video]. YouTube. (12
minutes).
https://www.youtube.com/watch?v=rtAlC5J1U40&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=11
CrashCourse. (2017, May 4). Early Programming: Crash Course Computer Science #10. [Video]. YouTube. (9 minutes).
https://www.youtube.com/watch?
v=nwDq4adJwzM&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=12&t=174s
(Optional) Tomorrow Cooperation. (2015) Human Resource Machine. [Game]. Available on mobile too.
https://tomorrowcorporation.com/humanresourcemachine
HCs
CrashCourse. (2017, May 11). The First Programming Languages: Crash Course Computer Science #11. [Video]. YouTube.
(12 minutes).
https://www.youtube.com/watch?v=RU1u-js7db8&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=13
CrashCourse. (2017, May 18). Programming Basics: Statements & Functions: Crash Course Computer Science #12.
[Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=l26oaHV7D40&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=14
CrashCourse. (2017, May 25). Intro to Algorithms: Crash Course Computer Science #13. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=rL8X2mlNHPM&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=15
CrashCourse. (2017, June 1). Data Structures: Crash Course Computer Science #14. [Video]. YouTube. (10 minutes).
https://www.youtube.com/watch?
v=DuDz6B4cqVc&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=16&t=346s
Schafer, C. (2016, June 20). Python OOP Tutotial 1: Classes and Instances. [Video]. YouTube. (Watch until 4:45).
https://www.youtube.com/embed/ZDa-Z5JzLYM?start=0&end=285
Session 4: OOP Continued #2 Functions and Software Engineering
HCs
CrashCourse. (2017, June 8). Alan Turing: Crash Course Computer Science #15. [Video]. YouTube. (13 minutes).
https://www.youtube.com/watch?
v=7TycxwFmdB0&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=17&t=586s
CrashCourse. (2017, June 15). Software Engineering: Crash Course Computer Science #16. [Video]. YouTube. (11 minutes).
https://www.youtube.com/watch?v=O753uuutqH8&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=18
CrashCourse. (2017, June 22). Integrated Circuits & Moore’s Law: Crash Course Computer Science #17. [Video]. YouTube.
(14 minutes).
https://www.youtube.com/watch?v=6-tKOHICqrI&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=19
CrashCourse. (2017, June 29). Operating Systems: Crash Course Computer Science #18. [Video]. YouTube. (14 minutes).
https://www.youtube.com/watch?v=26QPDBe-NB8&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=20
Schafer, C. (2016, June 20). Python OOP Tutotial 1: Classes and Instances. [Video]. YouTube. (Watch until 12:43).
https://www.youtube.com/embed/ZDa-Z5JzLYM?start=0&end=763
HCs
CrashCourse. (2017, July 6). Memory & Storage: Crash Course Computer Science #19. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=TQCr9RV7twk&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=21
CrashCourse. (2017, July 13). Files & File Systems: Crash Course Computer Science #20. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=KN8YgJnShPM&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=22
CrashCourse. (2017, July 27). Compression: Crash Course Computer Science #21. [Video]. YouTube. (13 minutes).
https://www.youtube.com/watch?v=OtDxDvCpPL4&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=23
CrashCourse. (2017, August 3). Keyboards & Command Line Interfaces: Crash Course Computer Science #22 [Video].
YouTube. (11 minutes).
https://www.youtube.com/watch?v=4RPtJ9UyHS0&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=24
HCs
CrashCourse. (2017, August 10). Screens & 2D Graphics: Crash Course Computer Science #23. [Video]. YouTube. (12
minutes).
https://www.youtube.com/watch?v=7Jr0SFMQ4Rs&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=25
CrashCourse. (2017, August 17). The Cold War and Consumerism: Crash Course Computer Science #24. [Video].
YouTube. (11 minutes).
https://www.youtube.com/watch?v=m8i38Yq1wX4&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=26
CrashCourse. (2017, August 24). The Personal Computer Revolution: Crash Course Computer Science #25. [Video].
YouTube. (10 minutes).
https://www.youtube.com/watch?v=M5BZou6C01w&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=27
CrashCourse. (2017, August 31). Graphical User Interfaces: Crash Course Computer Science #26. [Video]. YouTube. (13
minutes).
https://www.youtube.com/watch?v=XIGSJshYb90&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=28
HCs
Python refactoring
CrashCourse. (2017, September 7). 3D Graphics: Crash Course Computer Science #27. [Video]. YouTube. (13 minutes).
https://www.youtube.com/watch?v=TEAtmCYYKZA&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=29
CrashCourse. (2017, September 14). Computer Networks: Crash Course Computer Science #28. [Video]. YouTube. (12
minutes).
https://www.youtube.com/watch?v=3QhU9jd03a0&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=30
CrashCourse. (2017, September 21). The Internet: Crash Course Computer Science #29. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=AEaKrq3SpW8&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=31
CrashCourse. (2017, October 5). The World Wide Web: Crash Course Computer Science #30. [Video]. YouTube. (12
minutes).
https://www.youtube.com/watch?v=guvsH5OFizE&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=32
(Optional) Editing Python in Visual Studio Code: Refactoring. (2022, November 3). Visual Studio Code.
https://code.visualstudio.com/docs/python/editing#_refactoring
HCs
CrashCourse. (2017, October 12). Cybersecurity: Crash Course Computer Science #31. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=bPVaOlJ6ln0&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=33
CrashCourse. (2017, October 19). Hackers & Cyber Attacks: Crash Course Computer Science #32. [Video]. YouTube. (12
minutes).
https://www.youtube.com/watch?v=_GzE99AmAQU&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=34
CrashCourse. (2017, October 26). Cryptography: Crash Course Computer Science #33. [Video]. YouTube. (13 minutes).
https://www.youtube.com/watch?v=jhXCTbFnK8o&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=35
CrashCourse. (2017, November 2). Machine Learning & Artificial Intelligence: Crash Course Computer Science #34.
[Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=z-EtmaFJieY&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=36
HCs
CrashCourse. (2017, November 2). Machine Learning & Artificial Intelligence: Crash Course Computer Science #34.
[Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=z-EtmaFJieY&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=36
CrashCourse. (2017, November 16). Computer Vision: Crash Course Computer Science #35. [Video]. YouTube. (11
minutes).
https://www.youtube.com/watch?v=-4E2-0sxVUM&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=37
CrashCourse. (2017, November 23). Natural Language Processing: Crash Course Computer Science #36. [Video].
YouTube. (12 minutes).
https://www.youtube.com/watch?v=fOvTtapxa9c&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=38
CrashCourse. (2017, November 30). Robots: Crash Course Computer Science #37. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=3XkL0qQ21Oo&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=39
TechGuyWeb. (2020, February 7). Setting up VSCode for Python programming. [Video]. YouTube. (22 minutes).
https://www.youtube.com/watch?v=W--_EOzdTHk
HCs
CrashCourse. (2017, December 7). Psychology of Computing: Crash Course Computer Science #38. [Video]. YouTube. (13
minutes).
https://www.youtube.com/watch?v=DEHsvQ3Ylwg&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=40
CrashCourse. (2017, December 14). Educational Technology: Crash Course Computer Science #39. [Video]. YouTube. (12
minutes).
https://www.youtube.com/watch?v=zTi3_l5h5PQ&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=41
CrashCourse. (2017, December 22). The Singularity, Skynet, and the Future of Computing: Crash Course Computer
Science #40. [Video]. YouTube. (12 minutes).
https://www.youtube.com/watch?v=5TNAz1HYg18&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=42
Policies
Tardiness
You are expected to be logged on to the Forum, ready to participate in class, by the class’s stated start time. You should
arrive a few minutes early to ensure that you have sufficient time to respond to any potential technical issues (see sections
below for policies). You will be considered late if you miss between 2 and 15 minutes of class in total, and absent if you
miss 15 minutes or more of the class session. There will be at least 15 minutes between class meeting times to
accommodate restroom breaks. Because it is very disruptive to the flow of class sessions when students join after class
has started, there will be consequences. Being late to class two times will be counted as an absence. A single late arrival
(defined as missing between 2 and 15 minutes of class in total) will have no impact on your absence total, and a third late
arrival will not affect the absence total beyond the one absence accrued after the second late arrival, unless a fourth late
arrival occurs; being late 4 times = 2 absences, which will count towards your total allowable absences. Late arrivals to
class due to verified technical problems, such as widespread wifi outages, will not be counted. An individual student not
having a functional computer or having appropriate wifi in time for class are not valid excuses. Absences resulting from
being late twice to class may or may not require makeup work, please check with your Peer Tutor.
Absences
Since Structured Study Sessions meet only once per week, we will follow the same rules for absences as Capstone
Seminars: you are allowed 1 personal absence and a maximum total number of absences for any reason of 2. Students
are encouraged to monitor their absences on their Forum dashboard. More information on these types of absences below:
Personal Absences: These absences may be taken at any time in the semester and for any reason. Students should
submit the “absences form” found on the registrar site and indicate that their absence was for personal reasons.
Please refer to the table below for the number of personal absences allowed based on the type of course. When a
student is absent, Forum will record this absence as unexcused. Students must submit satisfactory makeup work
within 7 DAYS from the absence for it to become excused (except for an absence due to being late twice as noted
above). Students may use personal absences for religious or national holidays. We encourage students to not use up
their personal absences early in the semester if possible, as they may need them to cover unforeseen circumstances
that do not qualify as extenuating circumstances. As noted below, some course types do not allow personal
absences.
Absences due to Extenuating Circumstances: Students who experience major extenuating circumstances (such as
severe illness, injury, family emergency, or personal loss) should submit the “absences form” found on the registrar
site, registrar.minerva.edu and indicate on the form why they are missing the class session. Submission of official
documentation is no longer required for absences. If needed (because of a chronic or longer term major issue), the
Academic Team approver will work with you and your instructor(s) to determine the best plan for you to successfully
complete your course or courses given your circumstances. All absences will require makeup work to be submitted
by the date designated by the approver, typically within 7 DAYS from the absence, although additional time may be
given depending on the circumstances.
Attendance at academic events (such as competitions or conferences) are not considered extenuating
circumstances. For these cases, you must use your personal absences and complete the makeup work with the
timeframe required.
Absences due to Lack of Engagement: If you show up to the session, but accomplish nothing while there, you will
be marked as absent. Peer Tutors will be using Forum’s capabilities to monitor progress in breakouts to ensure equal
and sufficient participation. We reserve the right to mark students absent if a Peer Tutor finds that the student did
not contribute to the completion of the activities.
Professional Behavior
In addition to the policies above, students must be aware of all policies pertaining to the Cornerstone Courses as outlined
in the Cornerstone syllabi and Student Handbook. In particular, we expect all Structured Study Session participants to
conduct themselves in accordance with the four pillars of the Minerva Honor Code.
What to submit: Satisfactory makeup work means completing ALL parts of the notebook relevant to the session.
This is the same material that students work on during breakouts during the session. It’s a great idea to visit Office
Hours for help with the makeup work!
How to submit: When a session is missed, a makeup work assignment should appear in Forum and must be
completed within 7 days. Forum accepts only pdf or zip files, so, to submit your Python notebook (ipynb), you must
compress it as a zipped folder. On a Mac, right-click the ipynb and select "compress." On windows, right-click the
file, select "send to" and then "compressed zipped folder." Should any difficulty be encountered, your notebook can
also be emailed to your Peer Tutor directly, and please cc [email protected]++++.++
Students who fail to submit makeup work for absences will be prohibited from enrolling in CS110 / Problem Solving with
Data Structures and Algorithms.