_______________________                                                                                                                     

     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 finite-state machine; encapsulation; polymorphism; inheritance; class invariants; and resource management. 3 credit hours

 
     

Prerequisite
 

CSC 116 Introduction to Computing - Java with a grade of C- or better

 

Course Objectives  

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 will be able to:

  • describe the use of inheritance and polymorphism in object-oriented systems, and design and implement programs using these concepts.
  • design and implement interfaces and abstract classes.
  • understand recursive algorithms, data structures, and data types, and design and implement recusive algorithms and class definitions.
  • design and implement a finite state machine.
  • construct and use dynamic data structures, including linked lists, stacks, and queues.
  • identify and describe the basic phases of the software life cycle.
  • navigate and understand the Java API documentation.
  • understand basic design modeling techniques and recognize how and when to use them.
  • write literate, well-documented Java source code, including markup for and use of Javadoc for generating implementation documentation.
  • understand basic categories of software testing, and design and implement test code.

 

Textbook  

Cay Horstmann Big Java, 3rd Edition ISBN: 9780470105542 Publisher: John Wiley & Sons Inc. Feb 2005


Course Requirements  

Grading and Course Work

Your final grade will be based on the following scheme:

Work Total
Assignments (4 programs)  60%
Exam 1   10%
Exam 2   15%
Final Exam  15%

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.

  • Tests and Final Exam: There will be two regular tests during the semester and a final examination.
  • Assignments: There will be five programming assignments this semester. You must submit these programs electronically via: http://submit.ncsu.edu/
  • Attendance: While there is no campus lecture component to this section, all students are expected to read the online course lecture material and to view the taped lectures. All students are expected to remain current with the course schedule.

Final Grades

Your final grade will be determined according to the following table, where X is your overall weighted average for projects and final exam.

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.

Range Letter grade
98 <= X <= 100 A+
92 <= X < 98
90 <= X < 92 A-
88 <= X < 90 B+
82 <= X < 88
80 <= X < 82 B-
78 <= X < 80 C+
72 <= X < 78
70 <= X < 72 C-
68 <= X < 70 D+
62 <= X < 68
60 <= X < 62 D-
X < 60

Credit Only and Audit students

The grade of "CR" will be awarded to a student taking the course for credit-only who passes the course with a grade of 60.0 or higher.

Audit students must attempt all 3 programs and receive a grade greater than zero for each attempted program in order to receive a grade of AU. Any student enrolled for audit who fails to meet this requirement will receive a grade of NR.

 

Computer and Internet Requirements  

NCSU has recommended minimum specifications for computers that are generally used for courses. Those specifications can be found here: http://www.ncsu.edu/it/compspecs/

Engineering Online recommends that your computer meets or exceeds the following minimum specifications below. A computer with greater capability (processor speed, RAM, internet bandwidth, disk capacity) will be more likely to properly display the video content of Engineering Online courses.

Windows:

  • Microsoft Windows XP, Windows 2003, or Windows Vista
  • Intel-compatible 1 GHz processor
  • 512 MB RAM
  • 60 GB hard drive with 1 GB free space available
  • Video display at 1024 x 768 or greater
  • Sound output and speakers
  • Silverlight  (viewers may be prompted to install this when first viewing a presentation)
  • Microsoft Internet Explorer 6.0 SP1 or later, Firefox 2.0 or later, or Google Chrome 1.0
  • Windows Media Player 9.0 or later
  • Real One Player Basic (required for certain courses)
  • Adobe Acrobat Reader
  • Broadband Internet connection (256 Kbps or more)

Mac OS X:

  • Mac OS X 10.4.8 or later
  • G4 processor
  • 512 MB RAM
  • 60 GB hard drive with 1 GB free space available
  • Video display at 1024 x 768 or greater
  • Sound output and speakers
  • Safari 2.0.4 (or later) or Firefox 2.0 (or later)
  • Silverlight  (viewers may be prompted to install this when first viewing a presentation)
  • Real One Player Basic (required for certain courses)
  • Adobe Acrobat Reader
  • Broadband Internet connection (256 Kbps or more)
  • NOTE:  The Flip4Mac plug-in causes problems when viewing Mediasite presentations and should be disabled.

Linux:

  • Playback of Mediasite presentations on Linux is accomplished via the Moonlight Project, an open source implementation of Microsoft Silverlight. For more installation on the installation and configuration of Moonlight, please visit http://www.go-mono.com/moonlight/. The compatible operating systems and browsers are listed on this page.
  • Microsoft Media Pack for Moonlight
  • Adobe Reader for Unix
  • Broadband Internet connection (256 Kbps or more)

Instructor  

Mr. James C. Tetterton
Online-Distance Education
Information Technology Specialist
Box 7901
NCSU Campus
Raleigh, NC 27695

E-mail: jctetter@ncsu.edu