Syllabus

CSCI-UA.0002: Introduction to Computer Programming, Fall 2014
Section #02 – Monday / Wednesday, 2:00pm – 3:15pm, CIWW 102
Section #03 – Monday / Wednesday, 11:00am – 12:15pm, CIWW 512

Professor Craig Kapp
Office Hours: CIWW room 420: Tuesday 12:30am – 2:00pm; Wednesday 12:45pm - 1:45pm
E-mail: kapp [-at-] cs [-dot] nyu [-dot-] edu
Course Website: http://cims.nyu.edu/~kapp/courses/cs0002fall2014

Common Course Syllabus

General information regarding the course, topics covered, required textbooks, course tutors, etc. can be found at:  http://cs.nyu.edu/courses/fall14/CSCI-UA.0002-004/common_syllabus/

Prerequisite

Three years of high school mathematics or equivalent. No prior computer experience assumed. Students with any programming experience should consult with the computer science department before registering. Students who have taken or are taking CSCI-UA 101 will not receive credit for this course. Note: This course is not intended for computer science majors, although it is a prerequisite for students with no previous programming experience who want to continue in CSCI-UA 101.Offered every semester. 4 points.

Course Description

This course is designed to be a “gentle introduction” to the fundamentals of computer programming, which is the foundation of Computer Science. Students will design, write and debug computer programs. No knowledge of programming is assumed.

Course Tutors

Tutoring is held in the 14 Washington Place lab.  Tutors will be at the PC just to the right near the bottom of the stairs.  For information regarding the tutoring schedule please refer to the common course syllabus.

We also have a series of dedicated e-tutors available for our class. If you have any questions regarding course content or homework assignments feel free to e-mail the e-Tutors at "pythonnyu [-at-] gmail [-dot-] com". Our e-tutors are also available to meet with you in-person at the following times:

Note that there are general Python tutors available throughout the week and weekend at the 14 Washingon Place lab - click here for their schedule. And of course you can always e-mail me (your instructor) with questions as well!

Topics

In this course, we will study the fundamentals of computer programming … one of the towering intellectual achievements of the 20th century. We will design, code, and debug programs using Python as we explore these concepts.

Textbook

Required:

  • Starting Out with Python - 3rd Edition - Tony Gaddis

Optional (free online resources):

Course Dynamics

This course is structured as a "blended learning" format. This means is that a good portion of the lecture and reading material are presented in interactive online modules. The class is broken primarily into three components:

  • Online learning modules - Before each week's topics you will be expected to complete the online learning module. These modules contain video, text and interactive programming exercises. When you are finished wtih a module you will be asked to take a short online quiz (via NYU Classes) to test your understanding of the concepts presented in the module.
  • In-class discussion and application of principles - One class period per week will focus on the design concepts and application of the principles taught in the online learning module.
  • In-class workshops - Weekly assignment will be presented in the other class period. The professor and a TA will be available in class to provide support and guidance as necessary.

Grading

There will be two midterm exams and one final exam. Your grade will be 20 percent for each midterm, 35 percent for the final, 5 percent for quizzes/attendance/participation, and 20 percent for assignments. If you plan to continue with computer science courses such as CSCI-UA.0101, you *MUST* get a grade of C or better in this course. No exceptions will be made.  Attendance is mandatory and will be taken during each class.  Grades will be determined using the following scale:

A 94-100
A- 90-94
B+ 87-90
B 84-87
B- 80-84
C+ 77-80
C 74-80
C- 70-74
D 65-70
F less than 65

Quizzes

There will be 10 online quizzes that go along with each online learning module. These quizzes contain a series of multiple choice questions are worth 5% of your final grade. Quizzes are delivered via NYU Clasess and can be attempted up to 5 times - your most recent score will be the one recorded (not your highest score). The online quizzes must be completed before class on the day in which they are due - please see the course schedule for a complete list of due dates as well as the sidebar on the left side of the course website. Unlike assignments (described below), no late submissions will be accepted for missed quizzes. "Grace" days (also described below) do not apply to quizzes.

