Course Objectives

The objectives are to:

  1. Equip students with the principles of good programming practices and structured programming concepts.
  2. Introduce students to the constructs, syntax, and semantics of a higher-level programming language.
  3. Provide a solid understanding of variables, types, expressions, and statements in the chosen language.
  4. Develop students' ability to design algorithms, use control structures, and implement functions with parameter passing.
  5. Enable students to develop, debug, and test simple programs.

Overall Learning Outcomes

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

  1. Explain the principles of good programming and structured programming concepts.
  2. Understand and apply programming constructs, syntax, and semantics of a higher-level language.
  3. Describe variables, types, expressions, statements, and input/output operations in the chosen programming language.
  4. Demonstrate knowledge of program control structures, functions, parameter passing, and structured decomposition.
  5. Develop, debug, and test simple programs in the taught programming language.

Detailed Course Content

Module 1: Introduction to Computer Programming

  • Essentials of computer programming
  • Types of programming: Functional, Declarative, Logic, Object-oriented, and Scripting languages

Module 2: Structured Programming Principles

Module 3: Object-Oriented Concepts

  • Abstraction, objects, classes, and methods
  • Encapsulation and class hierarchies
  • Program organization using packages/namespaces

Module 4: Algorithm Design and Problem Solving

  • Recursive algorithms and their implementation
  • Searching and sorting techniques

Module 5: Advanced Programming Concepts

  • Event-driven programming (event-handling methods and propagation)
  • Exception handling
  • Introduction to strings and string processing
  • Simple I/O operations and arrays

Laboratory Work

  • Programming assignments focused on algorithm design and implementation (e.g., average, standard deviation, searching, and sorting).
  • Tracing and developing simple recursive algorithms.
  • Implementing object-oriented principles such as inheritance and polymorphism.

Teaching/Learning Methods

  • Lectures
  • Hands-on practical sessions in the programming lab
  • Tutorials and group discussions
  • Continuous assessments through assignments and quizzes

Modes of Assessment

  • Continuous Assessment (Assignments, Quizzes, Practical Exercises): 40%
  • Final Examination: 60%

Reading List/References

Primary Texts:

  1. Sebesta, R. W. (2018). Concepts of Programming Languages (12th ed.). Pearson.
  2. Gaddis, T. (2019). Starting Out with Java: From Control Structures through Objects (7th ed.). Pearson.

Supplementary Texts:

  1. Liang, Y. D. (2021). Introduction to Java Programming and Data Structures (12th ed.). Pearson.
  2. Deitel, P., & Deitel, H. (2019). Java: How to Program (11th ed.). Pearson.

Additional Resources:

  1. Online documentation of the chosen programming language (e.g., Java API documentation).
  2. TutorialsPoint: Programming Tutorials www.tutorialspoint.com