SmithLogo

CSC 103

How Computers Work

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:

  • Tuesday, Thursday 9:25 – 10:40 Ford 241

Contact for Class stuff: Use Discord first (see Course Materials), otherwise, go to office hours if possible. If you must, you can also email me.

Office Hours:
  • Tuesday (class Discord, 4 - 5 pm): Individual/Teams by appointment. Book an appointment Here
  • Tuesday (Ford 316, 5 - 6 pm): "Thematic" office hours as a group (we'll discuss concepts or examples for general cases).
Office Hour Rules:
  • Online Office Hours (class Discord, Tuesdays 4 - 5 pm):
    • We'll meet through Discord and do Individual/Team questions in breakout rooms.
    • We'll have "10-minute" meetings but you can come early to try to sneak in before.
    • If all appointments are taken, do still come in and I'll try to see you or establish a text exchange
    • Have your question(s) ready and all materials ready so that when you share your screen (or show your work) we can quickly see the problem.
    • Let me know through a direct Discord message if you'll arrive late.
    • If nobody shows up after 20 minutes and I have no appointments, I will leave.


    Communication expectations:

    In the Discord server, you'll see two text channels and 3 voice channels:

    • [Text] general: is for announcements or high-level clarifications)
    • [Text] questions: is for questions about HW, class concepts, etc.
    • [Voice] General: for general office hours or meetups with the instructor
    • [Voice] StudyGroup1: for random student meetups
    • [Voice] StudyGroup2: for random student meetups
    Note that we will try to use Discord threads to keep discussions organized.

    If a subject is llikely to receive many followup questions or comments, it can be converted to a thread:

    useThreads

    Subjects like "HW01", or "Midterm prep" will probably have their own thread.

  • Thematic Office Hours (Ford 316, Tuesdays 5 - 6 pm):
    • Focused on concepts and high-level issues, not on individual issues with your assignment. Otherwise, book a individual office hours or ask the TAs.
    • You can come with a group, or by yourself, and we'll discuss 3 or 4 different themes that are relevant to everyone.
    • You can suggest the themes using Discord, by requesting them after class, or when you arrive at OHs.

TAs: TBD Office Hours: Check Moodle

Objectives

This introductory course provides students with a broad understanding of computer hardware, software and operating systems. Topics include the history of computers; logic circuits; major hardware components and their design, including processors, memory, disks, and video monitors; programming languages and their role in developing applications; and operating system functions, including file system support and multitasking, multiprogramming and timesharing.

