# CS 101 Lab: Week # 8
The 8th week of CS101 labs will be a **lab exam**, covering all what was covered by Profs. Dhande and Arya during the first 7 weeks of lectures and labs of CS101.
This first lab exam for CS101 will be focus on problem solving, using Python as a tool.
---
## What?
You will have to solve two or three scientific problems, by following three steps:
1. find a logical and mathematical solution, that you will write and explain in English and using mathematical notations. You will write this on an external piece of paper,
2. write a valid Python program that solves the problem, and produces a correct output. This Python program(s) will be saved on the desktop used for the exam, and used to evaluate you (for no more than 50% of the grade),
3. write the output(s) on you answer paper.
These 3 components will be evaluated to produce a grade for each problem.
## When | Where?
Week #8, from 23rd to 27th of February, during your usual CS lab time slot.
---
## Syllabus:
This lab exam will cover everything seen during the lectures and the lab sessions, from the beginning of the course to the last lecture and lab before the exam.
The required knowledge of programming in Python will be the same as for the First Mid Term Exam and the lab #5 and #7 assignment sheet.
A more precise syllabus has been given, see below:
- Basic knowledge of history of computers and computing (covered by Prof. Dhande),
- What is a programming language, an editor, a console (terminal), and examples with the Python language, the Spyder editor and the IPython console,
- All the elements of syntax and language of Python covered in the labs and the lectures: values, operations, functions, comments, strings, etc. An almost complete list is: arithmetic operations, print statement, help and type functions, variables, different data types for numbers, strings, boolean values, boolean operators (`and`, `or`, `not`) and boolean testing,
- Conditional blocks: `if`, `elif` and `else` (concept, syntax, use, limitation, possible errors etc),
- Conditional loop `while`, and iterative loop `for` (concept, syntax, use, limitation, possible errors etc),
- Functions: concept, use, examples (`help`, `type`, `abs`, `len` etc), and how to define a function (e.g. `def f(x, y): return cos(x + y)`).
---