Course Description
Completion requirements
Course Objectives
The objectives are to:
- Equip students with the principles of good programming practices and structured programming concepts.
- Introduce students to the constructs, syntax, and semantics of a higher-level programming language.
- Provide a solid understanding of variables, types, expressions, and statements in the chosen language.
- Develop students' ability to design algorithms, use control structures, and implement functions with parameter passing.
- Enable students to develop, debug, and test simple programs.
Overall Learning Outcomes
At the end of this course, students should be able to:
- Explain the principles of good programming and structured programming concepts.
- Understand and apply programming constructs, syntax, and semantics of a higher-level language.
- Describe variables, types, expressions, statements, and input/output operations in the chosen programming language.
- Demonstrate knowledge of program control structures, functions, parameter passing, and structured decomposition.
- 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
- Basic data types, variables, expressions, and assignment statements
- Operators and control structures
- Functions and parameter passing
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:
- Sebesta, R. W. (2018). Concepts of Programming Languages (12th ed.). Pearson.
- Gaddis, T. (2019). Starting Out with Java: From Control Structures through Objects (7th ed.). Pearson.
Supplementary Texts:
- Liang, Y. D. (2021). Introduction to Java Programming and Data Structures (12th ed.). Pearson.
- Deitel, P., & Deitel, H. (2019). Java: How to Program (11th ed.). Pearson.
Additional Resources:
- Online documentation of the chosen programming language (e.g., Java API documentation).
- TutorialsPoint: Programming Tutorials www.tutorialspoint.com