Another perspective:

  • If you ever had the urge to open a toy or a gadget to see how it works, this is for you;
  • If you have the heart of an inventor, this is for you;
  • If you simply want to be conversant in the main basic concepts of modern computation, this is for you;
  • Students are encouraged to form study groups and to collaborate on the assignments where it has been explicitly allowed. Please read “Collaboration Policy and Academic Honesty” in this syllabus.

    Assignments - When and what are they about?

    • We will generally assign a Homework every Thursday evening; If the subject is more complex, we won't release the HW until Friday.
    • Homework assignments will be due on Wednesday at 11:59 pm. Note that you will have the Thursday and following Monday office hours to seek support.
    • For more complex subjects (HWs issued on a Friday), HWs will be due the following Friday.

    Quizzes (15-min)
    The students should expect to take weekly quizzes that will emphasize basic facts and foundational skills while also serving as assessments of material presented in the previous week’s class. Quizzes are closed-book and closed-notes, and will be administered via Moodle. Quizzes are not to be discussed with other students. Quizzes will be posted on Saturday and will be due before a class on Tuesday. Quizzes are expected to be a recap of what students learn from the course material presented in the previous week’s class and they allow for the instructor to ensure the student is able to grasp the previous week’s material.

    Term paper

    As a culminating activity in this class, students will work in groups to research a topic of current interest relating to the world of computing in general. You will present the results of your research as a 4-6 page paper (1000-1500 words) and as an oral presentation to the class. All research topics must be approved in advance (typically in the third week of the course) so start brainstorming topics early.

    Prerequisites:

    • This class has no prerequisites. It is for anyone!

    Responsibilities - Students must

    • Attend all classes unless you are sick or there is an emergency. In these cases, please contact the professor.
    • Interact, ask questions, and generally participate in class discussions.
    • Complete the assigned preliminary readings and activities before each lecture.
    • Complete problems individually unless working in a group as specified on the assignment in which case you can work only with those group members. We do plagiarism detection so don't throw the course away.
    • When working with a group, it is essential that each group member pull their own weight, but also that other group members let them do so!

    Course Philosophies

    Throughout the class, students should focus on adhering to the following general tenets:

    • Try it! -- A common question is "will this work?", or "what will happen in this case?". The only reasonable answer is "try it and see!".
    • It is OK to make mistakes! -- an error is one learned lesson. After trying something, having that fail is as much a datapoint as a correct path.
      Note that we usually want correct paths after exploring and making a lot of errors so keep looking!
    • Ask for help when stuck! -- if you have 1) tried multiple paths and 2) you have explored the problem and made many mistakes, and you are still stuck, please seek assistance! that's what were here for!
      Believe it or not, we actually like teaching and helping you make progress.
    • Know your sources, and use them! -- We'll use web sources only. Be careful with online materials (like tutorials or articles): they are not necessarily correct!, so make sure they are from a reputable source and/or have been peer reviewed. Learn to use your sources productively to help to make progress.
    • Be proud of your submissions! -- Clarity above all. Use proper styling, and simplify your answers where you can to make it more understandable.
    • Planning is the best problem-solving tool! -- You should not jump into writing solutions or writing code before thinking about it thoroughly. Design your solutions by breaking them into logical parts that make sense independently and when put together to make an argument.
    • Practice methodical analysis! -- Spend time "stepping though" your work, statement by statement to understand the logic behind it, and why it is logically sound (or why it was marked as incorrect). Do not submit a solution that you don't fully understand with the hope of flying under the radar. We look deeply at your submissions to gauge your level of understanding.

    There is no required textbook for the course.

    We will be using web resources that will be linked through the course website and/or Moodle.

    • Webpage for the course (here) Class Info
    • Moodle: Course full name "CSC103-01: How Computers Work"
      Course Short name "CSC103-01_202201"; Category: Fall 2021
    • 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.
    • Discord: You'll receive an invitation to the server: smith-f21-csc103-01
    • For a detailed view of the Lectures and Activities, go to Schedule

    Grade Calculation:

    • Participation : 10%
    • Homework Assignments: 40%
    • Quizes: 30%
    • Term paper: 20%

    Late Submissions:

    Submissions received after the posted deadline will incur a penalty of -20% per day for up to two days (after which they will be ineligible for credit). Unless otherwise specified as part of a student's documented accommodations, requests for extensions outside of the two-day grace period will be granted only under the following conditions: 1) the request is made in writing (via Discord DM to the instructor) at least 48 hours in advance of the due date (and the instructor approves the extension); or 2) the professor has been notified by the student's dean that the student requires an extension for personal or health reasons.

    Submitting 1 second late is the same as a full day late. Plan ahead and submit early.

    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.

    Collaborations:

    Students are strongly encouraged to form study groups and to collaborate on problem sets, though each student will be required to write up and submit their solutions independently. The following information is required for all submitted work:

    1. The names of all collaborating students be listed at the top of the submission (I do not recommend groups larger than 3 or 4). If you worked alone, please state: "I did not collaborate with anyone on this assignment."
    2. A "References" section, with in-line citations to any resources you used. Citations should include page numbers (if a printed resource) or a direct URL (if an online resource). If you did not use any resources in completing the assignment, please state: "I did not utilize any external resources in completing this assignment."



    Grade Pie

    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 are derived from lectures, notes, or similar courses taught at this (thanks, Shinyoung, and Nick) and other institutions. Appropriate references will be included on all such material.