Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Class Information

Class Schedule and Office Hours

Professors:

  • Michael Robson (mrobson at smith): Section 01
  • Pablo Frank Bolton (pfrank at smith): Section 02

Class Schedule:

  • Section 01:
    • M/W/F 10:50 AM – 12:05 PM at Ford 241
  • Section 02:
    • Monday: 1:40 PM – 2:55 PM at Bass 204
    • W/F : 1:20 PM – 2:35 PM at Bass 204

Attendance is mandatory and will be recorded using lists and quizzes.

Contact for Class stuff: Use Slack (fastest), office hours (most detailed), or can also email us (slowest).

Office Hours:

  • Pablo:
    • Wednesdays (In-Person): 3:30 PM – 5:30 PM, Bass 102
    • Thursdays (Online Appointments): https://calendar.app.google/MaNA77oeme1yr2BQ6
      • Note: appointments are 15-minutes; you must be punctual; you must book 4 or more hours before; the appointment has a zoom link in the description. you may come in groups; you may NOT book more than one appointment per day.
  • Michael:
    • TBD

Location of OHs:

  • Michael: TBD
  • Pablo: Bass 102 (or check my office: Bass 217) / Zoom link with Calendly appointment (link in Moodle)

Office Hour Rules:

  • “open office hours” (TBD) are available to everyone, in groups or individually.
  • “appointment slots” (TBD) are by request (usually reserved for 1-on-1)
  • If you need in-person coding help, bring your question/bug prepared.
  • If you solve your issue before a scheduled appointment, cancel the appointment. No-Shows are bad!
  • Check the class notes / Slack before to check if questions have been answered already.
  • Show up on time! and have your question/program ready, otherwise your time will not be enough.
  • You can’t book an appointment fewer than 4 hours before the desired time.

Class TA:

TBD <!– * Help Room Hours CSC 110: Adriana, Chris, Quinn, and Sofia

  • Note that, even though these are the assigned tutors for the course, any other tutor should also be able to help. –>

Tutoring: TBD

See Tutoring information for details.

Note that this will get updated once all tutors/hours/locations are settled.

Drop-in Schedule: Sunday through Thursday: Ford Hall 241, 7 to 9 PM.

Objectives and Structure

CSC 110 is a gentle introduction to designing programs (recipes) for systematically solving problems. Students will learn to build programs including designing, coding, debugging, testing and documenting them. An introduction to block-structured procedural control flow including branching, iteration, and functions, using primitive and simple data types (lists). Students will understand the high level internal operation of computer systems (inputs, outputs, processing, and storage) and their application. Students will be exposed to the social and historical aspects of computing. This course is recommended for those who have no prior experience in computer science at the high school, AP, or college level.

Objectives - In completing this class, students will…

  • Design a sequence of steps that can solve a problem. The steps will involve actions Python can do and the problems usually refer to those that refer to “symbol” manipulation (math, text processing, graphics, etc).
  • Create and document computer programs using correct Python syntax that can be readily understood and used by other programmers.
  • Propose algorithms in order to analyze problems that use basic control flow constructs (e.g., if-then statements, loops, functions, lists, simple input-output).
  • Demonstrate foundational development techniques, including top-down design, program documentation, modular design, and library usage. <!–
  • Understand the high-level internal operation of a computer, including the central processing unit, simple memory management. –>

Effort Expectations: This class is an introductory class. This means it is designed to start with little to no prior experience and cover the basics. This does not mean it is necessarily easy. The course is a 4-credit course, which means you should expect to work around 12 hours per week.

The recommended distribution is:

  • approximately 4.5 hours of class time
  • approximately 5 hours every week on homework assignments
  • approximately 2.5 hours every week reading or studying (before and after class).

If you follow this general routine, the class should not be too challenging and it will tend to “feel” easy. If you do not follow this time investment, you will feel accumulating pressure.

Summary: Please put the time in to make sure you don’t feel unnecessary stress.