Assignments

There will be ten assignments in this course that will be assigned on a weekly basis. In general, assignments are due weekly at 11:55pm the night before the following assignment is presented. For a full outline of assignment due dates please refer to the schedule.

It is important not to get behind in turning your assignments (this class is cumulative).  Late submissions will be penalized by 10% off per day late, and assignments that are more than 7 days late can not be turned in for credit. That being said, sometimes there are unforeseen situations that may impede your progress, as a result you are being given 7 grace days for the entire semester. These grace days cover all late submissions regardless of personal, professional, or technical related delays (e.g. a job interview, computer hardware failure, etc.) and no further exceptions will be granted (so don't waste them simply by procrastinating). You don't need to do anything special to use these "grace" days - the course graders will keep track of these on your behalf and will apply them to your work as necessary.

You will be using NYU Classes to turn in your homework assignments.  It is your responsibility to make sure that your assignments have been submitted successfully.  You can do this by simply attempting to download your work after it has been uploaded to the system – if you are able to do so, your assignment was submitted successfully.  If you do have trouble with NYU classes you can always e-mail your homework to me directly.

All grading will be done on NYU Classes as well and you can check your grades at any time by logging in there and following the "Gradebook" link. If you notice an irregularity (i.e. you mistakenly lost points for an item that you successfully completed) please let me know and I will be happy to sit down with you to review your work. All grade changes must be completed in person and cannot be done over e-mail.

Assignments that you turn in should be your own work. It is fine to talk to other students and to get assistance in how to do something, but you should not ask your fellow students to actually do the work for you. When you turn in an assignment, you are saying that you have done this work yourself. The definition of plagiarism is to present someone else’s work as though it were your own. Please read the Computer Science Department statement on academic integrity for more information.

Support

Computer Science is similar to a math course in that all the material is cumulative in nature in that concepts build on each other. This means it's important that you not fall behind. If at any time you have questions, feel like you're falling behind, or don't understand the material there is always help available. The following resources are here to help you in the event you struggle with any concepts:

  • CS Lab Tutors - the CS department have several TAs that have office hours on campus. Before seeing them, please review our tutor and student guidelines for what is expected (tutors are not there to do your work for you.)
  • CAS Tutors - the University Learning Center provides free tutoring.
  • Office Hours - the professor and/or a TA will provide office hours which students are encouraged to attend if they are struggling with any material.

Software

The main software package that we will be working with this semester is the Python programming language.  Python is an open-source project, and anyone can get their own copy free of charge at http://www.python.org/download. We will be using Python 3.x this semester.

Personal Computers

Because this class involves in-class programming assignments, it's highly encouraged that you bring a laptop to class. If you don't have a laptop during in-class work, then you may work with a partner (see cooperation and acknowledgements). Keep in mind that computers often have hardware related problems and you should save your work often and back it up to a separate device. If you don't have a computer you can use the NYU computer labs (see below).

Using the NYU Computing Facilities

NYU provides numerous computer labs around campus, but the primary lab for this class are located at 14 Washington Place (this is where the class tutors will be). Further information on the labs is available from ITS.

Note about saving your work in the labs: You will be able to save your work ITS labs under your NYU Home Account and/or on your own flash drives. Although you can write to the hard disks of the machines in the labs, you cannot be sure that you will have access to the same machine the next time you enter the lab and the drives in the lab are frequently erased. The best option is to upload your files online and download them as needed (we will go over this in class).

Department Information

Feedback

I recognize that every student has a different level of background knowledge prior experience when it comes to technology. This course is designed as an introductory level class and topics will be presented assuming very little prior exposure to the topics. With that said, every student learns differently and I want to ensure that each of you is getting the maximum amount out of the course content as possible. Please do not hesitate to get in touch with me via e-mail or during office hours if you feel as though you are falling behind or you are not understanding a certain concept.


Copyright 2014