CSC 216 Programming Concepts  Java 
The second course in computing, intended for computer science majors. Emphasis is placed on interpretation of inductive definitions (functions and data types); testing strategies; specification and implementation of finitestate machine; encapsulation; polymorphism; inheritance; class invariants; and resource management. 3 credit hours 

• Prerequisite  

A C or better in CSC116 Introduction to Computing (or equivalent) is a required prerequisite for this course. As a student, you are expected to know and understand the material covered in CSC116, and only a minimal amount of time will be spent on a brief refresh of this information. Calculus I which is offered as MA 141 by the Department of Mathematics at North Carolina State University. 

• Course Objectives  
CSC 216 is the second course in computing, intended for majors and students in the Computer Science Certificate Program. Emphasis is placed on interpretation of inductive definitions (functions and data types); testing strategies; specification and implementation of finitestate machine; encapsulation; polymorphism; inheritance; class invariants; and resource management. This is a course on the fundamentals of computer science and programming using Java. Students taking this course are expected to have an understanding of loops, conditional logic, objects, classes, file I/O, arrays, and the basics of Java GUIs (swing and/or AWT). Upon satisfactory completion of this course, you should be able to:


• Course Requirements  
Grading and Course Work Your final grade will be based on the following scheme:
* Your lowest Part 2 grade will count half as much as the other two Part 2 grades. That means that the lowest Part 2 grade will contribute 6.5% of your final grade and the other two Part 2 grades will contribute 16.25% apiece. You cannot make up missed tests or exams without an official university excuse. Furthermore, we will not accept late programming assignments without an official university excuse.
Final Grades In order to pass the course with a letter grade, you must have a 60+weighted average on the exams and you must have a 60+ average on the programming assignments. In order to pass the course with a C or better, you must have a 65+ weighted average on the exams and you must have a 65+ average on the programming assignments. Subject to the "average" conditions above, your final grade will be determined according to the following table, where X is your overall weighted average for projects and final exam.
Credit Only and Audit students The grade of "CR" will be awarded to a student taking the course for creditonly who passes the course with a grade of 60.0 or higher. 

• Textbook  
The primary, uptodate, consistent source of information for this course is the lecture notes posted on this site. You are expected to read them and understand them thoroughly. You are also expected to do all of the practice exercises. Videos to go with this course are available at the Engineering Online website. The video tapes are being made anew in a live class this semester, and they will be available as soon as possible after each actual taping. Textbook: Building Java Programs (2nd Ed) by Reges and Stepp. You likely already have a copy of this from CSC 116. Note that most introductory Java textbooks provide a convenient source of extra help and reference. Of course, the web is an excellent place to look for help with the Java language and programming practices as well. 

• Computer and Internet Requirements  
NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here. 

• Instructor  
Dr. Jo E Perry James C Tetterton 
Email: jep@ncsu.edu2

