Course Information

INFO2420 Programming Fundamentals II

COURSE CODE:       INFO 2420

COURSE TITLE:       Programming Fundamentals II

CREDITS:                    4

LEVEL:                         2

PRE-REQUISITES:          INFO 1504

COURSE DESCRIPTION:

The course introduces simple data structures that every novice programmer should become familiar with. It introduces the concept of Abstract Data Types, their characteristics and implementation, such as Linked list, stacks and queues.

COURSE RATIONALE:

This course builds upon the Introduction to Programming I and continues to develop the skills and concepts that are essential to good programming practice and problem solving. 

CONTENT:

  • Introduction to Objects

Definition and properties of objects. The object factory- the Class. Class declarations. Object creation. Calling instance methods. Object storage and management. Class variables and class methods. Writing class declarations. The String class. Arrays of object. Searching and sorting arrays of objects.

  • Linked Lists

The notion of a linked list. Nodes and links. Basic operations on a linked list. A linked list class. Examples using linked lists.

  • Elementary Data Structures

The stack data structure and its operations. The array implementation of a stack. Examples using the stack data structure.

The queue data structure and its operations. The array implementation of a queue. Examples using queues.

Implementing a stack and a queue using a linked list

The notion of an abstract data type.

  • Recursion

The notion of a recursive definition. The principle of induction and its connection to recursion. Writing recursive methods. Examples

  • 2-dimensional arrays

LEARNING OUTCOMES:

At the end of this course, students should be able to:

  • Create classes to implement object specifications
  • Specify and implement abstract data types
  • Apply the concepts of encapsulation, abstraction, and inheritance.
  • Design, implement, test, and debug simple programs in an object-oriented programming language.
  • Describe how the class mechanism supports encapsulation and information hiding.
  • Explain the relationship between the static structure of the class and the dynamic structure of the instances of the class.
  • Explain how recursion works and apply it to simple programming problems.

ASSESSMENT:

Method of Evaluation

Percentage of Grade

Restriction

Coursework

        4 Assignments 20%

(programming assignments)

 

       2  1-hr Exams 20%

 

40 %

 

Final Examination

     One 2-hours written paper

     (Covers entire course – all           

       lectures, readings and  

       tutorials.)

 

60%

Fail Theory Regulation

Students must get a passing grade on final examination to pass the course.

TEACHING STRATEGIES:

Lectures, blended learning; videos

Lab-based: implement object data types and abstract data types

RESOURCES:

Advanced programming in Java – Noel Kalicharan

COURSE CALENDAR:

TIME PERIOD

TOPIC

WEEK 1- 3

Introduction to Objects: Definition and properties of objects. The object factory- the Class. Class declarations. Object creation. Calling instance methods. Object storage and management. Class variables and class methods. Writing class declarations. The String class. Arrays of object. Searching and sorting arrays of objects.

Assignment 1

WEEK 4- 7

Introduction to Linked Lists; The notion of a linked list. Nodes and links. Basic operations on a linked list. A linked list class. Examples using linked lists.

Assignment 2

Exam 1

WEEK 8- 10

Elementary Data Structures; The stack data structure and its operations. The array implementation of a stack. Examples using the stack data structure. The queue data structure and its operations. The array implementation of a queue. Examples using queues. Implementing a stack and a queue using a linked list. The notion of an abstract data type.

Assignment 3

Exam 2

WEEK 11

Recursion:The notion of a recursive definition. The principle of induction and its connection to recursion. Writing recursive methods. Examples

Assignment 4

WEEK 12

2-dimensional arrays

 

WEEK 13

Revision