The Language of Computers Course
An Introduction to Computer Science and Programming using Python
New York University Abu Dhabi
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: Mondays and Wednesdays, 11:00 AM to 12:15 PM (lecture) followed by a lab from 12:15 to 12:45PM. (Via Zoom)
Dates: 5/24/2020 – 7/7/2021
Office hours: Mon, 12:15- 1:15 PM, or at other times by appointment
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. get to learn about AI, Machine learning, privacy, security among other important CS topics. 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 midterm 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.
The midterm exam will be held on (TBA). There will be no lab on that day.
- Please note that all exams are hand-written exams: books and computers will not be permitted. There will be no makeup exams, so make sure that you will be able to attend the exam. Do not book any travel on this dates!
- No Final Exam for this class. There will be a required group project that will be presented during the last day of class. I will post and discuss the final project during class during the last four weeks of the course.
Required e-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: 40% of course grade (between 5 -7)
Labs and Participation: 10 % 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.
Grade Distribution for the Course (No Curve):
|95 – 100||A|
|90 – 94||A-|
|87 – 90||B+|
|83 – 87||B|
|80 – 83||B-|
|77 – 80||C+|
|73 – 77||C|
|70 – 73||C-|
|67 – 70||D+|
|63 – 67||D|
Extension policy: Every student in this class is permitted one extension of one week – no questions asked and will be due the following week from the due date! – 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:
- Late assignments
- 1 sec = 1 minute = 1 hour = 1 day
- -10% for each day late from assignment due date
- Assignments will not be accepted after the 7th days (1 week) from the assignment’s due date
- For each assignment that you do not hand in within the time limit, your final grade will be lowered by one letter grade ( i.e., if you are averaging a B+, but you have missed 2 home works, your final grade will be B-).
- Students who spend little time on the homework invariably do poorly on exams and end up with a poor final grade.
- Very Important: For your own good you must save all programs on back-up (USB or flash drives). Make and keep copies of all your programs at all times.
- Lost programs or crashed systems do not provide adequate excuses for missing or late homework.
Plagiarism and Cheating: [Zero tolerance]
NYU Abu Dhabi expects its students to adhere to the highest possible standards of scholarship and academic conduct. Students should be aware that engaging in behaviors that violate the standards of academic integrity will be subject to review and may face the imposition of penalties in accordance with the procedures set out in the NYUAD policy.
Full details at: https://students.nyuad.nyu.edu/campus-life/student-policies/community-standards-policies/academic-integrity/
- Please note that 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.
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 required.
- 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.