CS151 - Introduction to Computer Science

Spring 2020

Syllabus and Information

Table of Contents

Table of Contents
General Information
Contact Your Instructor
Lecture, Exam, Office Hours
Standard text
Course Announcements
Classroom conduct
Online Section
Course Description
Course Outline
Normal Content
Learning Outcomes
Grading and Assignments
Late Homework
Start Homework Early
Expected Amount of Work
Grade Cutoffs
CS Course Policies
Academic Integrity
Special Needs
Disclosures Regarding Sexual Misconduct

General Information

Contact Your Instructor

Name: Jeff Kinne (section 301), Adam Davenport (section 001), and Ashwin Murali (section 004)
Email: jkinne@cs.indstate.edu, adavenport9@sycamores.indstate.edu, amurali1@sycamores.indstate.edu
Instructor Office Hours: Jeff MW noon-2pm and TR 10:30am-noon in A-140D, SW 8-10pm; Adam and Ashwin in A-015, see CS homepage for days/times

Lecture, Exam

Lecture: online (section 301) / MWF 9-9:50am (section 001) / MWF 10-10:50am (section 004) in Root Hall - online (section 301) / A-019 (section 001) / A-017 (section 004)
  • Exam1. See sample questions in code/QUIZ. Rules - allowed one cheat sheet (front and back), a pen or pencil, and nothing else (no phone, no calculator), not allowed to communicate with anyone about the exam once you have started it until after Saturday. For online section - no using other programs on the computer, no other people in the room. For face-to-face sections - no using the computer, none of the computers in the classroom should be logged in. Recall penalty for cheating - at least a 0 for the exam, more severe (e.g., F for the course) if warranted.
  • Exam2: 10th to 12th week
  • Final exam. study guide: exam week (section 301), Wed May 6 8-9:50am (section 001), Mon May 4 10-11:50am (section 004).

GA Tutoring: We have a few student assistants who will be in the computer science Unix lab, room A-015 in the basement of Root Hall (normal hours are M 10am-5pm, TWR 9am-5pm, F 9am-noon). You can go to this lab to work on your programs. The computers are Linux machines, and you can use the cs###xx log-in that will be given to you during the first week of class to use them. Or, you can bring your laptop to work on. Either way, you can ask the student assistants to look at your programs, and you can work with any other CS students that are there (you should use the lab as a regular meeting place to work with your classmates). The regular hours that the lab will be open will be posted on the CS homepage.



Standard text

