CSCI 101 - Intro to Computer Science

Fall 2020 - Syllabus

Quick Links: zyBook | Piazza | Canvas | CS @ Mines

Home | Contact | Schedule | Assignments | Syllabus |


Course Description:
This course is an introduction to the building blocks of Computer Science. Students will engage in activities that show how computing changes the world and impacts daily lives. Topics include conventional algorithm design and efficiency, computer hardware, operating systems, computer networking, cybersecurity and privacy, artificial intelligence, and programming languages. Various optional topics in computer science are discussed as well, depending on the semester. A popular procedural programming language (Python) will also be used by students with assignments that explore the topics discussed in class.

There are no prerequisites for this course. If you are new to programming, then you must enroll in the LAB course associated with this class (CSCI 102). In other words, students in CSCI 101 who are not in CSCI 102 should start the semester with significant prior experience programming in some language.

If interested in more details on what we'll cover in this course, see the list of  Course Topics 

Main Required Book (purchase electronically):
Our main textbook this semester is an electronic book called CSCI 101: Introduction to Computer Science, which was created specifically for this course. Our zyBook contains material from four zyBook titles:
  • Computing Technology for All
  • Introduction to Computer Systems and Assembly Programming
  • Troubleshooting Basics
  • Programming in Python 3
To purchase our zyBook,
  1. Go to zyBooks ( and create an account with your email address.
  2. Enter zyBook code: MINESCSCI101CampFall2020
  3. Subscribe ($77)
  4. Note: Python chapters (Chapters 14-24) are available as a reference for CSCI 101 students. These chapters are required material for CSCI 102 students.

Optional Book (if you also want a hard copy of a book):
The following textbook covers most of the material in the zyBook and more. We will cover some material from this textbook in class. Normally copies of this book are on reserve in the Arthur Lakes Memorial Library; alas, not this semester (due to COVID-19).
  • G. Michael Schneider and Judith Gersting, Invitation to Computer Science, 7th edition, Cengage Learning, ISBN-13: 978-1305075771

Course Objectives:
The objectives of this course are to introduce students to the field of computer science. At the end of this course, students will be able to:
  1. Explain common computing acronyms and terms and how they apply to computing hardware, software, and applications.
  2. Demonstrate how elementary hardware concepts are used to construct modern computing systems.
  3. Describe steps to take to increase the security of computers and information.
  4. Develop a detailed algorithm from a word problem.
  5. Create an efficient computer program to solve a problem in a high-level language (Python).
  6. Evaluate the efficiency of an algorithm and understand the computational limits of conventional computers.
  7. Summarize the data science process.
  8. Assess social and/or ethical implications of various computing technologies and human decisions as they are used in solutions addressing various problems and challenges.
  9. Use computers and computer networks toward the advancement of science, engineering, and the greater society in which they operate.

Computer Facilities and Assistance:
You need a Mines multipass account to use the lab machines available across campus, which most students create during EPICS. If you do not have this account, visit If you have trouble, contact the Computer Commons Help Desk in room 156A of CTLM. We will use the Python 3 programming language, which we suggest you install on your home machine. We will provide instructions for doing so in CSCI 102 and will assist any student installing on their laptop.

Student Evaluation:
There is a total of 1000 points in this course. Grades will be assigned on the following basis:

Quizzes Explore Project Python Projects Create Project Homework Exam One Exam Two Python Exam Final Exam zyBook Completion
60 pts
80 pts
60 pts
70 pts
120 pts
150 pts
150 pts
50 pts
200 pts
60 pts

     * some Python projects and homework assignments will be worth more than others
     ~ all Python assignments will be graded using Python 3

Quizzes: We will have several quizzes throughout the semester, with most given at the start of class (which means you don't want to be late!). The purpose of the quizzes is to ensure you are keeping up with course material, especially the assigned readings and videos. Good news: half the daily quiz points are earned just by taking the quiz!

Explore/Create Projects: You’ll work on the Explore Project the first half of the semester and the Create Project the second half of the semester (both of which are projects in the AP Computer Science Principles course). The Explore Project has you explore, present, and write about a computing innovation of your choosing. The Create Project has you create a final Python project, again of your choosing. These projects are pretty open-ended, allowing you to choose both the area of interest to focus on and the level of difficulty to take that focus. We encourage students with prior computing experience to go big!

Python Projects: These projects will be smaller in nature than the Create Project, each with a goal for you to practice some feature of the Python language.

Homework: This category is for all the other miscellaneous assignments that you'll do this semester.

Exams: We’ll have two exams during the semester, as well as a Python language exam (toward end of semester) and a final (cumulative) exam.

zyBook chapters will be assigned each week. Students should complete the chapters as they are assigned. Participation AND challenge problems count toward completion.

Expectations: You are expected to attend all classes and come prepared to actively participate in the activity and discussion for the day. Your attendance is important for several reasons:
  • Coverage of material that is not in the zyBook.
  • Participation in active learning, where we all learn from each other.
To do well in this course, you must keep up with the assigned videos, zyBook activities and homework assignments, as well as engage in the in-class activities. We promise to prepare you and to provide you with the tools needed to succeed. All students are advised to be familiar with university policy regarding the make-up of work missed due to excused absences. This policy may be found in the Catalog.

Final Grades: Your final grade will be determined using a straight scale. The straight scale assigns letter grades as follows:
  • [93, 100] -- A
  • [90, 93) -- A-
  • [87, 90) -- B+
  • [83, 87) -- B
  • [80, 83) -- B-
  • [77, 80) -- C+
  • [73, 77) -- C
  • [70, 73) -- C-
  • [67, 70) -- D+
  • [63, 67) -- D
  • [60, 63) -- D-
  • [ 0, 60) -- F
The programming piece of this class is important (as other courses include 101 as a prereq due to the programming piece). Thus, to pass this course, you must pass (60% or higher) the Python Exam (given toward the end of the semester) and the Create Project. If you do not meet one of these requirements, you will receive an F for the course. If you are new to programming, then you really need to be in the LAB associated with this class (CSCI 102).

Submission/Grading Information:
  • After a grade on some assignment is posted in Canvas, students have ONE week to review and contest the assigned grade. If you are concerned over the grading of a particular assignment, post a note in Canvas. If you cannot resolve the issue through Canvas, contact Rena Loving (ljloving).
  • Late Policy:
    • (00h 00m, 24h 00m) Late: -20%
    • [24h 00m, 48h 00m) Late: -40%
    • [48h 00m, 72h 00m) Late: -60%
    • [72h 00m, INF) Late: -100%
    Assignments submitted 4 days or more after the due date are not graded. Weekends count as two late days. All work must be turned in by our last class.
  • Assignments may not be re-submitted after they have been graded.
  • All Python projects will be graded with Python 3 ( It is your responsibility to ensure your Python project submissions work in Python 3.

Remote Students:
Proctorio, an online proctoring tool, will likely be used during this course for remote students taking 101 exams. Students are required to have a webcam (USB or internal) with a microphone and a stable internet connection. During the exam, Proctorio will record the testing environment; therefore, students should select private spaces for the exam session where disruptions are unlikely and where recording devices can be enabled. Instructions for Proctorio use will be provided. If you have concerns about using an online proctoring tool, you must work with your instructor to find an equivalent alternative. Remote students are also welcome to take the 101 exams on campus or to take CSCI 101 another semester.

Please see the minimum technology requirements for using Protorio.

Course Support:
  1. CSCI 101 U-CLIMB Mentors are available to help you, via weekly office hours. You can see their availability on the CSCI 101 course web site (under Contact).
  2. Piazza will be our course communication tool. A few suggestions:
    • Be polite. This applies to assignment clarifications (e.g. writing “This requirement makes no sense” is not the best phrasing. Instead, try something like: “I’m not clear what requirement X means. Should I do [a] or [b]?”)
    • A Piazza post is not a text message; use complete sentences and correct spelling, punctuation, and grammar.
    • Carefully think about the best way to phrase your question so it is understandable by others.
    • Check to see if your question has already been asked/answered before posting!
    • Anonymous posts are anonymous to the students in the class, not to the instructors/mentors.
    • In regards to Piazza posts about Python projects:
      • Never, ever, post your entire code on Piazza (unless instructed to do so). Instead post a small portion of your code that you are suspicious about. Not including the bit of code is like ordering pizza by saying, "Hi, I'd like some food, please." (Uh, what food? What size pizza? What toppings? And do you want extra napkins?).
      • Be specific. An email (or private post on Piazza) merely stating "something is wrong with my code, can you please take a look" is not likely to elicit an effective response. What do you think is wrong? Give your Tutor / Instructor a hint.
      • Never, ever, copy code that is posted on Piazza and paste such code into your own project (unless instructed to do so).
    • All students are also encouraged to seek academic support from the Center for Academic Services & Advising (CASA). CASA provides advising, tutoring, academic enrichment workshops, etc. Please take advantage of this valuable resource!
    • The Writing Center, located in Stratton Hall 301, is here to help all members of the Mines community with writing projects at any stage of the writing process. To make an appointment, please visit their online scheduling system at:

Learning Environment:
Fundamentally, we expect and require respect in this course for yourself, your classmates, and your instructor and teaching assistantships (TAs).
  • Respect for yourself includes taking care of yourself physically and mentally and advocating for an environment that facilitates learning for you.
  • Respect for your classmates includes recognizing and appreciating the diversity of backgrounds and experiences of your classmates and making it your interest to foster a learning environment for everyone; all are welcome.
  • Respect for your instructors (as well as your classmates) includes not participating in disruptive or distracting behavior: talking, playing games, or web surfing during lecture, for instance, make it difficult for others to focus on the reason we are all here.
  • Respect must be mutual to be effective; we (your instructors) and your TAs will be held to the same standards of respect.
Disability Support Services:
The Colorado School of Mines is committed to ensuring the full participation of all students in its programs, including students with disabilities. If you anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with me. Students with disabilities may also wish to contact Disability Support Services (DSS) to discuss options to removing barriers in this course, including how to register and request official accommodations. Please visit their website at contact and additional information. If you have already been approved for accommodations through DSS, please meet with your instructor at your earliest convenience so you can discuss your needs in this course.

Accessibility within Canvas:
If interested, read the Accessibility Statement from Canvas to see how the learning management system at the Colorado School of Mines is committed to providing a system that is usable by everyone. The Canvas platform was built using the most modern HTML and CSS technologies, and is committed to W3C's Web Accessibility Initiative and Section 508 guidelines.

Academic Integrity:
All students are advised to be familiar with university policy on Academic Integrity. In addition, CS@Mines faculty have adopted a Collaboration Policy for all courses. This policy is a minimum standard; your instructor may decide to augment this policy. You should read the CS@Mines Collaboration Policy closely. For CSCI 101, here are a few items to be aware:
  1. You are encouraged to discuss (NOT copy) assignments with other students in the class.
  2. If you discuss an assignment with anyone (not counting instructors/mentors), you must list their names in your submitted assignment AND provide a brief summary of the discussion.
  3. You are not allowed to give code you have developed to another student NOR copy code created by someone else.
  4. You are allowed to view another student's code ONLY for the purpose of offering/receiving debugging assistance.
  5. You can ONLY share your screen in a 1:1 breakout room with an instructor/mentor/TA.
  6. Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical or otherwise] of the discussion.
  7. Any material from any outside source, such as books, projects, and in particular, from the Web, should be properly referenced.
  8. If you are aware of students violating this policy, you are encouraged to inform the professor of the course.
  9. Violating this policy will be treated as an academic misconduct for all students involved (both the helper and the cheater). See the Student Handbook for details on academic dishonesty.
NOTE: All issues of misconduct are reported to the Dean of Students. Academic misconduct may result in course failure for all students involved (both the helper and the cheater).

The complete Academic Integrity Policy can be found in the Mines’ Policy Library.

Discrimination, Harassment, and Title IX:
All learning opportunities at Mines, including this course, require a safe environment for everyone to be productive and able to share and learn without fear of discrimination or harassment. Mines’ core values of respect, diversity, compassion, and collaboration will be honored in this course, and the standards in this class are the same as those expected in any professional work environment. Discrimination or harassment of any type will not be tolerated. As a participant in this course, we expect you to respect your instructor and your classmates. Your instructor has the responsibility to foster a learning environment that supports diversity of thoughts, perspectives and experiences, and honors your identities. If something is said or done in this course (by anyone, including your instructor) that made you or others feel uncomfortable, or if your performance in the course is being impacted by your experiences outside of the course, please report it to: In this course, we will cultivate a community that supports survivors, prevents interpersonal violence, and promotes a harassment free environment. Title IX and Colorado State law protects individuals from discrimination based on sex and gender in educational programs and activities. Mines takes this obligation seriously and is committed to providing a campus community free from gender and sex-based discrimination. Discrimination, including sexual harassment, sexual violence, dating violence, domestic violence, and stalking, is prohibited and will not be tolerated within the Mines campus community. If these issues have affected you or someone you know, you can access the appropriate resources here: You can also contact the Mines Title IX Coordinator, Katie Schmalzel, at 303.273.3260 or for more information.

It's on us, all of the Mines community, to engineer a culture of respect.

Diversity and Inclusion:
At Colorado School of Mines, we understand that a diverse and inclusive learning environment inspires creativity and innovation, which are essential to the engineering process. We also know that in order to address current and emerging national and global challenges, it is important to learn with and from people who have different backgrounds, thoughts, and experiences.

Our students represent every state in the nation and more than 90 countries around the world, and we continue to make progress in the areas of diversity and inclusion by providing Diversity and Inclusion programs and services to support these efforts.

Absence Policy:
The Student Absences webpage outlines CSM's policy regarding student absences. It contains information and documents to obtain excused absences.

Note: All absences that are not documented as excused absences are considered unexcused absences. Your instructor may deny a student the opportunity to make up some or all of the work missed due to unexcused absence(s) OR may grant a student permission to make up missed academic work for an unexcused absence. Your instructor may consider your class performance, as well as your attendance, in this decision.

In the case of an absence, the student is responsible for determining what work was missed and for putting forth a good faith effort to review the material on their own.

Maintenance/Legal Clause:
This syllabus is intended to give students guidance on our course this semester and will be followed as closely as possible. The lead course professor reserves the right to modify, supplement and make changes as the course needs arise. This syllabus is not a legal document; common sense rules always apply, e.g., no late assignments will be accepted after the solutions are discussed in class.

Oredigger Promise - We Climb Together:
Orediggers climb together. Orediggers look out for each other.
It will take a shared commitment from each and every one of us to stop the spread of COVID-19, open campus and be together at Mines this year. We take great pride in being a top engineering and applied sciences university and we will strive to be the exemplar in preventing the spread of COVID-19 in a university setting.

Therefore, as a member of the Oredigger community, I promise to protect classmates and colleagues, our families and neighbors, and myself by adopting the practices and attitudes summarized below; I will:
  • Complete training sessions to learn required safety practices and expectations for learning, working, and living on campus.
  • Monitor my health daily. I will report to a medical professional if I experience any of the COVID-19 symptoms: fever of 100.4F or higher, dry cough, difficulty breathing or shortness of breath, chills, unusual muscle aches, sore throat, or new loss of taste or smell.
  • Stay home if I have COVID-19-related symptoms, even if I feel well enough to come to campus.
  • Isolate and self-quarantine for the prescribed period of time after exposure to someone who is ill or has tested positive for COVID-19.
  • Maintain appropriate social distancing in all settings, both on- and off-campus.
  • Wear an appropriate face covering over my mouth and nose when indoors and in any other setting where it is difficult to maintain social distancing, and use any other protective gear prescribed by the university.
  • Wash my hands frequently using soap and water or hand sanitizer. Contribute to the cleaning of classroom surfaces as requested.
  • Carefully observe and follow campus and building instructional signs and directions.
  • Participate in COVID-19 testing and contact tracing to preserve the wellness of the community
  • Be positive and gracious when others provide safety reminders and suggestions
  • Be attentive and helpful to anyone around who may be in need of support.
CARE @ Mines:
If you feel overwhelmed, anxious, depressed, distressed, mentally or physically unhealthy, or concerned about your wellbeing overall, there are resources both on- and off-campus available to you. If you need assistance, please ask for help form a trusted faculty or staff member, fellow student, or any of the resources below. As a community of care, we can help one another get through difficult times. If you need help, reach out. If you are concerned for another student, offer assistance and/or ask for help on their behalf. Students seeking resources for themselves or others should visit

Additional suggestions for referrals for support, depending on comfort level and needs include:
  • CARE at Mines: for various resources and options, or to submit an online “CARE report” about someone you’re concerned about, or email
  • CASA - for academic advising, tutoring, academic support, and academic workshops
  • Counseling Center – or students may call 303-273-3377 to make an appointment. There are also online resources for students on the website. Located in the Wellness Center 2nd floor. Located at 1770 Elm St.
  • Health Center - or students may call 303-273-3381 for appointment. Located in Wellness Center 1st floor. • Colorado Crisis Services - For crisis support 24 hrs/7 days, either by phone, text, or in person, Colorado Crisis Services is a great confidential resource, available to anyone. , 1-844-493-8255, or text “TALK” to 38255. Walk-in location addresses are posted on the website.
  • Food and/or Housing Insecurities - Any student who faces challenges securing their food or housing and believes this may affect their performance in the course is urged to contact the Dean of Students for support. Furthermore, please notify your professor if you are comfortable in doing so. This will enable your professor to provide resources that may be available.

All of these options are available for free for students. The Counseling Center, Health Center, and Colorado Crisis Services are confidential resources. The Counseling Center will also make referrals to off-campus counselors, if preferred.

In an emergency, you should call 911, and they will dispatch a Mines or Golden PD officer to assist.

Valid HTML 4.01 Strict Valid CSS! Level Triple-A conformance, W3C WAI Web Content Accessibility Guidelines 2.0