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
    • Function headers
    • 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