[go: up one dir, main page]

0% found this document useful (0 votes)
27 views6 pages

Course Outline

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views6 pages

Course Outline

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Faculty of Computer Engineering Informatics and Communications

Department of Computer Science

HCS101/HCC101/HAI101//HAST/HFM/HDSC/HIPH/HMPH Programming
Fundamentals

Lecturer: Mr Mlambo ,Ms Mhlanga


Contacts:
Prerequisites
Laptop
Corequisites
None
Course Description

The course is a foundation to programming where you are going to learn fundamental
programming concepts using the Python programming language, a high-level
interpreted language that is easy to read write, with powerful libraries that provide
additional functionality.

Course Introduction

Programming Fundamentals is the first programming course encountered in the Computer


Science program at the University of Zimbabwe. Although this course does not have the
technical difficulty that will be encountered in later computer science courses, it does
introduce concepts that may be very new to many students so it will require significant
commitment and focus. It is imperative that you have mastered the ideas, concepts, and
skills that are introduced in this course as later courses will assume that you have
proficiency in these areas.

Course Learning Outcomes

Upon successful completion of this course, you will be able to:

1
 Demonstrate knowledge of basic concepts, syntax and control structures in
programming.
 Devise suitable algorithmic solutions to simple computing problems under specific
requirements.
 Encode the devised solutions into programs, debug, and test them on a computer.
 Demonstrate understanding of standard coding conventions and ethical
considerations in programming.
 Develop maintainable and reusable software solutions using the object-oriented
programming paradigm.
 Understand how to read/write to files using python.
 write Python programs within an Integrated Development Environment (IDE);
 write programs that import libraries for a variety of applications, such as
random numbers and data visualization;
 write interactive programs that ask for and use input from the user;
 write programs that use functions and methods;
 handle errors and exceptions in Python programs by using try, except,
and finally statements; and
 use object-oriented programming and object methods to write code that is easy
to read and maintain.

Throughout this course, you will also see learning outcomes in each unit. You can use
those learning outcomes to help organize your studies and gauge your progress.

Learning style-Blended Learning

This course will be presented blended learning. Every week, there will be an
online quiz and practical labs that must be submitted. The student is expected to
apply learn by doing through practically writing programs. Copied source codes
from websites will be treated as plagiarism. The student is not expected to copy
and paste code but rather to write code on their own. A case study programming
assignment will be given that incorporates all learning outcomes and is expected to
be done in groups

This course includes the following units:

 Unit 1: Introduction to Programming fundamentals


 Unit 2: Operators
 Unit 3: Input and Flow Control Statements
 Unit 4: Data structures
 Unit 5: Functions
 Unit 6: Basic Data Structures II – Tuples, Sets, and Dictionaries
 Unit 7: File Handling
 Unit 8: Regular Expressions
 Unit 9: Exception Handling
 Unit 10: Object-Oriented Programming (OOP)

Course Content in details

 Unit 1: Introduction to Programming Fundamentals

2
This unit introduces basics of programming fundamentals. History of computers, binary
systems, different types of programming languages, compilation processes, Assembly
language, machine language, High level language, Python History, Program structure,
History and Importance of Programming, Install Python into a Machine, how to run
python file in terminal. Introduction to the IDLE interpreter (shell) and its
documentation. The software development processes. The Conceptual Model:
Flowcharts and Pseudo Code, Reasons for Python as the learner’s first programming
language. Expression evaluation: similarities and differences compared to a
calculator; expressions and operators of types int, float, Boolean. Input/output with
print and input functions. Demonstrate Visual logic for flow charts translate Visual
logic to Python, Variables, Operations arithmetic, Operators and Comments, Variable
and Assignment Operator, Integer and Float, Boolean, Comparison and Logical
Operators, String Methods, Type Conversion
Completing this unit should take you approximately 4 hours.

 Unit 2: Operators

This unit introduces Python operators. Using the variable types introduced in Unit 1,
this unit will allow us to begin computing using arithmetic, relational, and logical
operators. We will also introduce operator precedence and discuss what happens when
several operators are applied within a single instruction

Completing this unit should take you approximately 4 hours.

 Unit 3: Input and Flow Control Statements

If you have mastered the previous units, you now have the ability to put together a
series of sequential Python instructions capable of performing some basic calculations.
You also have the ability to format those results and output them to the screen. This
unit covers "program flow control", which is necessary for programs to make decisions
based upon a set of logical conditions. Your knowledge of relational and logical
operators will be pivotal for applying a new set of Python commands that will enable
you to control your program's flow. We will also introduce the "input" command so that
the keyboard can be used to input data into a program.

Completing this unit should take you approximately 4 hours.

 Unit 4: Data Structures I – Lists and Strings

