Difference between revisions of "BITL-CS1"

From DiLab
Jump to: navigation, search
(12.11.19)
(Calendar)
Line 35: Line 35:
! Exercises
! Exercises
|-
|-
| ==== 09.09.19 ====
|
==== 09.09.19 ====
|
|
'''Course overview'''
'''Course overview'''
Line 46: Line 45:


|-
|-
| ==== 10.09.19 ====
|
==== 10.09.19 ====
|
|
'''Expressions'''
'''Expressions'''
Line 63: Line 61:


|-
|-
| ==== 12.09.19 ====
|
==== 12.09.19 ====
|
|
'''Variables and assignment'''
'''Variables and assignment'''
Line 74: Line 71:


|-
|-
| ==== 16.09.19 ====
|
==== 16.09.19 ====
|
|
'''Functions (calling)'''
'''Functions (calling)'''
Line 88: Line 84:


|-
|-
| ==== 17.09.19 ====
|
==== 17.09.19 ====
|
|
'''Functions (defining)'''
'''Functions (defining)'''
Line 98: Line 93:


|-
|-
| ==== 19.09.19 ====
|
==== 19.09.19 ====
|
|
'''Relational and boolean expressions'''
'''Relational and boolean expressions'''
Line 108: Line 102:


|-
|-
| ==== 23.09.19 ====
|
==== 23.09.19 ====
|
|
'''Control flow (conditionals)'''
'''Control flow (conditionals)'''
Line 119: Line 112:


|-
|-
| ==== 24.09.19 ====
|
==== 24.09.19 ====
|
|
'''Control flow in functions'''
'''Control flow in functions'''
Line 127: Line 119:


|-
|-
| ==== 26.09.19 ====
|
==== 26.09.19 ====
|
|
'''Javascript 1'''
'''Javascript 1'''
Line 135: Line 126:


|-
|-
| ==== 30.09.19 ====
|
==== 30.09.19 ====
|
|
'''Javascript 2'''
'''Javascript 2'''
Line 143: Line 133:


|-
|-
| ==== 01.10.19 ====
|
==== 01.10.19 ====
|
|
'''Javascript 3'''
'''Javascript 3'''
Line 152: Line 141:


|-
|-
| ==== 03.10.19 ====
|
==== 03.10.19 ====
|
|
'''Arrays and for loop'''
'''Arrays and for loop'''
Line 160: Line 148:


|-
|-
| ==== 07.10.19 ====
|
==== 07.10.19 ====
|
|
'''Range (PY) and for..in (JS)'''
'''Range (PY) and for..in (JS)'''
Line 168: Line 155:


|-
|-
| ==== 08.10.19 ====
|
==== 08.10.19 ====
|
|
'''Lists (PY)'''
'''Lists (PY)'''
Line 176: Line 162:


|-
|-
| ==== 10.10.19 ====
|
==== 10.10.19 ====
|
|
'''Dictionaries intro (PY)'''
'''Dictionaries intro (PY)'''
Line 184: Line 169:


|-
|-
| ==== 14.10.19 ====
|
==== 14.10.19 ====
|
|
'''Dictionaries continued (JS) 1'''
'''Dictionaries continued (JS) 1'''
Line 192: Line 176:


|-
|-
| ==== 15.10.19 ====
|
==== 15.10.19 ====
|
|
'''Dictionaries continued (JS) 2'''
'''Dictionaries continued (JS) 2'''
Line 200: Line 183:


|-
|-
| ==== 17.10.19 ====
|
==== 17.10.19 ====
|
|
'''File reading (PY)'''
'''File reading (PY)'''
Line 208: Line 190:


|-
|-
| ==== 21.10.19 ====
|
==== 21.10.19 ====
|
|
'''Parsing data (csv, PY)'''
'''Parsing data (csv, PY)'''
Line 216: Line 197:


|-
|-
| ==== 22.10.19 ====
|
==== 22.10.19 ====
|
|
'''File writing (PY)'''
'''File writing (PY)'''
Line 225: Line 205:


|-
|-
| ==== 24.10.19 ====
|
==== 24.10.19 ====
|
|
'''Q & A session'''
'''Q & A session'''
Line 232: Line 211:


|-
|-
| ==== 28.10.19 ====
|
==== 28.10.19 ====
|
|
'''HTML and Javascript'''
'''HTML and Javascript'''
Line 240: Line 218:


|-
|-
| ==== 29.10.19 ====
|
==== 29.10.19 ====
|
|
'''URIs and network connections'''
'''URIs and network connections'''
Line 248: Line 225:


|-
|-
| ==== 31.10.19 ====
|
==== 31.10.19 ====
|
|
'''A web server (PY)'''
'''A web server (PY)'''
Line 257: Line 233:


|-
|-
| ==== 04.11.19 ====
|

