Syllabus
Introduction to Computer Science
New York University
Department of Computer Science
Course description
How to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through projects in a high-level programming language. Intended primarily for computer science majors but also suitable for students of other scientific disciplines. Programming assignments.
Learning objectives
Upon completing this course, students will be familiar with some of the foundations of computer science, including:
- Java programming language
- Primitive data types
- Selections, a.k.a. branching and control statements
- Loops
- Methods
- Single dimensioned arrays
- Mult-dimensional arrays
- Object orientation (i.e. objects and classes)
- Abstract classes and interfaces
- Inheritance
- Strings and text I/O
- Exception handling
- Recursion
Instructor
Tobias Blickhan
tobias.blickhan@nyu.edu
WWH 402
Getting help
Help resources available to you are listed in order of urgency of your problem:
Messaging
Our course will use a message board (probably on Brightspace) as a communication channel for announcements and discussion. This is a good place to ask questions that anyone - other students, graders, tutors, or the professor - can answer. This is a resource best used when the answer is not required urgently.
Tutoring
Tutors for this course are waiting to answer your questions during dedicated tutoring hours. Use tutoring for more involved questions and when you prefer a more immeidate answer. The tutors are an amazing resource. Ask them often!
Tutoring hours can be found on Brightspace.
Talk with the instructor
For any issues at all, contact the instructor:
- see me before class
- raise your hand or simply speak during class
- see me after class
- come to my office hours
Additional tutoring resources
Additional academic support is also available through the University Learning Center.
Attendance & participation
Attendance is mandatory and participation is encouraged. Students who attend class regularly and participate in discussions tend to do better in exams.
Required software and hardware
All students require access to a computer on which they can write programs using a specific set of applications. Computers at any of the university’s computer labs will do, as will any laptop or desktop computer.
Textbook
The course is based on the book Introduction to Java Programming, Brief Version, 11th Edition written by Y. Liang and published by Pearson.
Computer labs
Windows and Mac computers are available to you in the ITS labs. You do not need your own computer nor do you need to purchase any software. However, you will be learning how to use various programs and may wish to have access to them at home or on your laptop. In this case, you must purchase your own license or use a trial version, which is sometimes available from the publisher. You can download software provided by ITS to all students, including SFTP programs, by going to the ITS software page.
Saving your work in the lab
You will be able to save your work in the ITS labs on your own flash drive, or online cloud storage services such as Box.com or Google Drive. Although you can write to the storage drives 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.
Grading
You will receive a grade calculated on the following rubric:
- 15% in-class quizzes
- 15% assignments
- 20% first exam
- 20% second exam
- 30% third exam
Quizzes & Assignments
Online quizzes and assignments are completed outside of class in Brightspace.
In-class quizzes are there for you to check your knowledge before the exams. You will have a rough idea of when they will take place.
All assigned work is due before class on the due date indicated on the schedule.
Regrade requests
If a student requests a regrade of any work, we will regrade the work in full, not just the part that the student believes has been mis-graded.
For an explanation/regrade of homework submissions, please submit the request via Gradescope so the graders are in the loop from the start. There is a field to enter comments and explanations about your request; providing context and comments greatly increases the chance your request will be acted on. Explain what was wrong and why. Furthermore, submit the request within a week after the grade was assigned.
Inspirational quote
Object-oriented programming is an exceptionally bad idea which could only have originated in California.
Academic Integrity
Working with others and leveraging all resources available to you is a prerequisite for success. This is different from copying, cheating, plagiarism, and mental laziness. All submitted work must be your own. There are very reliable systems we use to detect plagiarism in computer code, such as moss and compare50. If you submit any work that is not your own, you risk failure or worse.
Please read the Computer Science department’s policy on academic integrity and the University-wide policy which supercedes it.
Acknowledgements
This course was originally designed by Amos Bloomberg. All course materials were forked from his GitHub repository.