Difference between revisions of "BITL-CS2"

From DiLab
Jump to: navigation, search
(Calendar)
Line 45: Line 45:
 
=Calendar=
 
=Calendar=
  
{| border=1 cellspacing=0 cellpadding=4 style = "border-color: #ddd;"
+
{| border=1 cellspacing=0 cellpadding=4 style = 'border-color: #ddd;'
 
|-
 
|-
 
! Date  
 
! Date  
 
! Topic
 
! Topic
 
! Deliverables
 
! Deliverables
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 06.01.20 ====
 
==== 06.01.20 ====
Line 63: Line 63:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 08.01.20 ====
 
==== 08.01.20 ====
Line 81: Line 81:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 10.01.20 ====
 
==== 10.01.20 ====
Line 103: Line 103:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 13.01.20 ====
 
==== 13.01.20 ====
Line 125: Line 125:
 
* [https://docs.google.com/document/d/1SSlynEeirnk10dXY4-cGDysqfS673y8qNHBe8e2KpZE/edit?usp=sharing '''Lab Activity 1''']
 
* [https://docs.google.com/document/d/1SSlynEeirnk10dXY4-cGDysqfS673y8qNHBe8e2KpZE/edit?usp=sharing '''Lab Activity 1''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 15.01.20 ====
 
==== 15.01.20 ====
Line 136: Line 136:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 17.01.20 ====
 
==== 17.01.20 ====
Line 155: Line 155:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 20.01.20 ====
 
==== 20.01.20 ====
Line 173: Line 173:
 
* [https://docs.google.com/document/d/1ZV0MK5Gud959EAQVAUNWxAy7X09fQso0LA0o8oCAtnw/edit?usp=sharing '''Lab Activity 2''']
 
* [https://docs.google.com/document/d/1ZV0MK5Gud959EAQVAUNWxAy7X09fQso0LA0o8oCAtnw/edit?usp=sharing '''Lab Activity 2''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 22.01.20 ====
 
==== 22.01.20 ====
Line 190: Line 190:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 24.01.20 ====
 
==== 24.01.20 ====
Line 204: Line 204:
 
* [https://docs.google.com/document/d/1rrq5WjyOwupKH3GigH7crZ6elXv2ggZoSGrnP9hEMKU/view#heading=h.4012eaop3dxl '''Due HW1: Physics Engine''']
 
* [https://docs.google.com/document/d/1rrq5WjyOwupKH3GigH7crZ6elXv2ggZoSGrnP9hEMKU/view#heading=h.4012eaop3dxl '''Due HW1: Physics Engine''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 27.01.20 ====
 
==== 27.01.20 ====
Line 222: Line 222:
 
* [https://docs.google.com/document/d/1OpjGr1FTuBcj06_BMw_S8HvzyYHaetyYot_IZ7-LmUg/edit?usp=sharing '''Lab Activity 3''']
 
* [https://docs.google.com/document/d/1OpjGr1FTuBcj06_BMw_S8HvzyYHaetyYot_IZ7-LmUg/edit?usp=sharing '''Lab Activity 3''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 29.01.20 ====
 
==== 29.01.20 ====
Line 234: Line 234:
 
* '''Level 1 Quiz'''
 
* '''Level 1 Quiz'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 31.01.20 ====
 
==== 31.01.20 ====
Line 255: Line 255:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 03.02.20 ====
 
==== 03.02.20 ====
Line 272: Line 272:
 
* [https://docs.google.com/document/d/18mxVo3_T0WmFWljXpsOZ88h52fFtdL6JmpbUFFW1Pi0/edit?usp=sharing '''Due Project Demo 1''']
 
* [https://docs.google.com/document/d/18mxVo3_T0WmFWljXpsOZ88h52fFtdL6JmpbUFFW1Pi0/edit?usp=sharing '''Due Project Demo 1''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 05.02.20 ====
 
==== 05.02.20 ====
Line 285: Line 285:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 07.02.20 ====
 
==== 07.02.20 ====
Line 298: Line 298:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 10.02.20 ====
 
==== 10.02.20 ====
Line 320: Line 320:
 
* [https://docs.google.com/document/d/16khfhVph_5_bsYSeMXmGz0r3ydGMP-Vp3zkJWR3klMs/edit?usp=sharing '''Lab Activity 4''']
 
* [https://docs.google.com/document/d/16khfhVph_5_bsYSeMXmGz0r3ydGMP-Vp3zkJWR3klMs/edit?usp=sharing '''Lab Activity 4''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 12.02.20 ====
 
==== 12.02.20 ====
Line 337: Line 337:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 14.02.20 ====
 
==== 14.02.20 ====
Line 351: Line 351:
 
* [https://docs.google.com/document/d/1Kjo2nRqKAXY8JJaXxtAJY27RaS-_XnwNzOk3ekOjlZY/edit?usp=sharing '''Due HW2: Calculator''']
 
* [https://docs.google.com/document/d/1Kjo2nRqKAXY8JJaXxtAJY27RaS-_XnwNzOk3ekOjlZY/edit?usp=sharing '''Due HW2: Calculator''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 17.02.20 ====
 
==== 17.02.20 ====
Line 371: Line 371:
 
* [https://docs.google.com/document/d/1T_JEdarMRCbvTrFxIitMPy2VxkmpQt7kN9zbNH585oo/edit?usp=sharing '''Lab Activity 5''']
 
* [https://docs.google.com/document/d/1T_JEdarMRCbvTrFxIitMPy2VxkmpQt7kN9zbNH585oo/edit?usp=sharing '''Lab Activity 5''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 19.02.20 ====
 
==== 19.02.20 ====
Line 383: Line 383:
 
* '''Level 2 Quiz'''
 
* '''Level 2 Quiz'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 21.02.20 ====
 
==== 21.02.20 ====
Line 407: Line 407:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 24.02.20 ====
 
==== 24.02.20 ====
Line 425: Line 425:
 
* [https://docs.google.com/document/d/1-Rpz1nUcWKTzMJVYDwFKj6Nq8qgy5YFlpFDxDXRZVlQ/edit?usp=sharing '''Due Project Demo 2''']
 
* [https://docs.google.com/document/d/1-Rpz1nUcWKTzMJVYDwFKj6Nq8qgy5YFlpFDxDXRZVlQ/edit?usp=sharing '''Due Project Demo 2''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 26.02.20 ====
 
==== 26.02.20 ====
Line 442: Line 442:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 28.02.20 ====
 
==== 28.02.20 ====
Line 454: Line 454:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 02.03.20 ====
 
==== 02.03.20 ====
Line 468: Line 468:
 
* '''Lab Activity 6'''
 
* '''Lab Activity 6'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 04.03.20 ====
 
==== 04.03.20 ====
Line 481: Line 481:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 06.03.20 ====
 
==== 06.03.20 ====
Line 495: Line 495:
 
* [https://docs.google.com/document/d/1l19j-RuN1EGDItnNq51zju5M0KWY6EIeyEthHj61Mr0/edit?usp=sharing '''Due HW3: Clicker''']
 
* [https://docs.google.com/document/d/1l19j-RuN1EGDItnNq51zju5M0KWY6EIeyEthHj61Mr0/edit?usp=sharing '''Due HW3: Clicker''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 09.03.20 ====
 
==== 09.03.20 ====
Line 514: Line 514:
 
* '''Lab Activity 7'''
 
* '''Lab Activity 7'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 11.03.20 ====
 
==== 11.03.20 ====
Line 526: Line 526:
 
* '''Level 3 Quiz'''
 
* '''Level 3 Quiz'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 13.03.20 ====
 
==== 13.03.20 ====
Line 545: Line 545:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 16.03.20 ====
 
==== 16.03.20 ====
Line 563: Line 563:
 
* '''Lab Activity 8'''
 
* '''Lab Activity 8'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 18.03.20 ====
 
==== 18.03.20 ====
Line 580: Line 580:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 20.03.20 ====
 
==== 20.03.20 ====
Line 597: Line 597:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 23.03.20 ====
 
==== 23.03.20 ====
Line 618: Line 618:
 
* '''Lab Activity 9'''
 
* '''Lab Activity 9'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 25.03.20 ====
 
==== 25.03.20 ====
Line 634: Line 634:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 27.03.20 ====
 
==== 27.03.20 ====
Line 646: Line 646:
 
* [https://docs.google.com/document/d/1QQfN5qecH6fC_d8CIZ0wSXEDQvnd38zaIbtMqcsld_4/edit#heading=h.gjdgxs '''Due HW4: Genetic Algorithm''']
 
* [https://docs.google.com/document/d/1QQfN5qecH6fC_d8CIZ0wSXEDQvnd38zaIbtMqcsld_4/edit#heading=h.gjdgxs '''Due HW4: Genetic Algorithm''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 30.03.20 ====
 
==== 30.03.20 ====
Line 665: Line 665:
 
* [https://docs.google.com/document/d/148JElBYmlYtXbIJOzKqS00OsWeOKDyVfXjKu9XcqpBw/edit#heading=h.gjdgxs '''Project Demo 3''']
 
* [https://docs.google.com/document/d/148JElBYmlYtXbIJOzKqS00OsWeOKDyVfXjKu9XcqpBw/edit#heading=h.gjdgxs '''Project Demo 3''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 01.04.20 ====
 
==== 01.04.20 ====
Line 677: Line 677:
 
* '''Level 4 Quiz'''
 
* '''Level 4 Quiz'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 03.04.20 ====
 
==== 03.04.20 ====
Line 689: Line 689:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 06.04.20 ====
 
==== 06.04.20 ====
Line 701: Line 701:
 
* [https://docs.google.com/document/d/148JElBYmlYtXbIJOzKqS00OsWeOKDyVfXjKu9XcqpBw/edit#heading=h.gjdgxs '''Project Demo 3 (alt)''']
 
* [https://docs.google.com/document/d/148JElBYmlYtXbIJOzKqS00OsWeOKDyVfXjKu9XcqpBw/edit#heading=h.gjdgxs '''Project Demo 3 (alt)''']
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 08.04.20 ====
 
==== 08.04.20 ====
Line 713: Line 713:
 
* '''HW5: MMO'''
 
* '''HW5: MMO'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 10.04.20 ====
 
==== 10.04.20 ====
Line 724: Line 724:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 13.04.20 ====
 
==== 13.04.20 ====
Line 735: Line 735:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 15.04.20 ====
 
==== 15.04.20 ====
Line 746: Line 746:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 17.04.20 ====
 
==== 17.04.20 ====
Line 758: Line 758:
 
* '''HWb: Bonus Homework'''
 
* '''HWb: Bonus Homework'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 20.04.20 ====
 
==== 20.04.20 ====
Line 769: Line 769:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 22.04.20 ====
 
==== 22.04.20 ====
Line 781: Line 781:
 
* '''Final Exam'''
 
* '''Final Exam'''
  
|-
+
|- style='vertical-align: top;'
 
|
 
|
 
==== 24.04.20 ====
 
==== 24.04.20 ====
Line 792: Line 792:
 
|
 
|
  
|-
+
|- style='vertical-align: top;'
 
|}
 
|}
  

Revision as of 00:29, 26 March 2020

Introduction to Computer Science II

Shortcuts: Calendar | Assignments | Resources | Today: 06.04.20 : Tomorrow: 7.04.20 (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

Communication:

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


Deliverables

Deliverables in this course include the following:

  • Lecture questions - due by midnight on the next day, unless otherwise specified.
  • Lab activities
  • Homework
  • Quizzes as scheduled on the calendar
  • Final exam

Calendar

Date Topic Deliverables

06.01.20

Course Introduction


Introduction to the course. Syllabus.

08.01.20

IDE Setup. Scala Introduction

Objective: Setup your IDE (IntelliJ) for Scala and Python development on your laptop and write a simple Scala program.

Reading/Reference:

10.01.20

Scala Types and Reading Files

Objective: Write a program that can read the lines of a file in a strongly typed language (Scala) and store values in a data structure

Reading/Reference:

13.01.20

Unit Testing

Objective: Test your own code without needing AutoLab

HW1 announced.

Reading/Reference:

15.01.20

Practice Unit Testing


17.01.20

Classes and Objects

Objective: Define and use classes

Reading/Reference:

  • Wikipedia: Class - Overview and reference (More detail than we'll cover in lecture)
  • Scala: Class - Application of Classes using Scala syntax
  • Python: Class - Application of Classes using Python syntax
  • Scala API - Reference for all Scala packages/classes/objects""

20.01.20

Model of Execution 1

Objective: Describe how the program stack and heap store values in your program

Reading/Reference:

22.01.20

Model of Execution 2

Objective: Use a debugger to see the state of your program during execution

Reading/Reference:

24.01.20

Physics Engine Quiz


HW2 announced.

27.01.20

Inheritance

Objective: You will be able to write abstract classes and concreted classes that inherent an abstract class

Reading/Reference:

29.01.20

Level 1 Quiz


  • Level 1 Quiz

31.01.20

Polymorphism and JSON

Objective: You will study polymorphism and apply it to use JSON in a strongly typed language

Reading/Reference:

03.02.20

Design Pattern: State Pattern 1

Objective: You will gain experience with the state design pattern to dynamically change the behavior of an object

Reading/Reference:

05.02.20

Design Pattern: State Pattern 2

Objective: Gain more familiarity with the state design pattern by reviewing the Jumper code

07.02.20

Design Pattern: State Pattern 3

Objective: Gain more familiarity with the state design pattern

10.02.20

GUI

Objective: Build desktop GUIs

Reading/Reference:

12.02.20

Design Architecture: MVC

Objective: Become familiar with the MVC architecture pattern and its benefits

Reading/Reference:

14.02.20

Calculator Quiz


HW3 announced.

17.02.20

Actors Introduction

Objective: Write programs with multiple pieces of code executing at the same time

Reading/Reference:

19.02.20

Level 2 Quiz


  • Level 2 Quiz

21.02.20

Testing Actors and Database Connections

Objective: Write unit tests for actors and connect to a MySQL server

Reading/Reference:

24.02.20

Web Sockets 1

Objective: Enable 2-way communication between the browser and web server

Reading/Reference:

26.02.20

Web Sockets 2

Objective: Connect a Scala front end to a web socket server

Reading/Reference:

28.02.20

Actors Application with Web Sockets


02.03.20

MMO Architecture 1

Objective: See an example using the MMO architecture form this class

  • Lab Activity 6

04.03.20

MMO Architecture 2

Objective: Explore the MMO architecture applied to the course project

06.03.20

Clicker Quiz


HW4 announced.

09.03.20

Custom Sorting with First-Order Functions

Objective: Explore custom sorting in scala and gain experience with function and type parameters

Reading/Reference:

  • Lab Activity 7

11.03.20

Level 3 Quiz


  • Level 3 Quiz

13.03.20

Merge Sort and Recursion

Objective: Gain an understanding of recursion combined with first-order functions and type parameters

Reading/Reference:

16.03.20

Linked List

Objective: Understand the structure of a linked list

Reading/Reference:

  • Lab Activity 8

18.03.20

Linked List Algorithms

Objective: Explore how various operations are performed on a linked list

Reading/Reference:

20.03.20

Stack and Queue

Objective: Use a linked list to implement the functionality of a stack and queue

Reading/Reference:

23.03.20

Binary Tree and Traversals

Objective: Gain familiarity with the structure of binary trees and how to traverse existing trees

Reading/Reference:

  • Lab Activity 9

25.03.20

Binary Search Tree

Objective: Explore an application of binary trees by using them for searching and sorting

Reading/Reference:

27.03.20

Genetic Algorithm Quiz


30.03.20

Graph Representations and Breath-First Search

Objective: Learn how to represent a graph in code and work with that representation

Reading/Reference:

01.04.20

Level 4 Quiz


  • Level 4 Quiz

03.04.20

Pathfinding with Breath-First Search

Objective: Find the shortest path between two nodes using BFS

06.04.20

Review and Examples


08.04.20

MMO Quiz


  • HW5: MMO

10.04.20

Holiday


13.04.20

Holiday


15.04.20

Consultation week


17.04.20

Consultation week


  • HWb: Bonus Homework

20.04.20

(Exam week)


22.04.20

Exam week - Final Exam


  • Final Exam

24.04.20

(Exam week)


Assignments

Assignment due dates are in the calendar.

Assignments are announced by the course Slack channel.

Every lecture has a lecture question that is due by midnight the same day. Submitting you work should be done in the respective GitHub repositories, as published in Slack.

Homeworks

HW1

HW1 description - Physics Engine

HW2

HW2 description - Calculator

HW3

[#HW3 HW3 description]

HW4

[#HW4 HW4 description]

Projects

Resources

Look for resources in the calendar, after the lecture objectives.

GitHub

Scala

IDE

Algorithms

Misc

For another time...