Automate the Boring Stuff with Python (available free at https://automatetheboringstuff.com/)

Course Announcements

Announcements regarding the course will be made both during class and via email to your @sycamores.indstate.edu email address. You should regularly check this email account or have it forwarded to an account that you check regularly. You can set the account to forward by logging into your indstate.edu email from Internet Explorer (the "light" version of the webmail client that opens up from Firefox or Chrome does not give the option to forward email).

Classroom conduct

You may not use cell phones, iPods/music players, etc. during class. You should be civil and respectful to both the instructor and your classmates, and you should arrive to class a few minutes before the scheduled lecture so you are ready for lecture to begin on time. You may use your computer during class if you are using it to follow along with the examples that are being discussed. You may not check email, Facebook, work on other courses, etc. during class.

Online Section

For the online section of the course there will be lecture videos to watch, the same assignments / quizzes / exams, and attendance will be based on participation in a chat system setup for the course and logging into the server. The complete list of "how the online section will run" is at code/ADMIN/online.txt.

Course Description

The catalog description for this course is: "Core concepts that are foundational in computer science - including programming, use of computers for dealing with files and programs, how data is stored, number systems. Focus on building skills needed for programming and further study in computer science, and intermediate mastery of a particular programming language."

Course Outline

** Weeks 1-4

  • Setup accounts
  • Intro to Linux
  • Chapter 1 (Python Basics)
  • Chapter 2 (Flow Control)
  • Chapter 3 (Functions)
  • Exam1

** Weeks 5-6

  • Bits, Bytes, Bases, Logic
  • RAM, ROM, Model of a Computer
  • Assembly Language

** Weeks 7-12

  • Chapter 4 & 5 (Collections)
  • Chapter 6 & 7 (Strings and RE)
  • Chapter 9 & 10 (Files)
  • Chapter 14 (CSV & JSON)
  • Exam2

** Weeks 13-15

  • Intro to algorithms
  • Group Projects (choose topics, checkpoints, final code)

** Week 16

  • Final exam (Exam3)

Learning Outcomes

  • Able to use Linux systems and terminal - managing files, running code, using utility programs.

  • Basic mastery of core programming concepts - data types, conditionals and loops, boolean logic, functions, string operations, reading and writing files. In particular,

    • Can take a specification and produce code implementing it.
    • Can take code and "play computer" to determine the precise results of running the code on a given input.
    • Can take a partially complete program and specification for how it should work, and complet it.
    • Can take a program with syntax or logical errors and fix the errors.
  • Understanding of good coding style and able to practice good coding style - use of functions to avoid redundant code, whitespace formatting, variable and function names, comments.

  • Understanding of base systems, including ability to convert between binary, hex, octal, and decimal.

  • Understanding of and ability to explain different file types - text versus binary.

  • Able to read and write data with programs, including parsing simple file formats (e.g., csv).

  • Understanding of sorting algorithms - able to "play computer" to execute sorting algorithms that were covered in class on small test cases.

Grading and Assignments

The students of this course have the following responsibilities: read assigned readings before lecture, attend lecture, complete homework assignments, take in class quizzes, take exams, and possibly complete a project. The final grade consists of:

Your total/final grade will be computed as -

Exams - 40%

  • If we have two exams plus a final, the weighting will be 10% exam1, 15% exam2, 25% final exam.
  • Earlier exams will be dropped if you do better on later exams - if exam1 is lower than the others it will be dropped, if the final is higher than exams1&2 then only the final will count.
  • No late exams will be given.

Quizzes - 20%

  • Expect to have a quiz every week.

Programs / HWs - 20%

  • Program / HWgrade will be calculated proportionally - assignments with more points will count more towards the grade.

Attendance - 20%

  • Calculated based on the number of times you were present as a fraction of the days that attendance was taken.
  • If you are late to class or leave early, you will miss these points.

Notes for the online section (section 301) - see online.txt.

Late Homework

HW's that are turned in late will be penalized 10% per day and do not count for any credit more than one week later than the due date.

Start Homework Early

I suggest attempting a homework assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the homework assignments require thought and problem solving, which takes "time on the calendar" not just "time on the clock". By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.

Expected Amount of Work

My expectation is that an average student will spend about 4 hours OUTSIDE of class each week (that is in addition to class time) WORKING PRODUCTIVELY/ EFFICIENTLY (not just staring at the computer) to complete their coursework for this class. Some students may spend less time than this, and some students will spend more.
Note - your classes should be more important than your part-time job. This is the foundation for the rest of CS, so it definitely pays off to do your best here. Note - this is your most important class, by far (for CS majors).

Grade Cutoffs

Homework assignments and exams are designed so that a standard cutoff for grades will be close to what you deserve. After the first exam I will create a grade in Blackboard called "Letter Grade" that is what your letter grade would be if the semester ended today. Initially, I will assign the following grades: 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

My goal is that the different grades have the following rough meaning.

You understand everything and probably could teach the course yourself.

You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.

Some things you understand very well and others you don't (more towards the former for a B and more towards the latter for a C).

You did put some effort in, and understand many things at a high level, but you haven't mastered the details well enough to be able to use this knowledge in the future.

Normally, students that get an F simply stopped doing the required work at some point.


The course has a blackboard site. Click https://blackboard.indstate.edu/ to go to blackboard. You should see this course listed under your courses for the current term. The blackboard site is only used for giving you your grades. All course content, schedule, etc. is kept in this web site (which you are currently viewing).

CS Course Policies

Note that this course follows all standard CS course policies. In particular, (a) cheating/plagiarism by graduate students results in an F in the course, (b) missing 20% of the classes results in an F for any student, and (c) there will be no makeup exams. See https://cs.indstate.edu/wiki/index.php/Policies for details.

Academic Integrity

Follow the standard CS course policies in terms of what is and is not allowed on assignments: https://cs.indstate.edu/wiki/index.php/Policies Please ask the instructor if you have doubts about what is considered cheating in this course.

Special Needs / Disability Services

Standard language included in the syllabi for ISU courses.

Indiana State University recognizes that students with disabilities may have special needs that must be met to give them equal access to college programs and facilities. If you need course adaptations or accommodations because of a disability, please contact us as soon as possible in a confidential setting either after class or in my office. All conversations regarding your disability will be kept in strict confidence. Indiana State University's Student Support Services (SSS) office coordinates services for students with disabilities: documentation of a disability needs to be on file in that office before any accommodations can be provided. Student Support Services is located on the lower level of Normal Hall in the Center for Student Success and can be contacted at 812-237-2700, or you can visit the ISU website under A-Z, Disability Student Services and submit a Contact Form. Appointments to discuss accommodations with SSS staff members are encouraged.

Once a faculty member is notified by Student Support Services that a student is qualified to receive academic accommodations, a faculty member is obligated to provide or allow a reasonable classroom accommodation under ADA.

Disclosures Regarding Sexual Misconduct

Standard language included in the syllabi for ISU courses.

Indiana State University fosters a campus free of sexual misconduct including sexual harassment, sexual violence, intimate partner violence, and stalking and/or any form of sex or gender discrimination. If you disclose a potential violation of the sexual misconduct policy I will need to notify the Title IX Coordinator. Students who have experienced sexual misconduct are encouraged to contact confidential resources listed below. To make a report or the Title IX Coordinator, visit the Equal Opportunity and Title IX website: http://www.indstate.edu/equalopportunitytitleix/titleix.

The ISU Student Counseling Center

HMSU 7 th Floor

The ISU Victim Advocate

Trista Gibbons, trista.gibbons@indstate.edu
HMSU 7 th Floor
812-237-3939 (office)
812-230-3803 (cell)

Campus Ministries United

Campus Ministries
321 N 7 th St., Terre Haute, IN 47807

For more information on your rights and available resources http://www.indstate.edu/equalopportunitytitleix/titleix