Difference between revisions of "BITL-CS1"

From DiLab
Jump to: navigation, search
(21.10.2019.)
(19.11.19)
(34 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
[[#Resources | Resources]] |  
 
[[#Resources | Resources]] |  
 
</big>
 
</big>
 +
[[#{{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} | Today (if there is a class)]]
  
 
=Introduction=
 
=Introduction=
Line 19: Line 20:
  
 
=Administrative information=
 
=Administrative information=
 +
Course Syllabus [https://www.dropbox.com/s/aqbvmka49h9xowp/Syllabus.pdf?raw=1 is available here]
 +
 
Communication:  
 
Communication:  
 
* via slack: workspace name: bitl-cs1-2019
 
* via slack: workspace name: bitl-cs1-2019
Line 33: Line 36:
 
|-
 
|-
 
|
 
|
==== 09.09.2019.====
+
==== 09.09.19 ====
|  
+
|
 +
'''Course overview'''
 +
 
 
Introduction to the course. Syllabus. What is computer science. Branches of computer science. Binary encoding. Abstraction. Data. Algorithms. Search using linear, skip and binary approach. Correctness and complexity of an algorithm.
 
Introduction to the course. Syllabus. What is computer science. Branches of computer science. Binary encoding. Abstraction. Data. Algorithms. Search using linear, skip and binary approach. Correctness and complexity of an algorithm.
* [https://www.dropbox.com/s/p2p5mfwgxmt6ebs/L01_introduction_to_CS.pdf?raw=1 Slides]
+
* [https://www.dropbox.com/s/p2p5mfwgxmt6ebs/L01_introduction_to_CS.pdf?dl=0 Slides]
 
|
 
|
Write a pseudocode for binary search algorithm, in the context of a dictionary or a phone book.
+
Write a pseudo code for binary search algorithm, in the context of a dictionary or a phone book.
 +
 
 
|-
 
|-
 
|
 
|
 +
==== 10.09.19 ====
 +
|
 +
'''Expressions'''
  
==== 10.09.2019.====
 
|
 
 
Algorithms revisited. iterative v.s. recursive algorithm, binary search example in both versions.
 
Algorithms revisited. iterative v.s. recursive algorithm, binary search example in both versions.
 
Life cycle of program development. Source code. Compiler v.s. interpreter. Integrated development environment.
 
Life cycle of program development. Source code. Compiler v.s. interpreter. Integrated development environment.
 
Python programming language. Python version 3 vs version 2.
 
Python programming language. Python version 3 vs version 2.
 
Expressions, evaluation of expressions. Operators and their precedence.
 
Expressions, evaluation of expressions. Operators and their precedence.
* [https://www.dropbox.com/s/9gk545is1q3jy7j/L02_expressions_literals.pdf?raw=1 Slides]
+
 
 +
* [https://www.dropbox.com/s/9gk545is1q3jy7j/L02_expressions_literals.pdf?dl=0 Slides]
 
|
 
|
 
* Explore the online IDE: [http://repl.it/languages/python3 repl.it].  
 
* Explore the online IDE: [http://repl.it/languages/python3 repl.it].  
 
* Read about Anaconda environment.
 
* Read about Anaconda environment.
 +
 +
 
|-
 
|-
 
|
 
|
 +
==== 12.09.19 ====
 +
|
 +
'''Variables and assignment'''
  
==== 12.09.2019.====
 
|
 
 
Python: variables. Statements. Assignment. Data types.
 
Python: variables. Statements. Assignment. Data types.
* [https://www.dropbox.com/s/scmhpox9pf62hk8/L03_variables_assignment.pdf?raw=1 Slides]
+
* [https://www.dropbox.com/s/scmhpox9pf62hk8/L03_variables_assignment.pdf?dl=0 Slides]
 
|
 
|
 
Find out why 123_456 is a valid expression in Python, and what does it mean.
 
Find out why 123_456 is a valid expression in Python, and what does it mean.
 +
 
|-
 
|-
 
|
 
|
 +
==== 16.09.19 ====
 +
|
 +
'''Functions (calling)'''
  
==== 16.09.2019.====
+
Python: functions. Purpose and uses. Calling functions. Libraries, ""import math"" statement.
|
+
* [https://www.dropbox.com/s/70xilodu2mqi28n/L04_functions_calling_python.pdf?dl=0 Slides]
Python: functions. Purpose and uses. Calling functions. Libraries, "import math" statement.
 
* [https://www.dropbox.com/s/70xilodu2mqi28n/L04_functions_calling_python.pdf?raw=1 Slides]
 
 
|
 
|
 
Practice writing functions:
 
Practice writing functions:
Line 73: Line 86:
 
* A greeter function with the name as a parameter
 
* A greeter function with the name as a parameter
 
* A signature (-1,0,+1) function
 
* A signature (-1,0,+1) function
 +
 
|-
 
|-
 
|
 
|
 +
==== 17.09.19 ====
 +
|
 +
'''Functions (defining)'''
  
==== 17.09.2019.====
 
|
 
 
Python: functions. Defining functions. Function body. The use of indentation in Python.
 
Python: functions. Defining functions. Function body. The use of indentation in Python.
* [https://www.dropbox.com/s/b1g3fg08dc898m5/L05_functions_defining_python.pdf?raw=1 Slides]
+
* [https://www.dropbox.com/s/b1g3fg08dc898m5/L05_functions_defining_python.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
 +
==== 19.09.19 ====
 +
|
 +
'''Relational and boolean expressions'''
  
==== 19.09.2019.====
+
Boolean and comparison operators.
|
+
* [https://www.dropbox.com/s/cf14dkw07nhnf1j/L06_expressions_boolean.pdf?dl=0 Slides]
Expressions, boolean.
+
|
* [https://www.dropbox.com/s/cf14dkw07nhnf1j/L06_expressions_boolean.pdf?raw=1 Slides]
 
  
 +
|-
 
|
 
|
|-
+
==== 23.09.19 ====
 
|
 
|
 +
'''Control flow (conditionals)'''
  
==== 23.09.2019.====
+
Control flow: if / if-else / if-elif-else.
|
+
* [https://www.dropbox.com/s/4ablnnzjqczlbmb/L07_flow_control_if-else-elif.pdf?dl=0 Slides]
Flow control: if / if-else / if-elif-else.
 
* [https://www.dropbox.com/s/4ablnnzjqczlbmb/L07_flow_control_if-else-elif.pdf?raw=1 Slides]
 
 
|
 
|
Lab Exam 0
+
* Lab Assignment 1
 +
 
 
|-
 
|-
 +
|
 +
==== 24.09.19 ====
 +
|
 +
'''Control flow in functions'''
 +
* [https://www.dropbox.com/s/1glgt1ug1xn0yrc/L08_floc_control_examples.pdf?dl=0 Slides]
 
|
 
|
  
==== 24.09.2019.====
+
|-
|
+
|
Flow control: examples in functions
+
==== 26.09.19 ====
* [https://www.dropbox.com/s/1glgt1ug1xn0yrc/L08_floc_control_examples.pdf?raw=1 Slides]
 
 
|
 
|
 +
'''Javascript 1'''
 +
* [https://www.dropbox.com/s/1mczs8ggt1j09is/L09_Javascript-1?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 +
|
 +
==== 30.09.19 ====
 +
|
 +
'''Javascript 2'''
 +
* [https://www.dropbox.com/s/glzojanm86i3aqh/L10_Javascript-2?dl=0 Slides]
 
|
 
|
  
==== 26.09.2019.====
+
|-
|  
 
Javascript, part1
 
 
|
 
|
|-
+
==== 01.10.19 ====
 
|
 
|
==== 30.09.2019.====
+
'''Javascript 3'''
|
+
* [https://www.dropbox.com/s/pxpyzu97ljbo6m7/L11_Javascript-3?dl=0 Slides]
Javascript, part2
 
 
|
 
|
 +
* '''Lab exam 01'''
 +
 
|-
 
|-
 
|
 
|
==== 01.10.2019.====
+
==== 03.10.19 ====
|  
+
|
Javascript, part3
+
'''Arrays and for loop'''
 +
* [https://www.dropbox.com/s/b7spkl5ti37c9xe/L12_arrays_for_loop_JS.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 03.10.2019.====
+
==== 07.10.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Range (PY) and for..in (JS)'''
 +
* [https://www.dropbox.com/s/fp4gcjixaughika/L13_python_range_js_foreach.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 07.10.2019.====
+
==== 08.10.19 ====
|  
+
|
TBA
+
'''Lists (PY)'''
 +
* [https://www.dropbox.com/s/hkkmfajempudzbj/L14_list_coding_pattern.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 08.10.2019.====
+
==== 10.10.19 ====
|  
+
|
TBA
+
'''Dictionaries intro (PY)'''
 +
* [https://www.dropbox.com/s/jg9q84ipc1l5487/L15_dictionaries_1.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 10.10.2019.====
+
==== 14.10.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Dictionaries continued (JS) 1'''
 +
* [https://www.dropbox.com/s/y8ad93pnn2cc9c1/L16_dictionaries_2.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 14.10.2019.====
+
==== 15.10.19 ====
|  
+
|
TBA
+
'''Dictionaries continued (JS) 2'''
 +
* [https://www.dropbox.com/s/nuszon5hpifaxvt/L17_dictionaries_3.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 15.10.2019.====
+
==== 17.10.19 ====
|  
+
|
TBA
+
'''File reading (PY)'''
 +
* [https://www.dropbox.com/s/dx2lr8su03cm181/L18_file_reading_1.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 17.10.2019.====
+
==== 21.10.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Parsing data (csv, PY)'''
 +
* [https://www.dropbox.com/s/j0hr3yj7x02yup9/L19_file_reading_2.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 21.10.2019.====
+
==== 22.10.19 ====
...24.10.2019
+
|
| style="background-color:#ffcccc;" |
+
'''File writing (PY)'''
Midterm break
+
* [https://www.dropbox.com/s/slk0zw4pa01t9kj/L20_file_writing.pdf?dl=0 Slides]
 
|
 
|
 +
* [https://docs.google.com/document/d/1zMkzdEQFe_vbf2_TGBesIVjZHgBmSLtXnbj5KoyEmjE/view Project 1] announced
 +
 
|-
 
|-
 
|
 
|
  
==== 28.10.2019.====
+
==== 24.10.19 ====
|  
+
|
TBA
+
'''Q & A session'''
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 29.10.2019.====
+
==== 28.10.19 ====
|  
+
|
TBA
+
'''HTML and Javascript'''
 +
* [https://www.dropbox.com/s/psouofoho27tn0k/L21_HTML_Javascript.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 31.10.2019.====
+
==== 29.10.19 ====
|
 
TBA
 
 
|
 
|
 +
'''URIs and network connections'''
 +
* [https://www.dropbox.com/s/59do1325xa1yoa6/L22_JS_libraries.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 04.11.2019.====
+
==== 31.10.19 ====
|
 
TBA
 
 
|
 
|
 +
'''A web server (PY)'''
 +
* [https://www.dropbox.com/s/bwhp6o3ozx633va/L23_Python_web_server.pdf?dl=0 Slides]
 +
|
 +
* '''Lab exam 02'''
 +
 
|-
 
|-
 
|
 
|
==== 05.11.2019.====
+
==== 04.11.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Midterm review'''
 +
* [https://www.dropbox.com/s/0rs4fisdmo2s3sw/L25_MidtermReview.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 07.11.2019.====
+
==== 05.11.19 ====
|  
+
|
TBA
+
'''Midterm exam'''
 
|
 
|
 +
* '''Midterm exam'''
 +
 
|-
 
|-
 
|
 
|
==== 11.11.2019.====
+
==== 07.11.19 ====
|
 
TBA
 
 
|
 
|
 +
''''''
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 12.11.2019.====
+
==== 11.11.19 ====
|
 
TBA
 
 
|
 
|
 +
'''JSON and AJAX introduction'''
 +
* [https://www.dropbox.com/s/a1hziukg463jmn6/L26_AJAX_1.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 14.11.2019.====
+
==== 12.11.19 ====
|  
+
|
TBA
+
'''AJAX, Chat app'''
 +
* [https://www.dropbox.com/s/3i5vk84hsv9hsn2/L27_AJAX_2.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 18.11.2019.====
+
==== 14.11.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Midterm analysis'''
 +
|
 +
* '''Lab Exam 03'''
 +
 
|-
 
|-
 
|
 
|
==== 19.11.2019.====
+
==== 18.11.19 ====
|  
+
| style='background-color:#ffcccc;' |
TBA
+
'''--- National holiday ---'''
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 21.11.2019.====
+
==== 19.11.19 ====
|
 
TBA
 
 
|
 
|
 +
'''AJAX, GET/POST review'''
 +
* [https://www.dropbox.com/s/0etweybz777jz8j/L28_MusicRatingApp.pdf?dl=0 Slides]
 +
Music rater app, version 1
 +
* [https://www.dropbox.com/sh/08671p5n3hbl3ka/AADrn_ce7PVqsMYkrEjXOb-Xa?dl=0 V1 source code]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 25.11.2019.====
+
 
|  
+
==== 21.11.19 ====
TBA
+
|
 +
'''Search and sort'''
 +
* [https://www.dropbox.com/s/3l6rr3f1myv98b2/L29_Search_and_sort.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 26.11.2019.====
+
==== 25.11.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Sorting and custom sort'''
 +
* [https://www.dropbox.com/s/hex28lnpn0y1tm7/L30_Sorting.pdf?dl=0 Slides]
 +
|
 +
* Project 1 due
 +
* Project 2 announced
 +
 
|-
 
|-
 
|
 
|
==== 28.11.2019.====
+
==== 26.11.19 ====
|  
+
|
TBA
+
'''Database'''
 +
* [https://www.dropbox.com/s/kjzib774q6c9ip4/L31_DataBases.pdf?dl=0 Slides]
 
|
 
|
 +
* '''Lab Exam 04'''
 +
 
|-
 
|-
 
|
 
|
==== 02.12.2019.====
+
==== 28.11.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Database application'''
 +
* [https://www.dropbox.com/s/lw5hrp0iwhb3dct/L32_DataBaseApp.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 03.12.2019.====
+
==== 02.12.19 ====
|  
+
|
TBA
+
'''SQL and SQL injection'''
 +
* [https://www.dropbox.com/s/6ct8bjfbd09616x/L33_SQL_injection.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 05.12.2019.====
+
==== 03.12.19 ====
|  
+
|
TBA
+
'''Encryption and Hashing'''
 +
* [https://www.dropbox.com/s/d5yknr3125x211x/L34_Encryption.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 09.12.2019.====
+
==== 05.12.19 ====
|
 
TBA
 
 
|
 
|
 +
'''Designing the application'''
 +
* [https://www.dropbox.com/s/hg2rlzp0ri5zx1n/L35_DesigningTheApp.pdf?dl=0 Slides]
 +
|
 +
 
|-
 
|-
 
|
 
|
==== 10.12.2019.====
+
==== 09.12.19 ====
|  
+
|
TBA
+
'''Passwords and session'''
 +
* [https://www.dropbox.com/s/msoqxdcaeruesql/L36_Paswords_Session.pdf?dl=0 Slides]
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 12.12.2019.====
+
==== 10.12.19 ====
|  
+
|
TBA
+
'''TBD'''
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 16.12.2019.====
+
==== 12.12.19 ====
|
 
TBA
 
 
|
 
|
|-
+
'''Final review'''
|
 
==== 17.12.2019.====
 
|
 
TBA
 
 
|
 
|
 +
* Project 2 due
 +
 
|-
 
|-
 
|
 
|
==== 19.12.2019.====
+
==== 16.12.19 ====
|  
+
| style='background-color:#ffcccc;' |
TBA
+
'''--- EXAM week starts ---'''
 
|
 
|
 +
 
|-
 
|-
 
|
 
|
==== 23.12.2019.====
+
==== 17.12.19 ====
- 01.01.2020
 
| Christmas break and the New Year
 
 
|
 
|
&nbsp;
+
'''Final exam'''
|-
 
 
|
 
|
 +
* '''Final Exam'''
  
==== ??.01.2020.====
+
|-
| Final Exam.
 
 
|
 
|
&nbsp;
 
|-
 
 
|}
 
|}
  
 
=Assignments=
 
=Assignments=
 +
==Project 1==
 +
[https://docs.google.com/document/d/1zMkzdEQFe_vbf2_TGBesIVjZHgBmSLtXnbj5KoyEmjE/view The project description is avail;able here]
  
 
=Resources=
 
=Resources=
Line 343: Line 431:
 
* [https://docs.python.org/3/reference/ The Python Language Reference]
 
* [https://docs.python.org/3/reference/ The Python Language Reference]
 
* [https://docs.python.org/3/library/ The Python Standard Library]
 
* [https://docs.python.org/3/library/ The Python Standard Library]
 +
 +
====Q&A sessions====
 +
We use Slido for Q&A sessions [https://app.sli.do/event/wkqtbios/live/questions here]. Use the code as provided in Slack.

Revision as of 10:41, 19 November 2019

Introduction to Computer Science 1

Shortcuts: Calendar | Assignments | Resources | Today (if there is a class)

Introduction

What is Computer Science?

Computer Science is the study of processes that interact with data and that can be represented as data in the form of programs. It enables the use of algorithms to manipulate, store, and communicate digital information.

Administrative information

Course Syllabus is available here

Communication:

  • via slack: workspace name: bitl-cs1-2019
  • via email: use instructor's email address for personal communication
  • office hours: by appt.

Calendar

Date Topic Exercises

09.09.19

Course overview

Introduction to the course. Syllabus. What is computer science. Branches of computer science. Binary encoding. Abstraction. Data. Algorithms. Search using linear, skip and binary approach. Correctness and complexity of an algorithm.

Write a pseudo code for binary search algorithm, in the context of a dictionary or a phone book.

10.09.19

Expressions

Algorithms revisited. iterative v.s. recursive algorithm, binary search example in both versions. Life cycle of program development. Source code. Compiler v.s. interpreter. Integrated development environment. Python programming language. Python version 3 vs version 2. Expressions, evaluation of expressions. Operators and their precedence.

  • Explore the online IDE: repl.it.
  • Read about Anaconda environment.


12.09.19

Variables and assignment

Python: variables. Statements. Assignment. Data types.

Find out why 123_456 is a valid expression in Python, and what does it mean.

16.09.19

Functions (calling)

Python: functions. Purpose and uses. Calling functions. Libraries, ""import math"" statement.

Practice writing functions:

  • A sum of two numbers
  • A greeter function with the name as a parameter
  • A signature (-1,0,+1) function

17.09.19

Functions (defining)

Python: functions. Defining functions. Function body. The use of indentation in Python.

19.09.19

Relational and boolean expressions

Boolean and comparison operators.

23.09.19

Control flow (conditionals)

Control flow: if / if-else / if-elif-else.

  • Lab Assignment 1

24.09.19

Control flow in functions

26.09.19

Javascript 1

30.09.19

Javascript 2

01.10.19

Javascript 3

  • Lab exam 01

03.10.19

Arrays and for loop

07.10.19

Range (PY) and for..in (JS)

08.10.19

Lists (PY)

10.10.19

Dictionaries intro (PY)

14.10.19

Dictionaries continued (JS) 1

15.10.19

Dictionaries continued (JS) 2

17.10.19

File reading (PY)

21.10.19

Parsing data (csv, PY)

22.10.19

File writing (PY)

24.10.19

Q & A session

28.10.19

HTML and Javascript

29.10.19

URIs and network connections

31.10.19

A web server (PY)

  • Lab exam 02

04.11.19

Midterm review

05.11.19

Midterm exam

  • Midterm exam

07.11.19

'

11.11.19

JSON and AJAX introduction

12.11.19

AJAX, Chat app

14.11.19

Midterm analysis

  • Lab Exam 03

18.11.19

--- National holiday ---

19.11.19

AJAX, GET/POST review

Music rater app, version 1

21.11.19

Search and sort

25.11.19

Sorting and custom sort

  • Project 1 due
  • Project 2 announced

26.11.19

Database

  • Lab Exam 04

28.11.19

Database application

02.12.19

SQL and SQL injection

03.12.19

Encryption and Hashing

05.12.19

Designing the application

09.12.19

Passwords and session

10.12.19

TBD

12.12.19

Final review

  • Project 2 due

16.12.19

--- EXAM week starts ---

17.12.19

Final exam

  • Final Exam

Assignments

Project 1

The project description is avail;able here

Resources

Q&A sessions

We use Slido for Q&A sessions here. Use the code as provided in Slack.