The Language of Computers
(CADT-UH 1013EQ )
An Introduction to Programming using Python
Professor Sana Odeh
Email: sana (AT) nyu (DOT) edu
Clinical Professor of Computer Science
Faculty Liaison for Global Programs of Computer Science
Courant Institute of Mathematical Sciences
New York University
Affiliated Faculty, NYU Abu Dhabi
Class Time: Tue/Thu, 1:15-3:15 PM
Location: CR-017, NYU Abu Dhabi Saadiyat Campus
Office hours: Tue, 3:15-4:45 PM, or at other times by appointment
Office location: NYUAD Engineering building (Office # 125), NYU Abu Dhabi Saadiyat Campus.
This course introduces students to the basics of how computers “think” and some of the inherent limitations of computers:
- How do programs (software applications) make computers behave intelligently and allow them to solve problems effectively for a wide range of applications and fields, from art and other media to education, medicine, and the core sciences?
- How do we use computer programs to process, structure, manage and visualize data and information, create and manipulate digital media, and search and gather information relevant to any particular topic?
- How do computer programs operate virtually, creating the World Wide Web of the modern digital age, and how does all of this effect issues related to security and privacy in the wired world we live in today?
Students are asked to create innovative programming solutions to real-world problems and develop applications focused on social good for their final project. Students design programs to collect, analyze and present data. The programming language of choice is Python, a relatively easy programming language with powerful visual, text and data processing, and graphics capabilities. This course is intended for students from different disciplines (outside of computer science); no prerequisite is needed.
This core course counts for the Q (quantitative) and/or the E (experimental) requirement.
- Describe and explain the foundations of Computer Science.
- List and employ the basic elements of Programming.
- Identify and use Program Control Flow: Boolean Logic, operators and expressions to the concepts of repetition and pattern recognition.
- Recognize how programs process, mange and visualize data and information.
- Develop programs manipulating data, text, and graphics, creating simple animation, and building simple, fun and interactive games.
- Build simple programs for the web.
- Students are required produce five individual programming assignments and one final project integrating graphics, sound, animation, and text and image processing.
- Students will submit labs after each class to practice the material covered.
- Students will sit a closed-book, hand-written mid-term exam.
This course has no prerequisites.
Help for this Course
Professor: Whenever you have a question about the course material, please feel free to see me during my office hours or write me an email message. If at any time you feel that you are falling behind or are overwhelmed by the material, let me know: I will be very happy to help you.
Required book: Visual Quickstart Guide to Python by Tony Donaldson Peachpit Press
Optional book: How to Think Like a Computer Scientist (Free online Book): http://openbookproject.net/thinkcs/python/english3e/index.html
Software: We will use Python software (Version 3) in this class. This is free, open-source software. The python software includes the Integrated Development Kit (IDE) called IDLE. IDLE is easy-to-use and is available for different operating systems such as Windows, Linux and Macintosh.
Course web accounts: We will be using a special web account on a Unix web server which will be assigned to you automatically based upon your enrollment. This is called an “i5” account, and we will use it for our web sites. I will discuss the details of this account later on in the course when we cover web CGI.
Assignments: 50% of course grade
Midterm exam: 20% of course grade (hand-written and closed-book)
Final project: 30% of course grade.
There is no final exam.
Extension policy: Every student in this class is permitted one extension of one week – no questions asked! – during the course of the semester. You need to email your professor to secure the extension before the assignment due date. Assignments with extensions (late assignments) should be submitted within one week from the assignment’s due date.
However, please do not hesitate to see me if you are falling behind, if you would like assistance, or there are circumstances beyond your control which delay your work.
Late assignments (without extensions) will be penalized as follows:
- 10% for one class late after the due date.
- 20% for two classes late after the due date.
- 30% for three classes late after the due date.
No assignments are accepted after the last day of class.
- Discussing homework concepts is fine, but you must submit your own work (except otherwise noted as in the case of the group project).
- Copying all or part of another student’s homework, project or exam or copying from any other resource is prohibited without proper attribution.
- Allowing another student to copy all or part of your homework, project, or exam is prohibited.
- Make sure to read the CS department statements on Academic Integrity for more details.
In an effort to make this class enjoyable for everyone, I would like you to be observe the following policies:
- Please be on time to class and attend all classes as it’s reqiured.
- Please do not talk to your friends and neighbors in class. It disturbs everyone, and makes it hard to concentrate. If you have a question, just ask me!
- Don’t be distracted by passing notes to your neighbors during class.
- Don’t use laptops to read emails and browse the web during class.
- Please turn your cellphones off!
- Maintain a professional attitude during class and be civil toward everyone at all times.
- Make sure to be prepared by doing the readings and class assignments on time.