Course Overview

This is an Introductory Computer Science Course. This course is designed for people with no prior programming experience. It covers the fundamental concepts of computer programming using the Python programming language.

Class Time, Location

CRN32577 CS110A Section 541: 6:30 PM - 08:20 PM Chinatown/North Beach Campus | Chinatown/North Beach | Room 1202

First class: Monday, January 13th

Office Hours

TBD

Prereqs, Advisories, Proficiency Expectations

If you have never programmed before, you are in the right place! This class has no prerequisites. However, as with other classes in the department, this class assumes basic proficiency in English and math. The specific recommendation is that you have, at minimum, skills at the level of Math 60 or Math 92 (algebra) and ESL 160 before taking this class.

Considering skipping 110A? If you can complete the following task in any language, you can enroll in any of the B-level courses. If you are unable to complete the task, please talk to me about whether you should instead take 110A.

Write a complete function/method that expects a single integer parameter. If the number is positive, print a “Hello world!” message that number of times. Otherwise, print a message such as: “Error: number must be positive!” Of course, you will be able to do much more than this after taking CS110A.

Email Expectations

I do not regularly check e-mail for student discussion. I expect in-class presence and discussion so that we may learn from each other. Specific programming questions online can be directed toward TAs in the course and as comments in homework submission.

Reading Materials

You do not need to buy a textbook for this course. All readings are free and online. However, some suggestions for additional resources are:

You can find the main textbook for free online here:

https://ccsf.instructure.com/courses/32675

Websites

Everything you are required to do for the class will be posted on the class Canvas page, accessible here:

https://ccsf.instructure.com/courses/32675

You'll need your RamID (the username and password, not the ID card) to log into Canvas. If you don't have a RamID yet, you can claim one here:

https://ramid.ccsf.edu/self-service/

Finally, most of the exercises and projects you complete can be developed on this website:

https://repl.it/languages/python3

Course Outcomes

Upon completion of this course, a student will be able to:

Since this class was adapted from one taught in C++, some of the vocabulary will be a bit different. For example, "call by reference" and "call by value" aren't built into Python the way they are built into C++. Also, we will be studying Python lists and tuples, which both serve similar functions as arrays.

Full Course Calendar

A full calendar with lessons, projects, due dates, quiz dates, and the final exam date can be found on the course page on Canvas. I'll announce on Canvas if it changes. Please refer to this often!

Enrollment

We no longer use add codes. As of 2020, if you wish to add a class, go into Web4 on the first day of class. Then, I should be able to approve your addition using the "Class Add Authorization".

Attendance

All materials for this course will be available online and the class is most rich if you show up in person. I will do my best to take attendance at the beginning of class. If you are marked absent for three times in a row or more and have not told me why, I may drop you. You may also be dropped if you are not present on the first day of class without having told me why.

Grading
Participation in exercises and activities during class time: 10%
Programming Labs (5-10 pts each) 40%
Test #1 (25 pts): 10%
Test #2 (25 pts): 10%
Test #3 (25 pts): 10%
Final Exam (50 pts): 20%
Midterm Grades

After week 9, I will report your grade as it would be after the last day of week 9. This will include all in-class quizzes taken by and work due by the last day of week 9. I will drop one in-class quiz score before calculating your middle-of-the-term grade. This grade is reported to the college, but only so you can provide other institutions with a report on your progress. It does not affect your academic history.

Group Work and Academic Dishonesty

On the programming projects, self-check quizzes, and exercises for each lesson, you are welcome to work with other students. Make sure to attribute credit to one another in the header of your programs. I will not check for similarity. However, be warned: if you work in a group and you do not understand the work your group has done, it will almost certainly show up on your quiz and final exam results

You may not collaborate on in-class quizzes and the final exam

Disability Accomodations

Students with disabilities who need accommodations are encouraged to contact me. Disabled Students Programs and Services (DSPS) is available to facilitate the reasonable accommodation process. The DSPS office is located in the Rosenberg Library, Room 323 and can be reached at (415) 452-5481.

Anti-Discrimination Policy

The San Francisco Community College District is committed to the principles of equal opportunity, and the prevention of discrimination and harassment in any program or activity of the District on the basis of race, color, ancestry, national origin, ethnic group identification, religion, age, gender, gender identity, marital status, domestic partner status, sexual orientation, disability or AIDS/HIV status, medical conditions, or status as Vietnam-era veteran, or on the basis of these perceived characteristics, or based on association with a person or group with one or more of these actual or perceived characteristics.

If you believe you have been subject to discrimination, please contact Dr. Leilani Battiste, Title 5/EEO/ ADA/Title IX Compliance Officer at (415) 452-5053 or lbattiste@ccsf.edu.

Homework Schedule (subject to change throughout semester)

Due Date

Homework Schedule

1/17/20
  • Programming Lab 1: Hour of Code
  • No class on Monday 1/20 Martin Luther King Day
1/22/20
  • Programming Lab 2: Hello World
xx
  • Programming Lab 3: Muni Ridership
xx
  • Programming Lab 4
xx
  • Programming Lab 5
xx
  • Test
xx
  • Programming Lab 6
xx
  • Programming Lab 7
xx
  • Programming Lab 8
xx
  • Functions Python Modules and Selection
  • Test
xx
  • Programming Lab 9
xx
  • Programming Lab 10
xx
  • Programming Lab 11
xx
  • Programming Lab 12
xx
  • Test
  • Extra Credit
xx
  • Review for Final Exam