Course Topics: In CSC110 we will cover the following topics, but not necessarily in this order):

  • Components of a computer at an abstract level (i.e., input, output, storage, computation) and physical level (i.e., hard drive, CPU, keyboard, etc.)
  • Functions
  • Conditionals, Math Operators, Logical Operators
  • Loops and Iteration
  • Variables and Data Types
  • Strings
  • Lists
  • Dictionaries
  • Basic Graphics
  • Reading and Writing to Files Storage
  • User inputs and print formatting
  • Intro to the concept of an algorithm (e.g, as a recipe)

In addition to these core programming concepts, we will also work on some ancillary skills:

  • Problem solving (involving programing)
  • File systems (e.g., files, storage as bytes) and the cloud
  • Pair programming
  • Doc strings and commenting code
  • Testing code (esp. thinking of edge cases)
  • Debugging and tracing code
  • Designing a program (e.g., software development methodologies)
  • Version control using Git
  • Impacts and applications of Computing (e.g., social, ethical, historical)
  • Pseudocode 101

Prerequisites and Student Responsibilities

This course is recommended for those who have no prior experience in computer science at the high school, AP, or college level. Not open to students who have taken CSC 111. May not be taken concurrently with CSC 120.

Prerequisites: This course does not have any prerequisites. In this class, we will not assume that you have prior computer science or programming experience. If initially you find the pace of class too slow and homework too easy, then you are invited to help your peers in the lab, until everyone has caught up to your prior experience. To this end, everyone is expected to respect and honor the unique perspectives each participant brings to this course and work to help one another.

Responsibilities:

  • Attendance: You should attend all classes unless you have a valid excuse. We will use Moodle/Qualtrics Quizzes and Google forms to take attendance at least once a week. Unexcused missed classes mean a loss of points in “Attendance and Participation”.
  • START EARLY: the hardest part of any assignment is starting it. This is doubly so in programming, since the assignments have a lot of instructions and moving parts. We recommend starting assignments the same day they are issued so that you “break the ice”. We promise that if you develop this habit, you will see the results immediately.
  • Communication: The college and your instructor will really try to be there for you. We want you to succeed and enjoy your experience. To do so, we need to know how you are doing. So: please see us in office hours, participate in class (asking questions is the best way!), and keep an eye out for discussions on Slack.

Course Materials

  • Moodle: Course full name CSC110-01/02: Introduction to Computer Science
  • GitHub (GH): GH is a cloud based platform that hosts projects (coding) and tracks changes. Wait to get an account until we give you instructions in class.
  • Slack: You'll receive an invitation to a workspace: CSC-110-ALL-202603
  • Online Book: We’ll use the book How to Think Like a Computer Scientist: Interactive Edition (FREE link on Moodle)

Books:

You do not need to buy any textbook to be successful. The readings will be from free online sources. Below are textbooks that you may want to review as a resource and some students have found helpful in the past:

  1. How to Think Like a Computer Scientist: Interactive Edition (FREE) . Runestone Interactive Project at Luther College, led by Brad Miller and David Ranum.
  2. Think Python; 2nd edition (2015). Allen B. Downey. ISBN: 978-1491939369 (Note: eBook available for FREE).
  3. Python Programming: An Introduction to Computer Science. John M. Zelle. Franklin, Beedle & Associates; 3rd edition (August 8, 2016). ISBN: 978-1590282755 (Note: This is the newer edition, but the 2nd edition is also fine as a reference)

The Downey and Zelle books have been put on course reserve at the Library. If you need help covering the cost of textbooks or other academic supplies (for this or any of your courses!) please fill out the Academic Funding Application found at socialnetwork.smith.edu/forms (you must login before the forms will appear).

Course Dynamics

In this course, the best way to learn is by applying the concepts into exercises and projects. We will therefore try to reduce the “lecture” time and increase the “practice” time in every class. To achieve this, we will have students read before every class. Readings are optional but if you seek help, 99% of the time, the best first action will be to do the reading.

We will also have off-line concept quizzes (~15-30 minutes) where we will ask about concepts discussed during the week.

Attendance is extremely important. You should always inform the teacher before missing a class (through direct Slack message) and schedule an OHs meeting before returning to the next class. One or two misses in the whole semester are fixable. Three to four require a large effort to make up. More than four and you are in drop territory. So: save your misses for when you need them.

