Difference between revisions of "BITL-CS2"

From DiLab
Jump to: navigation, search
(Calendar)
(Calendar)
Line 51: Line 51:
* [https://www.dropbox.com/s/mgo4xacl5gfheol/L01_Scala_intro_1.pdf?raw=1 Slides]
* [https://www.dropbox.com/s/mgo4xacl5gfheol/L01_Scala_intro_1.pdf?raw=1 Slides]


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

'''Reading/Reference''':
* [https://docs.scala-lang.org/tour/basics.html Scala Basics] - Except for classes, cases classes, and traits, for now.
* [https://docs.scala-lang.org/tour/basics.html Scala Basics] - Except for classes, cases classes, and traits, for now.
* [http://www.tutorialspoint.com/scala/scala_if_else.htm Scala Conditionals]
* [http://www.tutorialspoint.com/scala/scala_if_else.htm Scala Conditionals]
Line 64: Line 66:
'''Scala Types and Reading Files'''
'''Scala Types and Reading Files'''
* [https://www.dropbox.com/s/i1x8qeldz4skb9f/L02_Scala_intro_2.pdf?raw=1 Slides]
* [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

|
|



Revision as of 13:13, 8 January 2020

Introduction to Computer Science II

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 tba

Communication:

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

Calendar

Date Topic Exercises

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

TBD

  • Lab Activity 1

15.01.20

Unit Testing

17.01.20

Classes and Objects

20.01.20

Model of Execution 1

  • Lab Activity 2

22.01.20

Model of Execution 2

24.01.20

Physics Engine Quiz

  • HW1: Physics Engine

27.01.20

Inheritance

  • Lab Activity 3

29.01.20

Level 1 Quiz

  • Level 1 Quiz

31.01.20

Polymorphism and JSON

03.02.20

Design Pattern: State Pattern 1

Objective: You will gain experience with the state design pattern to dynamically change the

  • Project Demo 1

05.02.20

Design Pattern: State Pattern 2

behavior of an object

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

  • Lab Activity 4

12.02.20

Design Architecture: MVC

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

14.02.20

Calculator Quiz

  • HW2: Calculator

17.02.20

Actors Introduction

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

  • Lab Activity 5

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

24.02.20

Web Sockets 1

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

  • Project Demo 2

26.02.20

Web Sockets 2

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

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

  • HW3: Clicker

09.03.20

Custom Sorting with First-Order Functions

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

  • 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

16.03.20

Linked List

Objective: Understand the structure of a linked list

  • Lab Activity 8

18.03.20

Linked List Algorithms

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

20.03.20

Stack and Queue

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

23.03.20

Binary Tree and Traversals

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

  • Lab Activity 9

25.03.20

Binary Search Tree

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

27.03.20

Genetic Algorithm Quiz

  • HW4: Genetic Algorithm

30.03.20

Graph Representations and Breath-First Search

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

  • Project Demo 3

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

  • 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

Scala

IDE

Algorithms

Misc