Syllabus
Table of contents
Overview
CSCI 110 is an introductory class designed for students with no formal exposure to computer science or programming. The goal is to provide a gentle but thorough introduction to computer science that will prepare students to either take further computer science courses or use computer science in their field of study.
By the end of the course, students will learn
- Variables, Expressions, Types
- Input/Output
- Logic and Control Flow
- Functions
- Lists, Dictionaries, Sets
- Testing
- Runtime and Efficiency
- Objects and Classes
Course Schedule
Lectures, labs, and office hours are the main ways in which you will interact with your professor and TAs. You can see the weekly schedule of course meetings on the course schedule page. Instructor and Fisk TA office hours will be held on the Library 3rd floor.
Lecture
Lecture will be held in Talley-Brady 212 or Library 318 (depending on your section) on Mondays, Wednesdays, and Fridays. Lecture will be focused on practicing concepts by doing problems, and you will be able to ask your professor and TA for help. There are three sections and each student must attend one of them:
- MWF 10AM-10:50AM
- MWF 11AM-11:50AM
- MWF 2PM-2:50PM
Lab
Labs will be held in Library 317 on Tuesdays. There are three sections for labs and each student must attend one of them:
- T 9:30AM-10:50AM
- T 11AM-12:20AM
- T 1PM-2:20PM
Office Hours
We will hold in-person office hours at a wide variety of times.
As a course, we commit to making sure no student fails the class due to lack of class resources, so if you are behind or confused, please reach out for help. The course staff will make themselves as available as possible to help you.
Policies
Evaluation
Your final grade will be calculated based on your exams, homeworks, projects, and quizzes. See the section below for a detailed breakdown. Depending on the difficulty of the material, a curve may be applied to increase grades at the end of the semester. A curve will never be used to decrease grades. Final grades will be assigned according to:
Grade | Range |
---|---|
A | 90 <= score |
A- | 85 <= score < 90 |
B+ | 80 <= score < 85 |
B | 75 <= score < 80 |
B- | 70 <= score < 75 |
C+ | 65 <= score < 70 |
C | 60 <= score < 65 |
C- | 55 <= score < 60 |
D | 50 <= score < 55 |
E | score < 50 |
Grades
There will be two grading systems, both very similar, which will be applied to your work throughout the course. Your final grade will be the greater of the two scores. The intention here is to provide a slight benefit to those students who performed really well on projects but may have had slightly lower exam scores or vice versa. The two weighting systems are:
Your overall grade will be calculated using the following relative weights:
Assignment Type | Weight in Overall Grade System 1 | Weight in Overall Grade System 2 |
---|---|---|
Homeworks | 7% | 13% |
Participation | 5% | 5% |
Quizzes | 5% | 5% |
Project 1 | 12% | 18% |
Project 2 | 17% | 23% |
Midterm 1 | 13% | 7% |
Midterm 2 | 18% | 12% |
Final Exam | 23% | 17% |
Assignments
These details are subject to change during the semester, however the current plan of record is the following:
- 10 Homeworks - 1x per week, due Wednesday
- 10 Quizzes - 1x per week on Friday, first 15 minutes of class
- 2 Projects - spread throughout the semester, due Sunday or Monday
All assignments will be due at 11:59pm on their respective days.
Quizzes
At the beginning of class on every Friday, there will be a 15-minute quiz on the material from the previous week. These will be done on EdStem, so bring your laptop to class.
Exams
This course will have 2 midterms and 1 final exam, spaced evenly across the semester.
- Midterm Exam 1 is on Wednesday, September 18th
- Midterm Exam 2 is on Wednesday, October 23rd
- Final Exam is on Tuesday, December 3rd
Cheating
For all assignments in the course, you may discuss approaches to solving a problem or work in the same room on separate computers to individually solve a problem, but you may not copy and paste code or substantially copy ideas from another student. It can be tempting to cheat. Know that I will be using a plagiarism detector. The first time an assignment is found to be plagiarized, the assignment grade will be zero-ed out for all students with matching code. The second time, all students involved will have their final course grade decreased by 1 letter grade (B going to a C, A- does to a B-, etc.). The third time, all students involved will be referred to the Dean’s office for academic dishonesty.
If I ask you how your code works and you do not know, it will be evident that you have copied it. Don’t take the risk. Despite this explicit warning, each year, a few students still cheat and are caught. I do not enjoy catching and penalizing students for plagiarism, but it’s necessary for maintaining a fair classroom. The course staff will work tirelessly to provide enough support for any student to get help and make it through the class. In exchange, we ask you to uphold academic integrity and not to plagiarize code or ideas. If you are struggling because there’s not enough time or the concepts are difficult, email the professor. Extensions are available if you let me know what’s going on.
Resources
This course website, csci110.page, will be your one-stop resource for the syllabus, schedule, recordings of lectures, and assignment links. Additionally, we have EdStem for all assignments and asking questions.
Learning Outcomes
- Decomposition: Students will be able to break a complex problem into subsets of smaller manageable problems and demonstrate proficiency and the ability to use critical thinking skills in using basic computer and online applications.
- Pattern Recognition: Students will be able to find patterns within data or methods to solve the problem.
- Abstraction: Students will be able to focus on key details and ignore irrelevant information.
- Algorithm: Students will be able to take steps to solve each of the smaller, decomposed problems.