Course Information

COURSE TITLE: Computer Programming I

COURSE CODE:COMP 1601

TYPE: Core

LEVEL: 1

SEMESTER: 1

START DATE: SEPT-01-2016

DEPARTMENT and FACULTY: DCIT/FST

CREDITS: 3

PRE-REQUISITE(S): None

ESTIMATED STUDY HOURS:

2 1-hour lectures, 1 2-hour lab, 3 hours independent study

COURSE DESCRIPTION

This course uses an appropriate programming language as a tool to teach fundamental programming concepts. The main concepts covered are sequence, selection and repetition logic, character and string manipulation, functions, and a basic introduction to arrays and their applications.

COURSE RATIONALE

This course equips students to solve problems on computer based systems. It identifies what type of problems can be solved by such systems and which cannot. It guides students on methods of developing structured algorithms. The focus on this course is problem description and presentation using either flowcharting or pseudocode tools. The selected programming language is used as a vehicle to show the basics of programming algorithms.

COURSE CONTENT

• Steps in Problem Solving
• Problem solving steps to solve a problem that has an algorithmic solution
• Structured and unstructured approaches to problem solving
• Elementary Programming Concepts
• Concept of a program
• Assembler, interpreters and compilers
• Number representation in computers
• Programming Language Basics
• Fundamental concepts for solving problems on computers
• Tokens in the programming language
• Basic data types
• Sequence Logic
• Data collection (reading from the keyboard)
• Processing (Assigning variables, calculation, operators and logic)
• Output (Displaying data to the screen)
• Selection Logic
• If construct
• If- else construct
• Nested If
• Repetition Logic
• While construct
• For construct
• Do-while Loop
• One Dimensional Arrays
• Declaration, Storage and Retrieval of Array Elements
• Do basic Problems involving 1-D arrays
• Characters and Strings
• Character representation in computers
• String operations
• Functions
• Modularization in program design
• How to return a value
• Scope of variables

COURSE LEARNING OUTCOMES

Upon the successful completion of this course, the student will be able to

• Explain fundamental concepts for solving problems on the computer.
• Describe how data is stored and organized.
• Use arithmetic and logical operators in the problem solving process.
• Create programs in the selected programming language for solving simple problems.
• Design, implement, test, and debug a program that uses any or all of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures and functions

COURSE ASSESSMENT

 Assessment Learning Outcomes Weighting % Assessment Description Duration 1 2 3 4 5 Assignment 1 X X X 20% Problems Assignment 2 X X X X Problems Assignment 3 X X X X X Problems Exam 1 X X X X X 30% Problems & short answer 1.5 hour Exam 2 X X X X X Problems & short answer 1.5 hour Final Examination X X X X X 50% Problems & short answer questions 2 hours TOTAL % 100%

TEACHING STRATEGIES

Interactive lectures will be used to introduce the main concepts of the course. However, discussion and brain storming methods will be used throughout the course with the goal of allowing students to engage the problem solving process. Labs will also be used to demonstrate, in a practical manner, the concepts taught in lectures.

RESOURCES

Lecture Notes

Recommended Textbooks

• Noel Kalicharan.  C Programming - A Beginner's Course. 2005.  CreateSpace Independent Publishing Platform.

COURSE CALENDAR: 39 hours (3 hours per week)

 Week Topic Week 1 Steps in solving a problem – use HIPO diagrams, flowcharts and trace tables Week 2, 3 Elementary Programming Concepts  (Sequence/Selection Logic) Assignment 1 (Week 3) Week 4 Repetition Logic Week 5,6 Introduce Arrays and Continue to Look at Repetition Logic Assignment 2 (Week 6) Week 7 CW Examination I Week 8 Functions Week 9 Functions – passing by reference and value Assignment 3 Week 10 Strings / Functions and Character Manipulation Week 11 CW Examination II Week 12 Putting it all together Week 13 Revision