CSCI 1301 : Computer Science
I
Instructor
Name: Mathias Fonkam
(PhD)
Office: RH
Simmons 216A,
Telephone: (229) 430-3015
Email: mfonkam@asurams.edu,mfonkam@yahoo.com
Office Hours: Mon/Wed: 9:00-12pm; Tue/Thu: 2:30 -4:00pm
Course Details
Day/Location/Meeting Times: Tuesdays & Thursdays: 8:25 - 9:40 (for Section 2 in RHS 212) & 11:15am -12:30pm
(for Section 1 in RHS 210).
Texts for Course:
- Java: An
Introduction to Computer Science & Programming 3rd Edition, ISBN:
0130174890, Walter Savitch. Required Text Book
- Objects with Java –
A practical introduction using BlueJ – 2nd Editon – by David J. Barnes & Michael Kolling, Prentice Hall, ISBN: 0-13-124933-9
Course Prerequisites: CSCI 2101 -
Introduction to Computer Science.
Course Description
The course will introduce
students to key computer science concepts and principles necessary for solving
real-life problems on the computer through programming. The object-oriented
programming paradigm with Java will be used. Students will be introduced to this
relatively new paradigm of programming and will acquire the skills of modelling real life problem solutions (algorithmns)
and their implementation on the computer using Object-oriented analysis and
design techniques (as embodied in the Unified Modelling
language) and programming with classes and objects. The course will also focus
on Java as a programming language both from the object-oriented and imperative perpectives hence treating such conepts
as variable assignment, arithmetic and logical operators, control flow, file
input/output and the design of algorithms in Java.
Class Objectives:
After a successful completion of
this course, students should be able to do the following:
- Effectively browse and peruse the Java
class library API;
- Effectively use the JDK toolkit as well
as one of the free Java IDEs like BlueJ.
- Write and compile Java classes that use
objects from other classes
- Understand the fundamental object
oriented concepts such as classes, objects, inheritance, aggregation,
composition, polymorphism, message passing.
- Understand and apply object principles
such as abstraction, encapsulation, loose coupling and cohesion.
- Gain appreciation of some software
engineering best practices such as coding styles, and code documentation
- Write simple but powerful programs
which peruse existing objects from the class library, reading inputs from
a file and writing output to a file
Outline of topics:
- Key Features of the
Java Platform & its Strengths
- Compiling and
running a Java programming – both from command line and using an IDE (BlueJ).
- Playing with some objects in the Java
class library (API classes using BlueJ).
- Introduction to core Java classes and
Packages – and the need and strategy for organizing your classes into
packages
- Object-based Programming - Classes and
Objects – their modeling using UML notation
- Class hierarchies and extension –
inheritance, aggregation, composition and other class associations (object
interactions)
- Java Programming Constructs – coding
class methods – assignment, arithmetic and logical operators, control
flow, and handling file input and output
- Arrays One-Dimensional Arrays; Passing
Arrays to Methods; Array Assignment; Finding Min and Max; Simple Sorting;
Searching an Ordered Array; Two-Dimensional Arrays; Arrays of
Non-primitive Types – writing iterations with arrays (for and while
loops).
- OOP Techniques: Interfaces and
Polymorphism – introduction to data and procedural abstractions in Java.