CSC 120, Computer Science I, Instructor:
The campus bookstore is carrying a custom version of the textbook which contains chapters 1 - 7. The textbook is:
Java Software Solutions: Foundations of Program Design, 8 th Edition by Lewis, J.
& Loftus, W., Addison-Wesley, 2014
The prerequisite for CSC 120 is:
At least a C in CSC 104 (previously CMP 104) or at least a C in MAT 111 or permission of Department. Student must have satisfied all MAT, ENG
001and RDG 001 remediation requirements prior to starting the course.
A student who has prior programming experience (including a HS programming course) or has completed a high school pre-calculus and is registered for MAT 122 has satisfied the prerequisite and should be allowed to take CSC 120.
CSC 120 is not a course in the Information Technology degree program. Please advise students accordingly.
CSC 120 is 6 contact hours (students earn 4 credits) with an official 2 hour laboratory component. During this time it is expected that students work on directed laboratory assignments to aid in their understanding of the course material. Instructors must be present for these laboratory sessions and should provide the students with written instructions for each assignment. Instructors should use Eclipse as the IDE.
Please contact JoAnne Thacker ( JoAnne.Thacker@ncc.edu
) if you have any questions or would like to see sample laboratory assignments.
Revised January 2016 for Spring 2016
NASSAU COMMUNITY COLLEGE
DEPARTMENT OF MATHEMATICS/COMPUTER SCIENCE/
INFORMATION TECHNOLOGY
Course Outline for
CSC 120 (previously CMP 210)
Computer Science I
Curriculum Interdisciplinary
Lab hours
Semesters offered
2
Indicated in Catalog
Length of semester
Class hours
15 Weeks
4 lecture (6 contact)
Credits 4
Text Java Software Solutions: Foundations of Program Design, 8 th
Edition by Lewis, J. & Loftus, W., Addison-Wesley, 2014
A custom version of the textbook containing chapters 1 – 7 is available at the campus bookstore.
PREREQUSITE
At least a C in CSC 104 (previously CMP 104) or at least a C in MAT 111 or permission of Department. Student must have satisfied all MAT, ENG 001 and RDG 001 remediation requirements prior to starting the course.
CATALOG DESCRIPTION
This course is an introduction to computer programming and algorithmic problem solving using an object-oriented, high level programming language. Emphasis is placed on problem solving strategies that utilize multiple classes and methods. This course will focus on the following concepts: algorithm implementation, modular development, documentation, abstraction and coding along with problem solving strategies. Includes supervised hands-on component. Students who have completed CMP 210 will not get credit for CSC 120. (4 lecture, 2 laboratory hours) Laboratory fee applies.
DISABILITY STATEMENT
If you have a physical, psychological, medical, or learning disability that may impact your ability to carry out the assigned coursework, I urge you to contact the staff at the
Center for Students with Disabilities (CSD), Building U,(516 572-7241), TTY (516) 572-
7617. The counselors at CSD will review your concerns and determine to what reasonable accommodations you are entitled as covered by the Americans with
Disabilities Act and Section 504 of the Rehabilitation Act of 1973. All information and documentation pertaining to personal disabilities will be kept confidential.
OBJECTIVES
General
To provide the student with a comprehensive introduction to computer programming using an object-oriented language using an objects-early approach. Emphasis is placed on the design and coding of structured programs using a modern structured language .
Revised January 2016 for Spring 2016
Specific a) To analyze a problem and describe its solution in terms of interrelated steps.
Problems will cover a wide variety of fields in the natural and social sciences, mathematics, and business. b) To translate a problem’s solution into syntactically correct structured program code. c) To gain an understanding of the main issues of computer science, including history of the discipline, ethics, security and privacy, principles of programming languages, compilers and interpreters, and operating systems. d) To teach students how to implement solutions to various problems by writing syntactically correct programs. Programming specific terminology will be emphasized. e) To gain an understanding of how to design, test, and debug a program
. f) To emphasize the object-oriented nature of programming using multiple classes and objects throughout the course.
GRADING
It is expected that students will be evaluated on a combination of program assignments, laboratory assignments and tests. Students must be required to submit programs and laboratories for a fraction of their grade. Recommendation: at least 3 full-class exams, 5 programming assignments, and 12 laboratories.
COMPILER
Students should use Eclipse as the integrated development environment (IDE)/editors for all programming assignments.
COMPUTER CENTER REQUIREMENT
As part of this course, students should avail themselves of further study and/or educational assistance available in the B225 Computer Learning Center. Use of the resources in the Computer Learning Center is deemed an integral part of the course and will help the student master necessary knowledge and skills.
COURSE OUTLINE
This outline specifies the topics to be covered and suggests an appropriate number of classes to devote to each. This order may be re-arranged to fit the instructor’s teaching approach. However, objects and classes must be covered within the first 3 weeks of the course and students must use multiple classes and files throughout the course.
The laboratory component is designed to re-enforce topics covered in lecture. The goal of the laboratory component is to provide students with an extended amount of time to work through object-oriented programming problems on computers with their instructor available to guide them through the process.
Topic / Subtopic Detail Custom
Text
Chapter(s)
Original
Text
Chapter(s)
#
Lecture
Meetings
#
Laboratory
Meetings
1. Programming Basics a) Syntax vs. semantics b) Data types i.
ii.
iii.
int
double char
1 (p. 2-
4,26-48),
2 (p.61-
73, 75-87)
1 (p. 2–4,
26-48),
2 (p. 57-69,
71-83)
2.0 1.0
Revised January 2016 for Spring 2016
c) Declarations d) Assignment statements and expressions e) output statements f) OOP terminology g) Comments iv.
boolean
JavaDoc
(optional)
2. Classes & Objects a) Built-in classes b) Programmer defined classes c) Driver/Application programs
3. Input/Output a) Screen output b) Keyboard input
4. Methods a) Using built-in & programmer-defined methods b) Designing methods c) Parameters & return values d) Scope of variables e) Class (static) methods vs. instance methods
String, Math this.
3 (p. 123-
135), 4 (p.
174-188)
2 (p. 91-
95)
3 (p. 128-
130), 4 (p.
188-197)
5. Control structures a) Logical expressions b) If statements c) For loops d) While loops
6. Arrays a) One dimensional array of primitive data types b) One dimensional array of objects c) Access and manipulation algorithms
5 (p. 229-
257), 6
(p.307-
309)
7 (p. 331-
353)
7. Array-based lists (not using pre-defined classes)
Unordered lists a) Insert (at end) emphasis on how the list b) Delete c) Linear Search itself is modified
8. Testing and Debugging
Four days have been allowed for testing
Total Hours 60.0
3 (p. 113-
125), 4 (p.
159-172)
2 (p. 87-92)
3 (p. 118-
121), 4 (p.
172-181)
5 (p. 207-
239), 6 (p.
279-282)
8 (p. 379-
401)
10.0 2.0
1.0
7.0
5.0
6.0
9.0
1.0
4.0
45.0
1.0
2.0
2.0
4.0
3.0
15.0
Revised January 2016 for Spring 2016