Most of the programming concepts presented so far can be found in any programming
language. Constructs such as variable definitions, operators, basic input and output,
and control flow via conditional statements and loops are fundamental to what it
means to compute. In this unit, we begin studying how data is structured within
Python so we can program efficiently. Specifically, you will be introduced to lists and
also immersed more deeply in the subject of strings. Upcoming units will introduce
even more powerful data structures.

Completing this unit should take you approximately 6 hours.

3
 Unit 5: Functions

The understanding of variable definitions and control statements is fundamental to


any programming language. Furthermore, the syntax of basic data structures such as
lists and strings is foundational to mastering the Python language. In this unit, we take
another step to improve upon our program organization skills by introducing functions.
When a given task is performed many times throughout a program, it is usually
wrapped within a function so that it can be used or "called" whenever needed. This
notion of creating a specific function or "procedure" to achieve a given task is part of a
programming methodology known as "procedural programming". We will also briefly
contrast this approach with the use of methods that are used in "object-oriented
programming".

Completing this unit should take you approximately 4 hours.

 Unit 6: Basic Data Structures II – Tuples, Sets and Dictionaries

Python's power lies not only in the vast set of modules and libraries available (such as
matplotlib, random, math, numpy, etc.), but also in the data structures that are
fundamental to the language. This unit introduces three more ways of structuring data
that must be mastered: tuples, sets, and dictionaries. We will also revisit the concepts
of mutability and immutability, as we saw for lists and strings.

Completing this unit should take you approximately 4 hours.

 Unit 7: File Handling

It is all well and good that data can be created within a program via variable
assignments and user input. However, we must also be able to deal with data stored in
files. In this unit, we will introduce methods for reading data from and writing data to
a file. At its heart, Python is an object-oriented language. Pay attention to the syntax
we use here, which will prepare you for the rest of the course.

Completing this unit should take you approximately 3 hours.

 Unit 8: Regular Expressions

At this point in the course, you should have some familiarity with applying string
methods for finding a pattern within a string. Regular expressions are a syntax
framework for performing more general pattern searches that allow for a measure of
pattern variability. The subject of regular expressions is actually quite deep and highly
relevant to the theory of computation. This unit will introduce you to the re module
and its regular expression syntax to gain expertise with string pattern searches.

Completing this unit should take you approximately 3 hours.

 Unit 9: Exception Handling

Any programmer should be able to identify the source of potential errors and
implement code to handle those errors. This unit introduces the syntax necessary for

4
achieving this goal. Handling errors can be a sensitive topic because the programmer
must address points where something could go wrong. Devote yourself to these
examples, as they will be important in your journey to becoming a professional
programmer.

Completing this unit should take you approximately 4 hours.

 Unit 10: Object-Oriented Programming

We are now ready to transition into object-oriented programming, which organizes


code in the form of what are referred to as classes. In Python, every variable created
is an object, and, as you have already seen, each variable has access to a set of
methods. This is because there exists a class definition housing the methods that a
given object has access to. In this unit, you will learn how to design your own classes,
create or "instantiate" objects from a given class, and write programs that apply your
class designs.

Completing this unit should take you approximately 8 hours.

Course Materials

The primary learning materials for this course are articles, lectures, and videos.

All course materials are free to access and can be found in each unit of the course.
Pay close attention to the notes that accompany these course materials, as they will
tell you what to focus on in each resource, and will help you to understand how the
learning materials fit into the course as a whole.

Textbook and reading materials

There is no prescribed textbook for this course. However, the following are
recommended for those interested:

Think Python, How to Think Like a Computer Scientist, version 1.1.24+Kart [Python
3.2] by Allen B. Downey. The book is available in an online interactive format at
http

 Object-Oriented Programming in Python Documentation, Release 1


 Python basics A self teaching introduction-H Basin
 Introduction to Computing Using Python An Application Development Focus by
Ljubomir Perkovic
 Learn to Program with Python 3 A Step-by-Step Guide to Programming Second
Edition Irv Kalb
 Introduction to Computing Using Python An Application Development Focus by
Ljubomir Perkovic (z-lib.org)
 Practical Programming An Introduction to Computer Science Using Python 3 by Paul
Gries, Jennifer Campbell, Jason Montojo (z-lib.org)
 John Zelle, Python Programming: An Introduction to Computer Science (3rd
Edition), Franklin, Beedle & Associates, 2016.

5
 Allen B. Downey, Think Python: How to Think Like a Computer Scientist (2nd
Edition), O’Reilly, 2015.

Other resources

You are encouraged to make heavy use of a programmer’s best friends — Google
and StackOverflow. For Python, some useful online resources are
www.learnpython.org and www.w3schools.com/python/, while the official
documentation can be found here: docs.python.org/3/ other youtube videos eg
https://www.youtube.com/c/CleverProgrammer/videos

Course Evaluation

They will be assignment on nearly each unit which consists of both theory and
practical assignments. The coursework is 50% while the final exam is 50%.

Tips for Success

Programming is an art therefore you can only learn by practising. Therefore have the
passion of doing things and exploring new adventures.

You might also like