Individual work will comprise most of the assignments but you can opt in to do a final project,which will be in a group.

Learner Paths

In every intro class, there are people that have different strategies and intents: you’re just branching out (learning a new thing), you are just fulfilling a requirement, or you are starting the path in the discipline you want to stay in. That’s why, we will offer two learning routes.

  • Foundation (default): You just want to go the distance (learn a little and not get too bogged down by the details). You want the “S” (S/U) and don’t need to (or don’t care about) going further than 110. This is a path for people that are curious about programming and computational thinking but might not want to or need to use it too much in the future.

  • Exploration (opt in): you care about how things work and you might be interested in continuing to study CS or a related field. You also want the “S” in S/U, but want more details and a greater resolution. Recommended for Majors and Minors in CS, or curious people that don’t mind working hard and doing a bit more (to learn more).

Grading

The final grade for this course is S/U (Satisfactory/Unsatisfactory); However, the way we will obtain this grade will be by running a “Normal” grading scheme and converting grades the following way:

  • 0% to 69.9% : Unsatisfactory
  • 70% to 100% : Satisfactory

Grade Calculation

(The following grade calculation may be modified slightly depending on how the semester progresses)

Foundation Learning Path:

  • Homework Assignments (6-8 graded assignments): 30%
  • Weekly Quiz Grades (6-8 graded quizzes): 10%
    • with point recovery opportunities
  • Participation (many ways to do it): 10%
    • Class attendance
    • In-class participation
    • Weekly book exercises (and readings)
    • Attendance to office hours
    • Polls and surveys
  • Midterm exam: 20%
  • Final assignment: 10%
  • Final exam: 20%

Exploration Learning Path:

  • Homework Assignments (6-8 graded assignments): 30%
  • Weekly Quiz Grades (6-8 graded quizzes): 10%
    • with point recovery opportunities
  • Participation (many ways to do it): 10%
    • Class attendance
    • In-class participation
    • Weekly book exercises (and readings)
    • Attendance to office hours
    • Polls and surveys
  • Midterm Exam: 20%
  • Final Project (~3-week final project): 30%

Late Work Policy

Everyone has a tough week from time to time and we want to be able to accommodate these situations fairly for everyone.

Late work up to three calendar days (i.e., up to Monday night at 10pm if work is due on Friday) will be accepted for Homework Assignments as long as you meet the following conditions:

  1. You must send your instructor a direct message (DM) on Slack by the original assignment deadline, detailing the following: that the assignment will be late (include assignment number), how many prior late assignments you have submitted, and when it will be submitted by. (Requests will not be accepted by email.)
  2. You must submit a partially completed assignment on GitHub Classroom by the original assignment deadline, showing what you have completed thus far. Include the word INCOMPLETE in all file names that are submitted.
  3. Acknowledge that there is no instructor support over the weekend.
  4. Acknowledge that your assignment will be graded and returned late.
  5. Submit your work by the agreed upon deadline with the original file names (i.e., remove the word INCOMPLETE), additional extensions cannot be granted.

Below is a template for your late work request:

Hi <instructor name>, I request to submit Homework Assignment #<number> late. This is my second late work request. I have submitted my incomplete assignment to GitHub and will update this with my final submission by Monday night at 10pm. I acknowledge that there is no instructor help over the weekend. I agree that my assignment will be returned late.

Late work will NOT be accepted after the original extension deadline. The only exception to this is in extenuating circumstances with notification from the class deans office.

  • If you are requesting an extension longer than three calendar days, then you must discuss this with the instructor well in advance of the deadline.
  • Groups that require extensions for any project deadline, should contact the instructor well in advance of the deadline.

Also, for Office Hours, you must show progress up to the point where you got stuck.

Accommodations:

As individuals, we learn in different ways. We try to vary the activities used during the course to suit a variety of learning patterns, and we are always open for suggestions. Please come talk to us if you have an idea that will make the course more accessible to you and/or other students. If you need special accommodation, like extended exam time, please submit requests for accommodations in writing with proof of College support from the Accessibility Resource Center (ARC) within the first two weeks of class. Let us know if you need help with this process.

