Interactive Notebooks on Software Design. Sekerinski, E. eCampusOntario, June, 2022.
Interactive Notebooks on Software Design [link]Paper  abstract   bibtex   2 downloads  
This is a collection of interactive Jupyter notebooks for teaching software design and, more specifically, concurrent system design on an upper undergraduate level. (1) Notebooks combine the functionality of a textbook, a programming environment, and slides, thus simplifying the learning experience and allowing students to focus on the essentials. The notebook format allows for more independent study and proves to be suitable for blended learning. (2) The notebooks use an algorithmic notation for explaining concepts and use Python, Java, and Go for programming. (3) Program correctness, particularly the notions of loop and class invariants, are introduced alongside the algorithmic notation. State diagrams visualize the correctness conditions, including those for concurrent programs. (4) An accompanying set of exercise notebooks with programming problems in Python, Java, and Go comes with solutions that can be used as practice material and for semi-automatic grading using the notebook grader extension of Jupyter. The exercises are not part of the public repository but are available on request from the author. For viewing the notebooks, Jupyter and additional tools need to be installed according to the instructions at https://github.com/emilsekerinski/softwaredesign. The notebooks can also be viewed with JupyterLab. For administering student submissions and for semi-automatic grading, a JupyterHub server is needed. The notebooks can be previewed in HTML form with limitations only.
@book{Sekerinski22SoftwareDesign,
	series = {Open {Library}},
	title = {Interactive {Notebooks} on {Software} {Design}},
	url = {https://vlslibrary.ecampusontario.ca/item-details/#/5772cd52-86a4-4794-977c-13a2257a6e6d},
	abstract = {This is a collection of interactive Jupyter notebooks for teaching software design and, more specifically, concurrent system design on an upper undergraduate level.
(1) Notebooks combine the functionality of a textbook, a programming environment, and slides, thus simplifying the learning experience and allowing students to focus on the essentials. The notebook format allows for more independent study and proves to be suitable for blended learning.
(2) The notebooks use an algorithmic notation for explaining concepts and use Python, Java, and Go for programming.
(3) Program correctness, particularly the notions of loop and class invariants, are introduced alongside the algorithmic notation. State diagrams visualize the correctness conditions, including those for concurrent programs.
(4) An accompanying set of exercise notebooks with programming problems in Python, Java, and Go comes with solutions that can be used as practice material and for semi-automatic grading using the notebook grader extension of Jupyter. The exercises are not part of the public repository but are available on request from the author.
For viewing the notebooks, Jupyter and additional tools need to be installed according to the instructions at https://github.com/emilsekerinski/softwaredesign. The notebooks can also be viewed with JupyterLab. For administering student submissions and for semi-automatic grading, a JupyterHub server is needed. The notebooks can be previewed in HTML form with limitations only.},
	number = {MCMA-990/ID618},
	publisher = {eCampusOntario},
	author = {Sekerinski, Emil},
	month = jun,
	year = {2022},
}

Downloads: 2