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 computer hardware, operating systems, models of computation, algorithm design and efficiency, cybersecurity, artificial intelligence, and programming languages. Various optional topics in computer science are discussed as well, depending on the semester. A popular procedural programming language will also be learned by students with assignments that explore the topics discussed in class.
There are no prerequisites for this course.
If interested in more details on what we'll cover in this course, see the list of
Main Required Book (Electronic):
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,
- Go to zyBooks (http://learn.zybooks.com) and create an account with your mines.edu email address.
- Enter zyBook code: MINESCSCI101CampSpring2019
- Subscribe ($77)
- Note: CSCI 102 will use this book as well.
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. Three copies of this book are on reserve in the Arthur Lakes Memorial Library.
- G. Michael Schneider and Judith Gersting, Invitation to Computer Science, 7th edition, Cengage Learning, ISBN-13: 978-1305075771
Other Required Items:
(1) We will read pieces of the following book. You can purchase yourself a copy from a book seller (e.g., Amazon) or read the online version for free at: http://www.bitsbook.com/excerpts/
- Hal Abelson, Ken Ledeen, and Harry Lewis, Blown to Bits: Your Life, Liberty, and Happiness After the Digital Explosion, Addison Wesley, 2008.
(2) You will also need to purchase an i-clicker from the bookstore (if you don't have one already, e.g., Physics requires one).
We will use clickers for all CSCI 101 quizzes starting week 2. You should register your clicker through Canvas (see an option in Canvas on the
left hand side).
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:
- Explain common computing acronyms and terms and how they apply to computing hardware, software, and applications.
- Demonstrate how elementary hardware concepts are used to construct modern computing systems
- Describe steps to take to increase the security of computers and information.
- Develop a detailed algorithm from a word problem.
- Create an efficient computer program to solve a problem in a high-level language (Python).
- Evaluate the efficiency of an algorithm and understand the computational limits of conventional computers.
- Summarize the data science process.
- Assess social and/or ethical implications of various computing technologies and human decisions as they are used in solutions addressing various problems and challenges.
- 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 https://identity.mines.edu
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.
There is a total of 1000 points in this course. Grades will be assigned on the following basis:
* some quizzes, Python projects, and homework assignments will be worth more than others
all Python assignments submitted will be graded using Python 3
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!
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 will be smaller in nature than the Create Project, each with a goal for you to practice some feature of Python programming.
This category is for other miscellaneous assignments that we'll do, and includes assignments related to zyBook and other assigned reading.
We’ll have two exams during the semester and a final (cumulative) exam.
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.
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 Quiz (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.
- 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 Jordan Schmerge (jschmerg).
- Late Policy:
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 before Dead-Day.
- (00h 00m, 24h 00m) Late: -20%
- [24h 00m, 48h 00m) Late: -40%
- [48h 00m, 72h 00m) Late: -60%
- [72h 00m, INF) Late: -100%
- Assignments may not be re-submitted after they have been graded.
- All Python projects will be graded with Python 3
(https://www.python.org). It is your
responsibility to ensure your Python project submissions work in Python 3.
The Colorado School of Mines is committed to ensuring the full participation of all students in its programs, including students with disabilities. If you are registered with Disability Support Services (DSS) and your instructor has received your letter of accommodations, please contact your instructor at your earliest convenience so you can discuss your needs in this course. For questions or other inquiries regarding disabilities, we encourage you to visit Disability Support Services (DSS)
for more information.
This syllabus is intended to give students guidance on our course this semester and will be followed as closely as possible. The 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.
- 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).
- Piazza will be our course communication tool. A few suggestions:
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 Alderson Hall 133, 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: http://mines.mywconline.com
- 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.