Academic Integrity Statement

Team assignments require collaboration amidst each team, but no collaboration between teams is permitted without explicit permission. If you did not work in a team then you are not allowed to collaborate on the homework assignments. We use software to compare submissions, so please don’t risk it. If you’re having significant trouble with an assignment, please contact us.

Please check the Student Handbook to see the rules for Academic Integrity.

Just as you can do a Google search for code online, it is trivial for us to do the same. If you feel pressured about an assignment, please come see me instead of cheating.

Use of generative artificial intelligent (AI) and AI assistants in this class:

Policy Motivation: It is likely true that every problem and question in this course is solvable via ChatGPT or GitHub Copilot. This was an issue before these AI assistants came on the scene. Possible solutions to most problems in this type of course were used to train Copilot and were already available on the internet just by using a search engine (and using a search engine uses less electricity!). We could make a moral or ethical argument to you about how it is dishonest to use these tools in this class. Instead, we argue that the purpose of us teaching this class is to train you to think through programming problems. This skill will prove valuable in future CS courses and for your future no matter your career aspirations. Students who go on to further CS education without internalizing basic programming constructs and foundational CS principles significantly struggle with intermediate CS concepts. There’s a world in which we could just write “you are explicitly forbidden from using generative AI in this course,” but given how accessible these tools are, we–as instructors–need to acknowledge that such a ban is just not practical or feasible.

Our other motivation to the below policy is modeling for you responsible use of new and emerging technologies in the context of professional integrity. This motivation is in line with the goals and purpose of the Smith College Honor Code, which is now the Academic Integrity Statement, which can be found here.

Generative AI Policy:

  • Inside Class and on Self-Scheduled Tests: There is absolutely no generative AI allowed.
  • Outside of class: It is our assumption that you will attempt the problems and questions on your own first before consulting any other resources. If after you’ve done a few of the following:

    • Consulted with a fellow student
    • Reviewed your class notes
    • Come to an instructor’s office hours
    • Read the textbook
    • Worked with a TA
    • Posted a question to Slack

    and you still feel like generative AI is going to help you with the assignment, then you will need to submit the following 4 part documentation statement as a PDF with your assignment.

    1. State what resources you consulted first. If you worked with another person (fellow student, TA, or the instructor), please note the date.
    2. Summarize what you asked the generative AI to help you with.
    3. Create a PDF of the whole transcript of your interaction with the generative AI.
    4. State what the generative AI gave you and what you did to that output before submitting your assignment.

    Note that whatever code or descriptions you add to your homework need to be understood by you. If you are unable to explain the code, then your case will be forwarded to the Academic Integrity Board.

We acknowledge that what happens beyond the course is only in your control. But we again want to reiterate that our motivation for teaching this course is to help you learn computing concepts. As instructors with decades of collective experience, we have seen how using tools like generative AI can inhibit learning.

Want to read more? Check out what the Smith College Academic Integrity Board says here.

Acknowledgement: This policy was inspired by the generative AI policies developed by Dr. Brianna Hitt (USAFA) and Dr. Ben Baumers policy for SDS 291.

Respect, Inclusion, & Equity

Everyone is welcome to make themselves comfortable in our classroom and asked to be respectful of one another. Additionally, keep in mind that our wide array of individual backgrounds shape our unique perspectives, so please respect one another when we have sincere differences of opinion.

Everyone is free to use concentration accommodations like fidget toys, knitting, doodling, moving around, or sitting on the floor; just be mindful your focus does not disrupt others. Parents and caregivers may bring their babies and children to class whenever necessary. Learners of all stages are invited to join us.

I know that a welcoming learning environment can have a real impact, and so I am committed to making this classroom a comfortable place for all my students. Please let me know if you ever have thoughts, questions, or concerns about ensuring that we treat one another equitably.

Academic and Mental Health Resources

The following are resources available to you that may provide assistance and support during the semester. They provide help for learning, mental health, and wellness.

