Difference between revisions of "BITL-CS2"

From DiLab
Jump to: navigation, search
(Calendar)
(Replaced content with "Restricted use")
(Tag: Replaced)
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
Restricted use
__NOTOC__
=Introduction to Computer Science II=

__NOTOC__
<big>
'''Shortcuts:'''
[[#Calendar | Calendar]] |
[[#Assignments | Assignments]] |
[[#Resources | Resources]] |
</big>
[[#{{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} | Today (if there is a class)]]

=Introduction=

What is Computer Science?
* From [https://en.wikipedia.org/wiki/Computer_science Wikipedia]:
:: 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.

* A video version [https://www.youtube.com/watch?v=DIbtX0GqIA8 from Udacity]

=Administrative information=
Course Syllabus tba
<!-- [https://www.dropbox.com/s/aqbvmka49h9xowp/Syllabus.pdf?raw=1 is available here] -->

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

=Calendar=

{| border=1 cellspacing=0 cellpadding=4
|-
! Date
! Topic
! Assignments, tests, deliverables
|-
|
==== 06.01.20 ====
|
'''Course Introduction'''

Introduction to the course. [https://www.dropbox.com/s/gix0cxm82b1fgxj/Syllabus_CS2_2020-1.pdf?raw=1 Syllabus].
|

|-
|
==== 08.01.20 ====
|
'''IDE Setup. Scala Introduction'''
* [https://www.dropbox.com/s/mgo4xacl5gfheol/L01_Scala_intro_1.pdf?raw=1 Slides]
|

|-
|
==== 10.01.20 ====
|
'''Scala Types and Reading Files'''
* [https://www.dropbox.com/s/i1x8qeldz4skb9f/L02_Scala_intro_2.pdf?raw=1 Slides]

'''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''':
* [https://www.tutorialspoint.com/scala/scala_strings.htm Scala: String]
* [https://www.scala-lang.org/api/current/scala/collection/StringOps.html#split(separator:Char):Array%5BString%5D Scala: String.split] - And many other String methods you may find useful
* [https://www.tutorialspoint.com/scala/scala_for_loop.htm Scala: For loop]
* [http://otfried.org/scala/reading_files.html Scala: Reading Files]
* [https://www.tutorialspoint.com/scala/scala_arrays.htm Scala: Array] - A sequential data structure
* [https://www.tutorialspoint.com/scala/scala_lists.htm Scala: List] - A sequential data structure. You can use either Array or List as you prefer in most cases. We will explore the differences later in the course
* [https://www.tutorialspoint.com/scala/scala_maps.htm Scala: Map] - A key-value store

|

|-
|
==== 13.01.20 ====
|
'''Unit Testing'''
* [https://www.dropbox.com/s/7zeact2v8k9a1y7/L03_Unit_testing.pdf?raw=1 Slides]
|
* [https://docs.google.com/document/d/1SSlynEeirnk10dXY4-cGDysqfS673y8qNHBe8e2KpZE/edit?usp=sharing '''Lab Activity 1''']

|-
|
==== 15.01.20 ====
|
'''Practice Unit Testing'''
|

|-
|
==== 17.01.20 ====
|
'''Classes and Objects'''
* [https://www.dropbox.com/s/wzljvj7tisf97gu/L04_Classes.pdf?raw=1 Slides]
|

|-
|
==== 20.01.20 ====
|
'''Model of Execution 1'''
* [https://www.dropbox.com/s/4ktq1dldxyt1j7v/L05_Execution_1.pdf?raw=1 Slides]
|
* [https://docs.google.com/document/d/1ZV0MK5Gud959EAQVAUNWxAy7X09fQso0LA0o8oCAtnw/edit?usp=sharing '''Lab Activity 2''']

|-
|
==== 22.01.20 ====
|
'''Model of Execution 2'''
* [https://www.dropbox.com/s/hgiwb9r170usv34/L06_Execution_2.pdf?raw=1 Slides]
|

|-
|
==== 24.01.20 ====
|
'''Physics Engine Quiz'''
|
* '''HW1: Physics Engine'''

|-
|
==== 27.01.20 ====
|
'''Inheritance'''
* [https://www.dropbox.com/s/tc0hdxyhn2e78ej/L07_Inheritance.pdf?raw=1 Slides]
|
* '''Lab Activity 3'''

|-
|
==== 29.01.20 ====
|
'''Level 1 Quiz'''
|
* '''Level 1 Quiz'''

|-
|
==== 31.01.20 ====
|
'''Polymorphism and JSON'''
* [https://www.dropbox.com/s/zimg0h83faqu6uy/L08_Polymorphism.pdf?raw=1 Slides]
|

|-
|
==== 03.02.20 ====
|
'''Design Pattern: State Pattern 1'''
|
* '''Project Demo 1'''

|-
|
==== 05.02.20 ====
|
'''Design Pattern: State Pattern 2'''
|

|-
|
==== 07.02.20 ====
|
'''Design Pattern: State Pattern 3'''
|

|-
|
==== 10.02.20 ====
|
'''GUI'''
|
* '''Lab Activity 4'''

|-
|
==== 12.02.20 ====
|
'''Design Architecture: MVC'''
|

|-
|
==== 14.02.20 ====
|
'''Calculator Quiz'''
|
* '''HW2: Calculator'''

|-
|
==== 17.02.20 ====
|
'''Actors Introduction'''
|
* '''Lab Activity 5'''

|-
|
==== 19.02.20 ====
|
'''Level 2 Quiz'''
|
* '''Level 2 Quiz'''

|-
|
==== 21.02.20 ====
|
'''Testing Actors and Database Connections'''
|

|-
|
==== 24.02.20 ====
|
'''Web Sockets 1'''
|
* '''Project Demo 2'''

|-
|
==== 26.02.20 ====
|
'''Web Sockets 2'''
|

|-
|
==== 28.02.20 ====
|
'''Actors Application with Web Sockets'''
|

|-
|
==== 02.03.20 ====
|
'''MMO Architecture 1'''
|
* '''Lab Activity 6'''

|-
|
==== 04.03.20 ====
|
'''MMO Architecture 2'''
|

|-
|
==== 06.03.20 ====
|
'''Clicker Quiz'''
|
* '''HW3: Clicker'''

|-
|
==== 09.03.20 ====
|
'''Custom Sorting with First-Order Functions'''
|
* '''Lab Activity 7'''

|-
|
==== 11.03.20 ====
|
'''Level 3 Quiz'''
|
* '''Level 3 Quiz'''

|-
|
==== 13.03.20 ====
|
'''Merge Sort and Recursion'''
|

|-
|
==== 16.03.20 ====
|
'''Linked List'''
|
* '''Lab Activity 8'''

|-
|
==== 18.03.20 ====
|
'''Linked List Algorithms'''
|

|-
|
==== 20.03.20 ====
|
'''Stack and Queue'''
|

|-
|
==== 23.03.20 ====
|
'''Binary Tree and Traversals'''
|
* '''Lab Activity 9'''

|-
|
==== 25.03.20 ====
|
'''Binary Search Tree'''
|

|-
|
==== 27.03.20 ====
|
'''Genetic Algorithm Quiz'''
|
* '''HW4: Genetic Algorithm'''

|-
|
==== 30.03.20 ====
|
'''Graph Representations and Breath-First Search'''
|
* '''Project Demo 3'''

|-
|
==== 01.04.20 ====
|
'''Level 4 Quiz'''
|
* '''Level 4 Quiz'''

|-
|
==== 03.04.20 ====
|
'''Pathfinding with Breath-First Search'''
|

|-
|
==== 06.04.20 ====
|
'''Review and Examples'''
|
* '''Project Demo 3 (alt)'''

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

=Resources=

===GitHub===
* [https://idratherbewriting.com/learnapidoc/pubapis_github_desktop_client.html Tutorial about GitHub Desktop]

===Scala===
* [https://docs.scala-lang.org/tour/basics.html Scala Basics] - (Except for classes, cases classes, and traits which will be covered later in the semester)
* [http://www.tutorialspoint.com/scala/scala_if_else.htm Scala Conditionals]
* [https://www.tutorialspoint.com/scala/scala_data_types.htm Scala: Basic Types] - We'll primarily use Int, Double, Char, String, Boolean, and Unit

===IDE===
* [https://docs.scala-lang.org/getting-started-intellij-track/getting-started-with-scala-in-intellij.html Get started with Scala in IntelliJ]

===Algorithms===
* [https://www.youtube.com/watch?v=tPtvKYinUzc Visualisations of different sorting algorithms]

===Misc===
* [https://app.sli.do/event/wkqtbios/live/questions Slido for Q&A sessions]

Revision as of 18:12, 29 March 2020

Restricted use