General Information

Description: 3 hours, 3 credits: This course presents an overview of computer science (CS) with an emphasis on problem-solving and computational thinking through 'coding': computer programming for beginners. Other topics include: organization of hardware, software, and how information is structured on contemporary computing devices. This course is pre-requisite to several introductory core courses in the CS Major. The course is also required for the CS minor. MATH 12500 or higher is strongly recommended as a co-req for intended Majors.

Grading Policy

Expectations: Completing homework is an essential part of the learning experience. Students are expected to learn both the material covered in class and the material in the online Labs, the textbook and other assigned reading.

Honor Code: You are encouraged to work together on the overall design of the programs and homework. However, for specific programs and homework assignments, all work must be your own. You are responsible for knowing and following Hunter College's Academic Integrity Policy:

Hunter College regards acts of academic dishonesty (e.g., plagiarism, cheating on examinations, obtaining unfair advantage, and falsification of records and official documents) as serious offenses against the values of intellectual honesty. The College is committed to enforcing the CUNY Policy on Academic Integrity and will pursue cases of academic dishonesty according to the Hunter College Academic Integrity Procedures.
All incidents of cheating will be reported to the Office of Student Conduct in the Vice President for Student Affairs and Dean of Students office.

Course Format: This course is taught as a blend of synchronous meetings and online activities. Each week the course meets:

Lecture Preview: Before every lecture, there is a short on-line quiz based on the material for the week. The preview is available on Blackboard the day before lecture and can be repeated as many times as you would like until the start of lecture. Turning in lecture previews will only help your grade. There are no make-ups for lecture previews. Instead, if you miss a lecture preview, your grade on the final exam will replace that grade.

Lecture Participation: At every lecture (Tuesdays, 9:45am-11:00am on Zoom), we will administer a lecture quiz available electronically via Gradescope. Completed lecture quizzes are given full credit. The quiz will only be available for 5 minutes when we announce it during lecture. Turning in lecture quiz will only help your grade. There are no make-ups for lecture quizzes. Instead, if you miss a lecture quiz, your grade on the final exam will replace that grade.

Quizzes: Each week, there will be an online quiz (available on Gradescope) based on the Online Labs.

Weekly Laboratory (replaces a recitation section): Each week, you are expected to work through the associated Online Lab. These are available on the course webpage (you will need a computer with Python and Unix shell, and as the term goes on, C++. See the first lab for installation instructions).

Homework: Programming exercises are posted on the class website, usually three weeks before the due date. They reinforce concepts covered in lecture and lab. Note that as the semester progresses, the programs will require work on design and programming outside of class to complete. You should plan to spend approxiimately 3 hours per week on programming exercises. To receive full credit for a program, the program must perform correctly, must include comments, be written in good style, and be submitted by 6pm on the due date.
While every 5 programs should be worked on the week of the corresponding lab, due dates are staggered to provide flexibility (should you be unable to work for a few days you need not miss the deadline). Still, you should work on the programming assignments the week of the corresponding lab. If you work on assignments at their due dates you are likely miss deadlines and falling behind.
Programs are submitted via gradescope. You can miss up to 5 programming assignments without affecting your grade (if you turn in all the programming assignments, we will drop the lowest 5 scores). No late homework is accepted.

Final Exam: The final exam is required. It is comprehensive, covering all the material of the course. Sample and past exams are available on the course webpage. Keep in mind, however, that these samples are for written exams. This semester the exam will be administered electronically via Gradescope, its format being closer to that of the Lab Quizzes, albeit longer.
We will end most lectures with past exam questions and review to prepare for the final. You must take and pass the final (60 points or more) to pass the course.

Grades: The grading for the course will be based on:

Materials, Resources and Accommodating Disabilities

Textbook & Readings: The following free on-line book is required for the course:

Additional readings and tutorials are available on the course webpage..

Technology: This course uses multiple software tools and languages.

Computer Access: If you need equipment for this course, please visit Hunter College technology loan programs pages:

Tutoring: The CSci 127 course offers peer-mentor tutoring with a wonderful staff of undergraduate teaching assistants to provide drop-in tutoring and assistance with the course.
We also provide discussion board and email help, as well as an optional synchronous meeting to review the lab. More information and links on the course webpage.

Lecture recordings: We will post recordings of the lectures and the optional lab review meetings on Blackboard. Our meetings will not allow participants to turn on their video, but you will have opportunities for speaking and asking questions, especially in the lab review sessions.

Students who participate in this class with their camera on or use a profile image are agreeing to have their video or image recorded solely for the purpose of creating a record for students enrolled in the class to refer to, including those enrolled students who are unable to attend live. If you are unwilling to consent to have your profile or video image recorded, be sure to keep your camera off and do not use a profile image. Likewise, students who un-mute during class and participate orally are agreeing to have their voices recorded. If you are not willing to consent to have your voice recorded during class, you will need to keep your mute button activated and communicate exclusively using the "chat" feature, which allows students to type questions and comments live.

Accommodating Disabilities: In compliance with the American Disability Act of 1990 (ADA) and with Section 504 of the Rehabilitation Act of 1973, Hunter College is committed to ensuring educational parity and accommodations for all students with documented disabilities and/or medical conditions. It is recommended that all students with documented disabilities (Emotional, Medical, Physical, and/or Learning) consult the Office of AccessABILITY, located in Room E1214B, to secure necessary academic accommodations. For further information and assistance, please call: (212) 772- 4857 or (212) 650-3230.

Hunter College Policy on Sexual Misconduct: In compliance with the CUNY Policy on Sexual Misconduct, Hunter College reaffirms the prohibition of any sexual misconduct, which includes sexual violence, sexual harassment, and gender-based harassment retaliation against students, employees, or visitors, as well as certain intimate relationships. Students who have experienced any form of sexual violence on or off campus (including CUNY-sponsored trips and events) are entitled to the rights outlined in the Bill of Rights for Hunter College.

See CUNY Policy on Sexual Misconduct Link.

Course Objectives

The successful student will be prepared with competencies and knowledge required for subsequent courses required for the Computer Science Major or Minor. At the end of the course, students should:
  1. be able to design and implement a computer program in Python of realistic complexity that includes functions, list/array data structures, user and file I/O, loops and conditionals.
  2. be able to design and implement a simple C++ program using command line tools in a Linux environment, including navigating the Linux file system.
  3. understand the basic architecture of a digital computer to the extent that they can write a simple machine language program for a virtual architecture.
  4. be fluent in hexadecimal and binary numbering schemes.
  5. be able to understand boolean logic to the extent that they can design a simple binary circuit.
  6. understand the relationship between the operating system, application and utility software and how they interact with main memory, disk memory and the software development cycle.
  7. have been exposed to a small selection of more advanced computer science topics such as artificial intelligence, data science, networking, algorithm and data structure design, etc.