Learning resources:

Mental Health and Wellness resources:

Additional support resources:

Anonymous Feedback Form

We will add a link inside Moodle to an anonymous feedback form so you can let us know if there is anything getting in the way of your learning.

Comments from previous semesters

I usually add a section with the exact copies of recommendations from students in previous semesters. Since ALL of them are exactly of the same vein, I simply summarize them here:

  • Ask for Help: If you already know everything, you should be in the next class. Otherwise, you are exactly in the right class and the way to learn is to ask. Go to Office Hours often, even if you only need a safe space to work in. Go to TA-hours, they are great and know all the tricks. Ask your classmates! (just don;t share code).
  • Plan Before Coding: You are going to want to start using your keyboard before thinking about the problem… THAT IS THE ENEMY. Stop yourself and plan ahead. Write your idea in english or in bullet points, or even draw a diagram of the steps that will be needed. It might take 5 minutes before you ca start, but it will save you HOURS of debugging.
  • Start Early: Coding is not like writing an essay. You can’t just put in 2 hours of work and say “wherever it is by the time I’m done, that’s what I’m turning in”. No. This either works or not, and it might take 1 hour or 7 (depending if you asked for help and/or planned before coding). The best way to deal with this is to start the day the assignment is issued and then come back to it early and often until it is out of the way.
  • Don’t be affraid to make mistakes: Getting errors and warnings is not something to avoid. THAT IS THE WHOLE CLASS: how to plan around them before they hapen AND solve them WHEN they do. The in class exercises and office hours are for getting things wrong and learning from them. Even the homework and quizzes are designed such that you can learn fromm your mistakes and not be too scared about losing points. Try things out and deal with any errors calmly.
  • Students tend to say they learned a lot (despite the amount of work), that they liked the class, and to go see me and ask questions because I am not scary… but I’ll leave that to your own judgement.

Q & A

  • Q: When are the instructor’s office hours?
    • A: See the schedule in Moodle. Locations and times might vary but we’ll update you over Slack.
  • Q: Where are office hours?
    • A: TBD
  • Q: What can I do if I am not free during office hours?
    • A: we can set up an appointment to meet over zoom (usually 10 min). Also, there will be TA help available (TBD).
  • Q: When are the TA’s office hours?
    • A: TBD.
  • Q: Can I submit Homework Assignments late?
    • A: Only with prior permission (Slack) given an explanation or because of emergency (e.g. health); HWs build on each other so the maximum extension is 3 days.
  • Q: Can I complete a quiz late?
    • A: Only with prior permission (Slack) given an explanation or because of emergency (e.g. health); Quizzes usually issued on Fridays and due BEFORE class on Monday.
  • Q: Can I do the reading exercises late?
    • A: No (because they are needed before the lecture). Remember, they are optional.
  • Q: Will you record classes?
    • A: No.
  • Q: Can I “attend” classes over Zoom?
    • A: Only due to health reasons and with prior permission from the instructor. In addition, the instroctor will not manage the zoom call so you need to get a classmate to: 1) sit in front, and 2) manage the zoom call and your questions.
  • Q: How is this class graded?
    • A: The format is S/U (Satisfactory/unsatisfactory) but run as a traditionally graded course so that you get an S (Satisfactory) if you get a 70% or higher during the course and U (Unsatisfactory) otherwise. See details in the Syllabus.
  • Q: Do I need a laptop?
    • A: Yes; Mac or PC is ok (tablets like ipads and Chromebooks are too weak).
  • Q: Do I need a to know some coding beforehand?
    • A: No.
  • Q: What do I need to get started?
    • A: Access to the website, access to moodle for the course, access to the Slack workspace for the course.
  • Q: What do I do if I am not officially registered (I don’t have Moodle)?
    • A: The course has a cap, and only if students leave will I let other students in. I will pick students based on the waitlist with no preference given to anyone.

Acknowledgement

Some of the materials used in this course and this syllabus are derived from previous offerings of this and other courses at Smith College, as well as similar courses taught at other institutions. Appropriate references will be included on all such material.


Table of contents