CENG 211

Programming Fundamentals

Prerequisites: CENG 113

Control Structures, Classes and Methods, Inheritance, Polymorphism, Interfaces, Exception Handling, Streams and File I/O, Recursion, Dynamic Data Structures and Generics.

Course Objectives

1. Convert a problem definition into a programming challenge
2. Devise a data structures-based solution to this challenge
3. Implement the solution in a robust and efficient way
4. Test and improve your solution/implementation

Recommended or Required Reading

Absolute Java, Global Edition, 6/E, Walter Savitch, Kenrick Mock, Pearson, 2016
Starting Out with Java: From Control Structures through Objects, Global Edition, 6/E, Tony Gaddis, Pearson, 2016

Learning Outcomes:

Upon the completion of this course a student :

1. Apply the operations for maintaining common data structures in object-oriented way
2. Design algorithms in object-oriented way for solving computing problems
3. Know and compare different programming approaches
4. Analyze problems, design and implement solutions
5. Demonstrate the ability to abstract in object oriented context
6. Apply computer engineering methods to real world problems

Topics
Introduction to Java – I
Introduction to Java – II, File I/O
Defining Classes-I
Defining Classes-II, Arrays
Enumerations, ArrayList
Inheritance
Polymorphism
Midterm Exam
Abstract Classes, Interfaces, Abstract Data Types
Enumerations with Methods, Inner Classes
Exception Handling, Generics
Collections
Object-Oriented Design, UML Class Diagrams
UML Sequence Diagrams, UML Statechart Diagrams
Final Exam

Grading

Midterm 25%

Quiz 20%

Homework 20%

Final 35%