J. Glenn Brookshear, David T. Smith and Dennis Brylow, Computer Science -- An Overview, Pearson-Addison-Wesley, 12ed, ISBN-13: 978-0-13-376006-4 --- BEWARE: avoid the Global Edition!
There are two textbooks on reserve in the Arthur Lakes Memorial Library.
CSCI101 --- INTRODUCTION TO COMPUTER SCIENCE: An introductory course to the building blocks of Computer Science. Topics include conventional computer hardware, data representation, the role of operating systems and networks in modern computing, algorithm design and representation, recursion, data compression, data error detection and correction, and machine instructions. Depending on the semester various optional topics in computer science are discussed. A popular procedural programming language will be learned by students and programming assignments will explore ideas and topics discussed in class.
There are no prerequisites for this course.
The objectives of this course are to introduce students to the field of computer science as:
- A study that formalizes the common practice of problem solving into algorithms.
- Applying these algorithms to the task of controlling the operations of computers and computer networks.
- Using computers and computer networks toward the advancement of science, engineering, and the greater society in which they operate.
Upon completion of this course, you should know:
How to write a respectable computer program in a high-level language (Python).
- Understand the basic interfaces, encoding, and computational limits of conventional computers.
- How to document and implement problem solving algorithms.
ABET outcomes for CSCI101 are:
- (a) An ability to apply knowledge of mathematics, science, and engineering. (c) An ability to design a system, component, or process [to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability]. (d) An ability to function on multidisciplinary teams. (g) An ability to communicate effectively. (k) An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
- (b) An ability to design and conduct experiments (e) An ability to identify, formulate, and solve engineering problems. (i) A recognition of the need for, and an ability to engage in life-long learning. (j) A knowledge of contemporary issues.
- Basic data structures (Sets, Lists, Trees)
- State diagrams
- Dependency graphs
- File systems (block oriented, FAT like)
- Operating Systems
- Roles of and relationship between kernel and shell within an OS
- Process states within an OS (ready, running, blocked)
- Multiprogramming: time slices, context switches
- Calculating CPU utilization
- I/O-bound and compute-bound processes
- How CSMA/CA and CSMA/CD share a single media avoiding data corruption
- Hidden terminal problem
- Client-Server vs. Peer-to-Peer model
- Read and write looping structures in pseudo code
- Read and write recursive logic in pseudo code
- Read and write procedures, identify input and output values for procedures
- Write and read basic algorithms
- Find errors or correct poorly written algorithms
- Find input that will "break" poorly written algorithms
- Data representation and storage
Boolean operations – AND / OR / NOT / XOR
- Gates and Flip flops
- Conversion between decimal and binary (simple binary, radix binary, excess, complement, and (a trivial but representative) floating point)
- Data compression
- Error detection
- Computer architecture and machine instructions
- Stored program concept
- Interpret and follow machine instructions
- Fetch-Decode–Execute cycle
- Python basics
- Writing basic Python code
- Reading (tracing) basic Python code
Databases (optional, depending on semester)
- Normalized data
Relational databases – using SELECT, PROJECT and JOIN statements
- Simulation (optional, depending on semester)
- Three components of a Discrete Event Simulation (DES): clock, events (when, what, data), and the event queue
- Basic DES algorithm
- Distance vector routing (optional, depending on semester)
- Language compilation (optional, depending on semester)
- Operator precedence, associativity and expression trees
- Simple context free grammers
- Parse trees
- Conversion from simple parse trees to machine instructions
Computer Facilities and Assistance
You need an ADIT account to use the lab machines in the Computer Commons, library, and CTLM, which most students create during EPICS. If you do not have an ADIT account, you need to know your eKey (personal identification code used to create your webmail account) and visit http://newuser.mines.edu/adit prior to the first lab. If you do not know your eKey, contact the Computer Commons Help Desk in room 156A of CTLM.
We will use the Python programming language.
This will not be a traditional lecture course. Instead, it will be taught using an active learning technique known as formal learning groups. Here is how they will work.
A semester will have four rounds of learning groups (LGs), each about four weeks long. Students will be randomly assigned to learning groups at the beginning of each round.
"Lectures" will begin immediately with learning group time. LGs should review the previous assignment's learning goals and discuss the new content. LGs are expected to rearrange the room furnishings to accommodate their group work. Instructor(s) will circulate through the learning groups to record participation points, observe discussions, and answer questions.
- After the initial group time, there will be a brief discussion of the current assignment's topics, perhaps working through a few example problems. This will be led by the instructor but guided by student input.
- Important topics in the next reading assignment will be introduced to the students.
The duration of the lecture period will be short problem solving time (still in learning groups) or a more formal (but short-lived) lecture period.
- Before the end of most lecture periods, learning groups will have an opportunity to see the next group assignment and discuss how the work load will be divided among the members.
Students should familiarize themelves with the collaboration policy for graded work.
Course Grade Weight
Median score of your group members, weighted evenly.1
Read about late penalties.
The final exam must be passed (60%) to pass the course.
Read this link carefully!
- The final exam must be passed (60%) to pass the course.
Learning Group Quizzes
At the end of each learning group round, there will be a quiz over the material covered during the learning group. These are Learning Group Quizzes. These quizzes will be taken independently by each LG member, but each member's course grade will be based (in part) on their individual performance as well as their learning group's performance.
Programming and written assignments may we worth different numbers of points, but their percentile grades are all weighted the same when calculating the "Assignment" portion of your course grade.
After assignment grades are posted students have 1 week to review and contest an assignment grade. If you are concerned over a particular assignment's grading, follow these instructions.
- Assignments may not be re-submitted after they have been graded, even if the re-submission is before the assignment deadline.
Late Policy: 10% off for first 24 hours, 15% off for second 24 hours, 40% off for the third 24 hours (3 days late). Assignments posted 4 days or more after the due date are not graded. Weekends count as late days, all work must be turned in before Dead-Day.
Exam "No Show" Policy
Failure to sit for a scheduled exam (without an incredibly good explanation) incurs the same "late penalty" as for late assignments in the course. The "lateness" is measured between the scheduled exam time and when your instructor or course coordinator is informed of your absence.
If there is no policy for late assignments in a course, the following will be used: 10% off for first 24 hours, 20% off for second 24 hours, 40% off for the third 24 hours. Beyond this (again, without an incredibly good explanation) a zero will very likely be recorded for the exam grade.
Students are not guaranteed the opportunity to take a make-up exam; leniency in these matters is at the discretion of the course instructor(s).
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 are registered with Disability Support Services (DSS) and I have received your letter of accommodations, please contact me at your earliest convenience so we can discuss your needs in this course. For questions or other inquiries regarding disabilities or academic accommodations, I encourage you to visit https://disabilities.mines.edu/ for more information.
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 (More information can be found here) 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. As your instructor, it is my responsibility to foster a learning environment that supports diversity of thoughts, perspectives and experiences, and honors your identities. To help accomplish this:
- Course rosters are provided to the instructor with the student’s legal name. I will honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records.
- If something is said or done in this course (by anyone, including myself) 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:
Me (your course instructor). If you are not comfortable discussing the topic with myself, please consider
the Wellness Center for Counseling (https://www.mines.edu/counseling-center/), or
Speak Up which is an anonymous option to report anything that makes you uncomfortable (https://www.mines.edu/speak-up/)
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 or 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, stalking, and domestic violence, 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: http://www.mines.edu/title-ix/. You can also contact the Mines Title IX Coordinator, Karin Ranta-Curran, at 303-384- 2558 or firstname.lastname@example.org for more information.
Division of Humanities and Social Sciences (HASS) Writing Center
Located in room 133 Alderson Hall (phone: 303-273-3085), the HASS Writing Center is a teaching facility providing all CSM students with an opportunity to enhance their writing proficiency. The HASS Writing Center faculty are experienced technical and professional writing instructors. The Center assists writers with all their writing needs, from course assignments to scholarship applications, proposals, letters and resumes. This service is free to CSM students and includes one-to-one tutoring and online resources. https://hass.mines.edu/enrichment/campus-writing-program/
With some reasonable caveats (1)