==== 04.11.19 ====
|
|
'''Midterm review'''
'''Midterm review'''
* [https://www.dropbox.com/s/0rs4fisdmo2s3sw/L25_MidtermReview.pdf?dl=0 Slides]
* [https://www.dropbox.com/s/0rs4fisdmo2s3sw/L25_MidtermReview.pdf?dl=0 Slides]

|
|


|-
|-
| ==== 05.11.19 ====
|
|

==== 05.11.19 ====
| style='background-color:#ffffcc;' |
'''Midterm exam'''
'''Midterm exam'''
|
|
Line 276: Line 247:


|-
|-
| ==== 07.11.19 ====
|

==== 07.11.19 ====
|
|
''''''
''''''
Line 284: Line 253:


|-
|-
| ==== 11.11.19 ====
|
|
'''JSON and AJAX introduction'''
==== 11.11.19 ====
|
'''JSON intro'''
* [https://www.dropbox.com/s/a1hziukg463jmn6/L26_AJAX_1.pdf?dl=0 Slides]
* [https://www.dropbox.com/s/a1hziukg463jmn6/L26_AJAX_1.pdf?dl=0 Slides]

|
|


|-
|-
| ==== 12.11.19 ====
|
|
'''AJAX, Chat app'''

==== 12.11.19 ====
|
'''Python JSON data'''
* [https://www.dropbox.com/s/3i5vk84hsv9hsn2/L27_AJAX_2.pdf?dl=0 Slides]
* [https://www.dropbox.com/s/3i5vk84hsv9hsn2/L27_AJAX_2.pdf?dl=0 Slides]

|
|


|-
|-
| ==== 14.11.19 ====
|
|
'''Midterm analysis'''

==== 14.11.19 ====
|
'''Chat review, AJAX, GET/POST'''
|
|
* '''Lab Exam 03'''
* '''Lab Exam 03'''


|-
|-
| ==== 18.11.19 ====
|
==== 18.11.19 ====
| style='background-color:#ffcccc;' |
| style='background-color:#ffcccc;' |
'''--- National holiday ---'''
'''--- National holiday ---'''
Line 319: Line 280:


|-
|-
| ==== 19.11.19 ====
|
|
'''AJAX, GET/POST review'''
==== 19.11.19 ====
* [https://www.dropbox.com/s/0etweybz777jz8j/L28_MusicRatingApp.pdf?dl=0 Slides]
|
'''GET vs POST, HTTP vs HTTPS'''
|
|


|-
|-
| ==== 21.11.19 ====
|
|
'''Search and sort'''
==== 21.11.19 ====
* [https://www.dropbox.com/s/3l6rr3f1myv98b2/L29_Search_and_sort.pdf?dl=0 Slides]
|
'''Midterm return'''
|
|


|-
|-
| ==== 25.11.19 ====
|
|
'''Sorting and custom sort'''
==== 25.11.19 ====
* [https://www.dropbox.com/s/hex28lnpn0y1tm7/L30_Sorting.pdf?dl=0 Slides]
|
'''Algorithms (theory)'''
|
|
* Project 1 due
* Project 1 due
Line 342: Line 303:


|-
|-
| ==== 26.11.19 ====
|
|
'''Database'''
==== 26.11.19 ====
* [https://www.dropbox.com/s/kjzib774q6c9ip4/L31_DataBases.pdf?dl=0 Slides]
|
'''Algorithms (practice)'''
|
|
* '''Lab Exam 04'''
* '''Lab Exam 04'''


|-
|-
| ==== 28.11.19 ====
|
|
'''Database application'''
==== 28.11.19 ====
* [https://www.dropbox.com/s/lw5hrp0iwhb3dct/L32_DataBaseApp.pdf?dl=0 Slides]
|
''''''
|
|


|-
|-
| ==== 02.12.19 ====
|
|
'''SQL and SQL injection'''
==== 02.12.19 ====
* [https://www.dropbox.com/s/6ct8bjfbd09616x/L33_SQL_injection.pdf?dl=0 Slides]
|
'''Risks'''
|
|


|-
|-
| ==== 03.12.19 ====
|
==== 03.12.19 ====
|
|
'''Encryption and Hashing'''
'''Encryption and Hashing'''
* [https://www.dropbox.com/s/d5yknr3125x211x/L34_Encryption.pdf?dl=0 Slides]
|
|


|-
|-
| ==== 05.12.19 ====
|
|
'''Designing the application'''
==== 05.12.19 ====
* [https://www.dropbox.com/s/hg2rlzp0ri5zx1n/L35_DesigningTheApp.pdf?dl=0 Slides]
|
'''Adding encryption'''
|
|


|-
|-
| ==== 09.12.19 ====
|
|
'''Passwords and session'''
==== 09.12.19 ====
* [https://www.dropbox.com/s/msoqxdcaeruesql/L36_Paswords_Session.pdf?dl=0 Slides]
|
'''Adding authentication'''
|
|


|-
|-
| ==== 10.12.19 ====
|
|
'''Q&A'''
==== 10.12.19 ====
|
'''Deploying the app'''
|
|


|-
|-
| ==== 12.12.19 ====
|
==== 12.12.19 ====
|
|
'''Final review'''
'''Final review'''
Line 400: Line 359:


|-
|-
| ==== 16.12.19 ====
|
==== 16.12.19 ====
| style='background-color:#ffcccc;' |
| style='background-color:#ffcccc;' |
'''--- EXAM week starts ---'''
'''--- EXAM week starts ---'''
Line 407: Line 365:


|-
|-
| ==== 17.12.19 ====
|
==== 17.12.19 ====
|
|
'''Final exam'''
'''Final exam'''

Revision as of 18:45, 12 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)

  • Project 1 announced
==== 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

==== 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 ====

Q&A

==== 12.12.19 ====

Final review

  • Project 2 due
==== 16.12.19 ====

--- EXAM week starts ---

==== 17.12.19 ====

Final exam

  • Final Exam

Assignments

Resources