The goals of this course are to teach students how to design basic algorithms in order to solve different kind of problems; to teach students the basic principles of programming using the Python Programming Language and to provide students how to think like a computer scientist.
Prerequisite(s)
None.
Corequisite(s)
None.
Special Requisite(s)
Basic computer skills and (in order to follow the course resources) basic English knowledge are necessary and sufficient.
Instructor(s)
Assist. Prof. Dr. Levent CUHACI
Course Assistant(s)
Res.Asst.İslam MAYDA
Schedule
Tuesday, 11:00-12:45
Friday, 13:00-14:45
Office Hour(s)
Monday, 15:00-17:00
Teaching Methods and Techniques
- Lecture
- Visual presentation
- Programming and coding in Python Programming Language in Computer Lab.
Principle Sources
- Allen Downey, Jeffrey Elkner, Chris Meyers, How to Think Like a Computer Scientist – Learning with Python, 2nd ed., Green Tea Press, Wellesley, Massachussets, 2008.
Other Sources
- James Payne, Beginning Python : Using Python 2.6 and Python 3.1, Wiley Publishing Inc., Indianapolis, Indiana, 2010.
- Tahir Emre Kalaycı (çevirmen), Bilgisayar Bilimcisi Gibi Düşünmek – Python ile Öğrenme, 2nci baskı (orjinalinden çeviri), GNU Lisansı, 2008.
- Mark Lutz, “Learning Python”, 4th ed., O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472, 2009.
Course Schedules
Week
Contents
Learning Methods
1. Week
History and Evolution of Computers
Oral and visual presentation
2. Week
Basic Components of Computers : Hardware and Software
Oral presentation
3. Week
The Concepts of Algorithm and Programming
Oral presentation, implementation
4. Week
Variables, Data Types, Input/Output Statements
Oral presentation, implementation
5. Week
Conditional Statements
Oral presentation, implementation
6. Week
Loop Structures
Oral presentation, implementation
7. Week
Arrays : Tuples, Lists, Dictionaries
Oral presentation, implementation
8. Week
Midterm Exam I
Exam
9. Week
Functions, pt.I
Oral presentation, implementation
10. Week
Functions, pt.II
Oral presentation, implementation
11. Week
Strings
Oral presentation, implementation
12. Week
File Operations
Oral presentation, implementation
13. Week
Midterm Exam II
Exam
14. Week
Drawing Graphics
Oral presentation, implementation
15. Week
Finals Week
Exam
16. Week
Finals Week
Exam
17. Week
Finals Week
Exam
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
2
50
Final Exam
2
50
Program Outcomes
PO-1
Interpreting advanced theoretical and applied knowledge in Mathematics and Computer Science.
PO-2
Critiquing and evaluating data by implementing the acquired knowledge and skills in Mathematics and Computer Science.
PO-3
Recognizing, describing, and analyzing problems in Mathematics and Computer Science; producing solution proposals based on research and evidence.
PO-4
Understanding the operating logic of computer and recognizing computational-based thinking using mathematics as a discipline.
PO-5
Collaborating as a team-member, as well as individually, to produce solutions to problems in Mathematics and Computer Science.
PO-6
Communicating in a foreign language, and interpreting oral and written communicational abilities in Turkish.
PO-7
Using time effectively in inventing solutions by implementing analytical thinking.
PO-8
Understanding professional ethics and responsibilities.
PO-9
Having the ability to behave independently, to take initiative, and to be creative.
PO-10
Understanding the importance of lifelong learning and developing professional skills continuously.
PO-11
Using professional knowledge for the benefit of the society.
Learning Outcomes
LO-1
The student gains the knowledge about the historical development of computer systems, the basic components and the processing logic of these systems and he/she reaches a competence level of information on these topics to discuss about them.
LO-2
The student gains the ability to formulate different kinds of problems which he/she encounters in fundamental math classes and also in daily life. The student gains the ability of creative thinking about solutions to these problems and expressing them in a clear and accurate way. He/she also reaches adequate level of knowledge which enables him/her to develop basic algorithms for these problems.
LO-3
The student gains the ability to implement the algorithms by using the syntactic
and semantic rules of a high-level programming language (namely, Python Programming Language).
LO-4
The student learns the features and the functions of Python Programming Language and he/she develops Python programs by using these features and functions as building blocks.
LO-5
The student gains the ability of debugging programs which he/she developed; he/she also learns how to catch and correct errors in these programs.