COMPUTER PROGRAMMING
COMPUTER PROGRAMMING (81 hours)
Course Description
This unit elaborates on the functional relevance of programming as a core subject of computer science. Computer scientists deal mostly with software and software systems; these include their theory, design, development, and application. The most important aspect of computer science is problem solving, an essential skill for life. Computer science is the study of the foundational principles and practices of computation and computational thinking and their application to the design and development of computer systems.
On their way to becoming computer scientists who use technology to solve problems, students study the design, development and analysis of the software and hardware used to solve problems in a variety of business, scientific and social contexts; they use software to make computers do new things or accomplish tasks more efficiently, create applications for mobile devices and develop websites and program software.
Aim of the Course
Programming forms the core of Computer Science. In this course we look in detail at what actually occurs when a computer runs programs, considering how the instructions we write are translated in the electronic mechanisms of computes. We can step back and consider how we can organise the process of writing computer programs. We can look at some of the most common methods of programming applications. Finally, we can think of new things we would like computers to do for us, and try and work out how we can write programs to instruct them in how to do those things.
Learning Outcomes
Develop computational thinking
Understand the main principles of solving problems
Acquire problem-solving techniques
Practise problem-solving techniques in real problems
Comprehend the concept of software development
Know the principles of successful Code creation
Create advanced programs in Python language
Create basic documentation describing key parts of the program design, its implementation and testing.
Syllabus
It consists of five modules :
- Logic and Computer Fundamentals
- The Concept of Software Development
- Python Programming Language
- Advanced Programming in Python
LOGIC AND COMPUTER FUNDAMENTALS
o Logic operands and operators. Basic logic propositions.
o Logic expressions.
o Logic circuits, logic gates & applications to microelectronics
o Computer arithmetic
o Processor architecture
o Processor operation – machine language
o Advanced processor features
- Students will complete a set of homework exercises and submit them as a portfolio of tasks relating to the above concepts. Their marks on this section will contribute 5% towards their final grade.
- Students will also complete a mid-term examination that will have a section dedicated to the examination of these skills.
THE CONCEPT OF SOFTWARE DEVELOPMENT
o Concepts of computing
o Binary System
o Overview
o Software
o Development tools
o Data, Data structures
o Computer structure. Peripheral devices. Case studies.
o Operating systems – Case studies.
o Computer languages – an overview.
o Assembly languages.
o High level languages.
o Compilers and Interpreters.
o Fourth Generation Languages.
- Students will complete a set of homework / project exercises and submit them as a portfolio of tasks relating to the above concepts. Their marks on this section will contribute 5% towards their final grade.
- Students will also complete a mid-term examination that will have a section dedicated to the examination of these skills.
Python PROGRAMMING LANGUAGE
o Overview
o General structure of a Python program
o Editing, compiling and running a Python program
o Values, Variables, Expressions and Statements
o Conditional Execution
o Iteration and Recursion
o Functions
o Strings
o Lists
o Dictionaries
o Basic File Handling
o Handling Exceptions
o Introduction to Software Testing
- Students will complete a set of online and offline homework / project exercises and submit them as a portfolio of programming tasks that will contribute 20% towards their final grade.
- Students will also complete a mid-term and final examination that will have a section dedicated to the examination of these skills.
ADVANCED PROGRAMMING with Python
o Object oriented programming – Python with classes and objects
o Polymorphism
o Inheritance
o Debugging
- Students will complete a set of homework / project exercises and submit them as a portfolio of tasks relating to the above concepts. Their marks on this section will contribute 20% towards their final grade.
- Students will also complete a final examination that will have a section dedicated to the examination of these skills.
Resources and Booklist Suggestions
Think Python : How to think like a Computer Scientist, Allen B. Downey, O’ Reilly Media
Learning Python: Powerful Object-Oriented Programming, Mark Lutz, O’ Reilly Media
Cambridge International AS and A level Computer Science Coursebook, Langfield & Duddell, Cambridge University Press.