SmithLogo

CSC 111

Introduction to Computer Science Through Programming

Smith Computer Science

Class Information


Information

These sections contain information about how the class is run

Professor: Pablo Frank Bolton (pfrank at smith)
Research interests: Human-Robot Interaction, Robotic Perception, STEM education
Class Schedule:

  • Monday, Wednesday, Friday (Sec 01) 9:25 – 10:40 Ford 241 and/or Zoom (see "Zoom Lectures" below

Zoom Lectures:
For every class, I will have a simultaneous Zoom session where I will be sharing my screen and a small window pointing at the board. The link will be shared through Moodle.
  • This is used to record every lecture and can be used for review or excused absences.
  • Except for the first week of classes (unless we extend that) or any excused in-person absences, you are supposed to attend in-person.


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

Office Hours:
TBD
Office Hour Rules:
TBD

Objectives - In completing this class, students will...

  • 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.
  • Explain core computer science topics, such as complexity, object-oriented programming (OOP), sorting, and recursion.


  • This course will also help you develop the Essential Capacities for Smith Students.

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

  • How Computers Work
  • Logical and Mathematical Operators
  • Conditionals, Iteration, and Loops
  • Strongs, Lists, and Dictionaries
  • User Input and Output
  • Functions and main()
  • Random Numbers, Debuging, and Testing

In addition to these core programming concepts, we will also introduce foundational computer science principals:
  • Classes and Object-Orientation
  • Graphics and Animation
  • Files and Data Storage
  • Advanced Topics: Recursion, Sorting

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 honour 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 (see "Covid-19 rules", under "Grading").
    I will use Google forms to take attendance/run quizzes at least once a week. Unexcused missed classes mean a loss of points in "Attendance and Participation".

  • Webpage for the course (here) Class Info
  • Moodle: Course full name "CSC111-01: Introduction to Computer Science Through Programming"
    Course Short name "CSC111-01_202203"; Category: Spring 2022
  • Repl.it:
    Repl.it is a cloud based platform that allows the creation, assigning, completion, testing, and grading (manual or automatic) of programming assignments. You need to register for it (you'll receive an invitation from the instructor) so you can complete readings, exercises, and assignments.
  • Slack: You'll receive an invitation to the workspace: smith-s22-csc111-01
  • For a detailed view of the Lectures and Activities, go to Schedule


Books:
There is no required textbook for the course, and you do not need to buy any textbook to be successful.

Below are textbooks that you may want to review as a resource and some students have found helpful in the past: % few recommended books that some students may find helpful:

  1. Allen B. Downey. Think Python; 2nd edition (2015). ISBN: 978-1491939369 [Note: eBook available for **FREE**](http://greenteapress.com/thinkpython2/thinkpython2.pdf).
  2. John M. Zelle. [Python Programming: An Introduction to Computer Science](https://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282752). 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.
  3. ZyBooks. CSC 111: Introduction to Computer Science Through Programming. ISBN: 979-8-203-93703-2 (see below).

The Downey and Zelle books have been put on course reserve at the Library.

How to buy the ZyBook ($69.30):
  1. Sign in or create an account at [learn.zybooks.com](http://learn.zybooks.com)
  2. Enter zyBook code: `SMITHCSC111Spring2022`
  3. Subscribe

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).

Grade Calculation:

  • Homework Assignments: 40%
  • Attendance and Participation 10%
  • Test 1: 10%
  • Test 2: 10%
  • Final Project: 20%

Late Submissions:

TBD

Accommodations:

As individuals, we learn in different ways. I try to vary the activities used during the course to suit a variety of learning patterns, and I am always open for suggestions. Please come talk to me 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 Office of Disabilities Service within the first two weeks of class. Let me know if you need help with this process.



Class rules during COVID-19:

  • Attendance: Any student asked to self-quarantine or that is feeling sick is excused from attending during the quarantine period. You are still responsible for attending the Zoom room for the course and any assignments that are issued during this time.
  • Assignments: If you are quarantining/sick, you may discuss with me what if any extension is appropriate.

Team assignments require collaboration amidst each team, but no collaboration between teams is permitted. 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 me.

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.

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:

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.

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.