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. The department offers credit by passing the test-out exam. For more details, including the upcoming test-out dates in January, see the credit by exam on the department website. For more details, including the upcoming test-out dates in January, 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 Spring 2025 semester starts on the Saturday before lecture, you will be able to register before the first lecture on Tuesday. At the first lecture or in lab (opens 1/30), 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 start using Brightspace in 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 programming 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 to your email of record on Brightspace on Tuesday, January 21.
If you did not get the email invitation on January 21, 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 in-class quizzes. If you finish that early, go on to the next program. We encourage students to work ahead on the programs!
Yes.
No. Programming assignments 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 Programming total. See the syllabus for details.
Yes. Extra credit is available for submitting quizzes and code reviews early (up to 10%). See the target dates and deadlines for quizzes and code reviews.
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). Note that there are large changes between Python 3 and previous versions, so, if your computer has Python 2.7 (included as the default in the MacIntosh OS X operating system), 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 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 1001G HN. The dedicated lab is open 11:30am-5PM weekdays, when classes are in session.
Yes! Tutoring is available for this course in 1001G HN which is open 11:30am-5PM weekdays, when classes are in session.
If you miss lecture, we replace your participation grade for that lecture with the grade you earn on the final (i.e. your final counts a bit more). See the syllabus for details.
If you miss a code review, we replace that code review grade with the grade you earn on the final (i.e. your final counts a bit more). See the syllabus for details.
To compute your quiz grade, we take the top 10 quiz grades that you earn (including extra credit). There are 14 quizzes, so, if you miss more than 5, it will affect your grade. See the syllabus for details.
They don't. The programming assignments contribute to your final grade in four ways (see the syllabus). First, submitting assignments to Gradescope count 20%. 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 10%. Additionally, about 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 programming 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 (without the use of a search engine or the Python shell). 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 google answers (since they want employees who can also solve novel problems whose solutions aren't already available via a search engine). 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.
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 day are 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.