Difference between revisions of "BITL-CS2"

From DiLab
Jump to: navigation, search
(Created page with "__NOTOC__ =Introduction to Computer Science II= __NOTOC__ <big> '''Shortcuts:''' Calendar | Assignments | Resources | <...")
 
(OOP)
 
(73 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TocRight}}
__NOTOC__
=Introduction to Computer Science II=
Introduction to Computer Science, part 2.


The goal of the course is to learn about software development using object oriented programming, functional programming, and relevant data structures and algorithms. The course is using Scala programming language.
__NOTOC__
<big>
'''Shortcuts:'''
[[#Calendar | Calendar]] |
[[#Assignments | Assignments]] |
[[#Resources | Resources]] |
</big>
[[#{{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}} | Today (if there is a class)]]


This page is used as a supplemental resource for the course.
=Introduction=


= Development tools =
What is Computer Science?
== Integrated development environment ==
* From [https://en.wikipedia.org/wiki/Computer_science Wikipedia]:
This course suggests using IntelliJ IDEA for development in Scala.
:: 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.
* [https://www.jetbrains.com/idea/ IntelliJ IDEA] integrated development environment
** [https://www.jetbrains.com/idea/download/ IntelliJ IDEA download link], community edition.


== Git and GitHub version control system and project repository ==
* A video version [https://www.youtube.com/watch?v=DIbtX0GqIA8 from Udacity]
The students will use Git and GitHup as software code repositories. The assignments are submitted via GitHub Education.
[https://git-scm.com/ GIT] version control system
[https://github.com/ GitHub]


[https://rogerdudler.github.io/git-guide/ A simpleguide for getting started with git] - no deep *hit
=Administrative information=
Course Syllabus tba
<!-- [https://www.dropbox.com/s/aqbvmka49h9xowp/Syllabus.pdf?raw=1 is available here] -->


== Build systems, Maven ==
Communication:
* [https://www.baeldung.com/ant-maven-gradle Comparison of And, Maven, and Gradle] build systems.
* via slack: workspace name: bitl-cs2-2019
* via email: use instructor's email address for personal communication
* office hours: by appt.


== Scala ==
=Calendar=
== Introduction to Scala ==
* [https://www.scala-lang.org/ Scala programming language]
* [https://www.geeksforgeeks.org/scala-programming-language/ About Scala] at Geeks for Geeks.
:: ''"Scala is a general-purpose, high-level, multi-paradigm programming language. It is a pure object-oriented programming anguage which also provides support to the functional programming approach. Scala programs can convert to bytecodes and can un on the JVM (Java Virtual Machine)..."''


* [https://docs.scala-lang.org/tour/packages-and-imports.html Packages and imports]
{| border=1 cellspacing=0 cellpadding=4
|-
! Date
! Topic
! Exercises
|-
|
|}


== Data types ==
=Assignments=
* [https://docs.scala-lang.org/tutorials/FAQ/collections.html Data types in Scala]
TBD
* [https://en.wikipedia.org/wiki/Double-precision_floating-point_format About Double precision data types] in general


== OOP ==
=Resources=
* [https://stackify.com/oops-concepts-in-java/ OOP Concepts in Java] - at Stackify
* [https://www.baeldung.com/scala/oop-intro OOP intro in Scala] - at Baeldung
Polymorphism
* [https://www.baeldung.com/scala/polymorphism Polymorphism in Scala] - at Baeldung
* [https://www.geeksforgeeks.org/scala-polymorphism/ Polymorphism in Scala] - at Geeksforgeeks
* [https://www.geeksforgeeks.org/polymorphism-in-python/ Polymorphism in Python] - at Geeksforgeeks


===Scala===
== MVC ==
* [https://www.youtube.com/watch?v=o_TH-Y78tt4&t=1667s The Principles of Clean Architecture by Uncle Bob Martin]
* TBD

===Python===
* [https://docs.python.org/3/reference/ The Python Language Reference]
* [https://docs.python.org/3/library/ The Python Standard Library]

===SQL===
* [https://www.zentut.com/sql-tutorial/ SQL tutorial] at zentut.com
* [https://sqlzoo.net/ "SQLzoo"] - SQL wiki and tutorials, interactive tests.
* [https://www.sqlitetutorial.net/sqlite-python/ SQLite tutorial]

===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]
* [https://randomuser.me/ Random user generator]
* [http://place-puppy.com/ Placepuppy: An image placeholder API]

Latest revision as of 08:59, 30 January 2023

Introduction to Computer Science, part 2.

The goal of the course is to learn about software development using object oriented programming, functional programming, and relevant data structures and algorithms. The course is using Scala programming language.

This page is used as a supplemental resource for the course.

Development tools

Integrated development environment

This course suggests using IntelliJ IDEA for development in Scala.

Git and GitHub version control system and project repository

The students will use Git and GitHup as software code repositories. The assignments are submitted via GitHub Education. GIT version control system GitHub

A simpleguide for getting started with git - no deep *hit

Build systems, Maven

Scala

Introduction to Scala

"Scala is a general-purpose, high-level, multi-paradigm programming language. It is a pure object-oriented programming anguage which also provides support to the functional programming approach. Scala programs can convert to bytecodes and can un on the JVM (Java Virtual Machine)..."

Data types

OOP

Polymorphism

MVC