CSCI 127 is a first course in computer science ("CS 0"), taught primarily in Python. This course surveys core topics in computer science, ranging from basic programming to computer architecture. The emphasis is on solving problems and communicating technical ideas. This introductory course is for any Hunter student interested in computer science and counts towards Pathways (STEM-Scientific World and Life & Physical Sciences).
If you have previous computing experience, you should consider taking the test-out exam and going on to the next programming course, CSCI 135. For more details, including the upcoming test-out dates over the summer, see the credit by exam on the department website.
Enrollment is via the CUNYFirst system. See the College Registrar for more details.
Maybe. It is possible to take courses at other CUNY campuses via the e-Permit system. Enrollment is via epermit.cuny.edu using your portal credentials. While colleges use a common system to request e-Permits, each department and each college has its own rules and preferences about allowing students to take a course at a different campus. You must apply via your home institution who may require you to take the equivalent course (albeit in another programming language) there. Also, host institutions often give their students priority in enrollment over e-Permit students. If you want to e-Permit a course, start the process early.
Yes. No special permission is needed. You can enroll directly on CUNYFirst.
Yes. As a senior auditor, you can audit courses at Hunter on a space-available basis. See the Senior Auditor Enrollment Guide for the process. Note that senior auditors register on the second day of the semester. Since Fall 2025 semester starts the day of our first lecture, you will not be able to enroll until the following day, but you are welcome to attend the first lecture. At the lecture, introduce yourself to one of the teaching assistants as a senior auditor, and they will help generate accounts on Gradescope for you.
It takes about 24 hours from time of registration for you to be added to a course roster on Brightspace. If it has been more than a day and the course does not appear, check your course list in your CUNYFirst account to make sure that your registration has been processes and you are officially enrolled. If you are enrolled, contact Brightspace Support.
Hunter has a dedicated team to helping students and faculty use Brightspace. Contact them at Brightspace Support.
CUNY is transitioning from their old learning management system, Blackboard, to a new one, Brightspace. Hunter will started using Brightspace in the Spring 2025 semester. Some CUNY campuses moved to Brightspace already; some will move in the up-coming semesters.
Gradescope is an automatic grading program from UC Berkeley. All homework assignments are submitted to Gradescope and Lab 1 details the process for submitting programs. We also use Gradescope for grading paper quizzes, code reviews, lecture slips, and the final exam. An email with access information will be sent on Friday, August 22 to your email of record on Brightspace.
If you did not get the email invitation on August 22, fill out the form on Brightspace and we will manually generate an account for you.
Yes. Attending class in an integral part of the learning process. Further, attending lectures counts towards your participation grade. See the syllabus for details.
Most students spend 4-8 hours a week outside of class hours. Federal guidelines state that 12 credit hours is considered full time enrollment. Given a nominal 40 hour work week, this translates to an expected (40-12)/12 = 2 to 3 hours a week per credit hour of outside class time. As a 3 credit course, your expected time is about 6 to 9 hours of out-of-class work per week.
A way to manage the time commitment is to set aside a daily period of time to work on this course. Like learning a foreign language, learning a programming language is easier (and takes less work) if you work on it in smaller pieces on a regular basis. Set aside an hour a day for this course. During that hour, complete the upcoming programming assignment and review your course notes and recent labs to prepare for the quizzes and code reviews. If you finish that early, go on to the next program. We encourage students to work ahead on the programs!
Yes.
No. Homework must be submitted by the 5pm on the day due. To allow for emergencies that arise over the semester, we drop the lowest grades from the homework total. See the syllabus for details.
Yes. Extra credit is available for submitting quizzes and code reviews early (up to 15%). See the target dates and deadlines for quizzes and code reviews. There is also extra credit available towards your participation grade for attending events offered by the department and Tech Career Center that focus on current topics in computer science.
The following free on-line book is required for the course:
Additional readings and tutorials are available on the course outline.
Python is freely available from python.org. For this course, we use Python 3 (any stable version). Our autograders use Python 3.10 to evaluate your homework. Note that there are large changes between Python 3 and previous versions, so, if your computer has Python 2.7, you will also need to add Python 3.
Yes. If you do not have a computer at home, there are computers available on-campus with Python. Reach out to the Office of Student Affairs for information about loaner computers. Hunter College is committed to providing students the resources they need to succeed.
Computers are available for this course in 1001E HN. The dedicated lab is open 11:30am-5:15PM weekdays, when classes are in session.
Yes! Tutoring is available for this course in 1001E HN which is open 11:30am-5:15PM weekdays, when classes are in session. Note that the lab has moved across the hallway from its location in Spring 2025.
If you miss a few, no, but missing a lot will affect your grade. To compute your participation grade, we take the 10 highest lecture slips. There are 14 weeks in the semester, so, you can miss 4 weeks before it affects your grade. There are also bonus participation events during the term, on current topics in computer science, for which extra credit is available. See the syllabus for details.
As with the participation grade, the code review grade is computed using the highest 10 grades you earned. There are 14 code reviews altogether. There is also extra credit for completing the code reviews early. See the coursework page for details on extra credit and the syllabus for details on how the grade is computed.
To compute your quiz grade, we take the top 10 quiz grades that you earn. There are 15 quizzes, so, if you miss more than 5, it will affect your grade. There is also extra credit for completing the code reviews early. See the coursework page for details on extra credit and the syllabus for details on how the grade is computed.
It doesn't. Homework assignments are the basis of quizzes, code reviews, and final exam, and are designed for you to practice the material covered in the lectures, the labs, and readings.
The homework contribute to your final grade in four ways (see the syllabus). First, submitting assignments to Gradescope count 10%. We also assess if you have mastered the material on the assignments via written quizzes and oral code reviews (see quiz & code review topics). About a half of the quizzes are directly based on the submitted assignments. Since quizzes are 30% of your grade, this adds another 15%. The code reviews are based directly on programs and count 20%. Additionally, over half of the questions on the final exam are directly based on submitted assignments and contribute another 15% to your overall course grade. Overall, the homework exercises contribute over half of your total grade.
Yes. All undergraduate courses at Hunter College are required to have final examinations offered during finals week.
The final examination is cumulative and passing it shows that you have mastered all of the learning objectives of the course.
An essential component to programming and technical work is presenting and communicating ideas concisely to others. The communicating of technical information is so important to many companies that they include a paper or oral quiz (no computer allowed) on key concepts during the interview. Companies hire you for your analytic reasoning and programming skills, not your ability to look up answers (since they want employees who can also solve novel problems whose solutions aren't already available via a search engine or LLM). Some go beyond just key concepts and ask for you to sketch solutions for novel questions and situations during the interview (the most famous is the Google engineering interview).
While having a combination of oral and written final examinations would be a better preparation for communicating technical information (and better for future jobs and job interviews), many introductory students find oral exams terrifying. As such, we have structured the course so that there is a change to discuss and explain technical concepts (during lecture and code reviews) during the term and only have a written final exam.
The final examination times are announced by the Registrar's Office. See final exam information for more details.
No. We are happy that you are doing well in your other courses, but we are required to treat all students equally and base your grade on the work submitted for this course.
Testing well, or solving problems in a timed environment, is a skill that improves with practice. Since the focus of this class is problem solving and analytic reasoning, we have designed it to have practice via low-stakes quizzes (instead of high-stakes midterms), leading up to the final exam. If you are not doing as well as you would like on the quizzes, here's some suggestions:
The traditional way to teach introductory programming is to give 10 long assignments for the semester, long enough so that students often 'pull all-nighters' to finish, to simulate what programming would be like at a start-up company. While solving authentic challenges with minimal guidance does mimic some jobs (though most employers prefer well-rested employees due to the drop-off in cognitive performance with lack of sleep), students (who have not been exposed to programming previously) master the analytic reasoning and language skills faster and in more depth when given strong instructional guidance (see GeorgiaTech Professor Mark Guzdial's CACM posts, starting with this one).
These studies apply across STEM (Science, Technology, Engineering, & Mathematics): for novice learners, discovery-based learning is not as effective as strongly guided approaches. The story changes for students with previous experience: if you have programmed before, having longer, more challenging programs are fine. But, unlike many college-level programming courses, we assume no previous programming experience. As such, we have designed the course to build the skills of beginners by focusing on smaller challenges throughout the semester.
Having quizzes every week is very effective at improving retention as well as grades for students in STEM courses (overview, details). Grades improved the most for students who were first generation of their family to attend college. The study did not examine why this change was so effective, but the authors hypothesize that students attended class more and kept up with the material (instead of just cramming to learn the material before midterms). Testing has been shown to be a more effective way to master material than just reviewing; by actively using knowledge on an exam, your brain's ability to retain and use that knowledge again increases (details).
Puzzling out questions on novel material guides how you learn that material and increases mastery. While it seems counter-intuitive, pre-testing seems to give a "mental scaffold" to store the material when learned in the future, that is "pretesting serves to prime the brain, predisposing it to absorb new information". We do not grade your pre-tests. By adding these to the structure of the class, our goal is to give students who have not previously programmed similar (though not as deep) advantages as students who have already seen the concepts.
Active learning increases student performance. Instead of passively listening or watching someone else write or type programs, it is much more effective to have active discussions, work together in pairs or small groups, and other activities that emphasize higher-order learning. It also provides an excellent avenue to practice explaining technical ideas to others-- a skill you will need for future STEM courses and future jobs in technical fields.
For computer science majors, the next programming course is CSCI 135: Software Design & Analysis I which covers algorithms and basic data structures in C++. It has prerequisite of precalculus and is offered Fall, Spring, and Summer terms.
If you would like more Python programming but not sure about majoring in computer science, CSCI 227 ("Python 2") focuses on programming methods and taught in the same style as CSCI 127. It is designed for computer science minors (computer science majors may take the course but it does not count towards the computer science major requirements).
For more details: college advising has suggested course maps for those interested in minoring and majoring in computer science.
The computer science department seeks students with strong communication skills and analytic reasoning skills to assist in core computer science courses. The department hires about 75 undergraduate teaching assistants (UTAs) a semester; over half of the UTAs assist in 100-level courses. To staff the CSCI 127 course, we reach out to all current students who have done well in the course (A+), are doing well overall (GPA of 3.75 or higher), and are majoring or minoring in computer science at Hunter. We interview the top candidates, giving preference to those with strong tutoring and communication skills as well as demonstrated strength in analytic reasoning. Since CSCI 127 Fall Semester enrollment is usually double that of the Spring Semester, we hire many more UTAs to start late spring or early fall than in the late fall and early spring.
For all courses, you must have earned at least an A in the course at Hunter to assist in that course, and you should reach out directly to the instructor for that course.