C O U R S E    O U T L I N E 
 
 
CS 500  Computer Science for CIT
 
Fall Semester, 2020
 
2007/08 Catalog data: Concepts of Computer Science, including data representation, computational theory, architecture and instruction sets, operating system components, and programming paradigms such as principles of control structures, object-oriented programming 
 
Prerequisites: Permission of department chair and program coordinator.
 
Textbooks: 1. John Lewis and William Loftus, Java Software Solutions, last edition.
           Addison-Wesley.
 
 
Instructor: Fatemeh Abdollahzadeh, Ph.D., Professor of Computer Science.
 
            Office            MS303.
            Phone             (860) 832-2714.
            E-mail            abdollah@ccsu.edu
-           Office hours  MW from 5:50 to 7:20 , and TR  from 7:10 to 8:10 pm  
 
Course Objectives: Having completed this course successfully, the student should
 
   - Understand the basic principles of computer science and computer organization.
   - Design Java programs using basic control structures (linear, iteration, selection and recursion).
   - Define Java objects, methods and classes and use them in definite 
     application settings.
    - Understand and use basic data structures, namely arrays, linked lists, stacks, queues, and binary trees.
 
Class topical outline and assignments for the week:
 
Week 1   
 
   - Introduction to computer systems and computer languages.   
   - Introduction to Java language and Object-Oriented Programming. 

      Install JAVA on your home computer. Download from

          http://www.sun.com if JAVA disk is not available.

 

 
Week 2 
 
    - Primitive data types and their internal representation. Number systems and 
     conversions between numbers in different bases. Introduction to computer architecture and instruction sets.
   - Variables. The assignment statement and arithmetic operators.
   
 
Week 3
 
   - Objects, class libraries and packages. Introduction to applets.
   - The selection control structure (if, if-else and switch statements). Boolean expressions. 
   - Iteration: while loops.
 
Week 4   
 
   - Conversions between data types. 
   - Increment, decrement and logical operators. 
   - Iteration: do and for loops.
   
 
Week 5    
 
   - Test #1.
   - Objects and classes. Creating class and instance methods. 
   - Method overloading. The String Tokenizer class. 
   
 
Week 6    
 
   - Static variables and static methods.  
   - Reading from a text file and writing to a text file.
   - Arrays of primitive types and arrays of objects. 
 
Week 7   
   - The sorting problem: selection and insersion sorts. 
   - Sorting arrays of objects.
   - Dynamic arrays (vectors) and multidimentional arrays.
   
Week 8   
 
   - Inheritance. Creating subclasses. Overriding methods.
   - Class hierarchies. Polymorphism. 
   - Interfaces and listeners.
   
Week 9   
 
   - Test #2.
   - Exceptions and I/O streams. The try statement.
   - Introduction to Software Engineering.
 
Week 10  
 
   - Recursion and recursive programming.
   - Recursion vs iteration.
   - Application of recursion: merge sort.
   
 
Week 11   
-          Inheritance,   homomorphism .        
 
Week 12
-          - Introduction to Abstract Data Types (ADTs): linked lists.
-             - Operations on linked lists.
-             - Doubly linked lists.
 
 
Week 13   
 
   - Data structures: stacks. Operations on stacks.
   - Applications of stacks.
 
Week 14  
 
   - Data structures: queues. Operations on queues.
   - Applications of queues.
 
Exam week
 
   - Final exam. 
   - Review and discussion.
 
Final exam:  This will be a cumulative test of representative content of the entire semester's course offerings.
 
Tests: There will be two tests designed as elemental evaluation devices intended to prompt the student to stay abreast of assigned topics. 
 
Class discussion: Since the style of the class sessions will be interactive, the student is expected to come to the class with prepared questions, comments and answers to the assigned exercises. 
 
Homeworks: The student will be assigned six official homeworks. The student is responsible for constructing a set of test cases which covers all of the possibilities inherent in that program assignment. The student must submit the following materials for each program: title page of the assignment with student name, a pseudo code (or a flowchart, whichever is preferred) of the problem's solution, a listing of the program, a hardcopy of ALL runs of the program which are needed to demonstrate the correctness of the program, and the disc with the program and all relevant files. Homeworks will be graded upon degree 
of success, precise implementation of the theoretic concepts, and use of an appropriate program structure. There will be a penalty for later submissions. 
To successfully complete the course, all homework assignments must be submitted.
 
Academic honesty: All homework and other written assignments must be an individual effort of the student submitting the work for grading. See the section "Policy on Academic Honesty" in the CCSU Student Handbook.
 
Attendance: It is expected that the student will attend class sessions regularly. Absences result in the student being totally responsible for the make-up process. 
 
Grades and evaluation: The student will be evaluated regularly during the semester and should be aware of his/her progress continuously during the semester. 
   30% Homework
   10% first exam
   20% second exam
   40% final exam
 
   ------------       -----------
    94 - 100               A
    90 - 93.99             A-
    87 - 89.99             B+
    84 - 86.99             B
    80 - 83.99             B-
    77 - 79.99             C+
    74 - 76.99             C
    70 - 73.99             C-
    67 - 69.99             D+
    64 - 66.99             D
    60 - 63.99             D-
    below 60               F
 
How to run a java program in eclipse