Computer Science Syllabus
- 1 Course description
- 2 Instructor
- 3 Prerequisites
- 4 What you should already know before taking this course
- 5 Books
- 6 Assignments
- 7 Grading
- 8 The Tentative Plan
- 9 Getting help
- 10 Inspirational quote
- 11 Academic Integrity
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.
You are expected to already be familiar with the the basics concepts behind all high-level programming languages:
What you should already know before taking this course
- Why learn programming?
- Basic computer concepts and terminology
- Variables and literals
- Data types
- Input and output
- Boolean logic and decision-making in code
- For loops and While loops and both
- Lists and more
- Dictionaries and more
- text files
- strings and raw strings
- Alias vs. copy
Students are required to acquire this textbook:
- Introduction to Java Programming, Brief Version (11th Edition) by Y. Daniel Liang
- Most earlier editions should be fine too... check with the professor
Excellent quality free online Java tutorials that may be helpful in addition to the required textbook:
- Oracle's Java Tutorials
- Dr. David J Eck's Introduction to Programming Using Java, Seventh Edition
Submit assignments by sending them in an direct message to the graders in Slack
- Include a message with your name and the name of the assignment
- include all files as a single zip file... If you are not familiar with naming files and creating zip files, see the tutors.
- unless you have good reason to do otherwise, follow best-practices for all basic file names and file extensions
- assignments are due before class on the due date indicated on the schedule
- for every 24 hours that an assignment is late, we will apply a 10% penalty on the grade, up to a maximum penalty of 30%.
- after 72 hours, we will no longer accept the assignment.
- You are automatically granted 2 late assignment extensions of up to 1 week late each, with the exception that all assignments must be submitted before the final exam date.
- When submitting an assignment for which you would like to use one of these automatic extensions, you must notify the grader that you are using the extension, otherwise your assignment will be rejected.
- Do not ask for any extensions from the professor
- If a student requests a regrade of an assignment or exam, we will regrade the work in full, not just the part that the student believes has been mis-graded.
Approximate grading breakdown:
- 20% assignments
- 20% midterm #1
- 25% midterm #2
- 35% final exam
The Tentative Plan
- Chap. 1, Introduction to Java
- Chap. 2, Elementary Programming (Primitive Data Types)
- Chap. 3, Selections (Control Statements)
- Chap. 4, Loops
- Chap. 5, Methods
- Chap. 6, Single dimensioned Arrays
- Chap. 7, Multiply dimensioned Arrays
- Chap. 8, Objects and Classes
- Chap. 9, Strings and Text I/O
- Chap. 10, Thinking in Objects
- Chap. 11, Class Inheritance and Polymorphism
- Chap. 12, GUI Basics
- Chap. 14, Exception Handling
- Chap. 15, Abstract classes and Interfaces
- Chap. 20, Recursion
Help resources available to you are listed in order of “seriousness” of your problem:
Students are expected to consult the Student FAQ prior to asking questions of the tutors, professor, or other students. This allows us to focus our time on questions of greater significance.
Our course uses Slack as its main 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.
You are not required to supply any personally-identifiable information when signing up for slack. Discuss with the professor if you have concerns or questions about privacy:
Tutors are waiting to answer your every question. Visit them at the Kimmel Center, 4th Floor, 60 Washington Square S, New York, NY 10012, USA (view map)
Additional tutoring resources
- Peer tutoring from fellow undergraduates available at the NYU Learning Center
Talk with the professor
- see me before class
- raise your hand during class
- see me after class
- come to my open office hours
Object-oriented programming is an exceptionally bad idea which could only have originated in California. –Edsger Dijkstra
Working with others and leveraging all resources available to you is a prerequisite for success. This is different from cheating, plagiarism, and mental laziness. All submitted work must be your own. If you submit any work that is not your own, you risk failure or worse.
Please read our policy on academic integrity.