What's New

Use this page to keep track of the latest class announcements.

Lecture 30

The slides for Lecture 30 are now available. I also uploaded the Javascript files for lecture 30 to the GitHub website as well. Enjoy!

Lecture 29 and Example Source Code

The slides for today’s lecture (Lecture 29) are now available. I also uploaded the code I used during the lecture to the GitHub code repo for the class.

Lecture 28

The slides for Lecture 28 are now available.

Lecture 27

The slides for Lecture 27 are now available.

Lecture 26

The slides for Lecture 26 are now available.

Lecture 25

The slides for Lecture 25 are now available.

Presentation 2 Graded

I finished grading Presentation 2 and uploaded grades to D2L. Just in time to receive Presentation 3! I will next be grading Homework 3.

Lecture 24

The slides for Lecture 24 are now available.

Lecture 23

The slides for Lecture 23 are now available.

Updated Sample Code Repo

I have updated the Sample Code repository to contain the examples I covered in the Elixir-related lectures.

Lectures 21 and 22

The slides I used across Lectures 21 and 22 are now available.

The Joys of Git

Thanks to one of our students pointing me to today’s xkcd about git. Be sure to read the “hover text” on this one!

Lecture 20

The slides for Lecture 20 are now available. It covers Day 1 of Chapter 5 of our Concurrency textbook.

Midterm Results

As advertised, I finished grading the midterm today. 42 student took the midterm. The average score was 82 with a standard deviation of 12. The median score was 84. The lowest score was 50. The highest score was 98. Finally, the most common score (the mode) was 95. I have included a histogram of the grades below. I will discuss the exam in lecture tomorrow. I will enter the grades into D2L tomorrow.

MidtermHistogram


Lecture 18

The slides for Lecture 18 are now available. I have made progress on grading the midterm: about 25% of the exams have been graded. I’ll be shooting to have all of them graded by the end of the weekend and then I’ll spend next week catching up on the rest of the grading for the class.

Quiz 3

Quiz 3 is now available. It is designed to help you study for the midterm. It is also due at 12 PM before the midterm next Tuesday. Again, you should be taking this quiz THIS week so you can assess where you are at with respect to preparation for the midterm. Best of luck!

Quiz 2

Quiz 2 is now available on the D2L website. It contains questions that will help you review the following topics that we’ve covered in class: 1) introduction to software engineering, 2) concurrency, and 3) git. I am now working on creating Quiz 3 which will help cover some of the additional topics we’ve discussed in lecture this semester. Stay tuned for that. In the meantime, Quiz 2 is due by 12 PM on October 20th, but you should take it before that as a way to help study for the midterm.

One More Clojure Resource

I just learned about 4Clojure, a website that helps people learn Clojure. Check it out.

Lecture 15

The slides for Lecture 15 are now available.

Lecture 14

The slides for Lecture 14 are now available.

Updates to Last Two Lectures

I updated Lecture 11 to now be listed as Lecture 11 AND 12, because it took me both lectures to get it done. The lecture previously released as Lecture 12 has now been renamed to Lecture 13. The example source code repository on GitHub has been updated to match this renumbering.

Example Clojure App

To help you with studying the Clojure language, I spent some time this afternoon coding up a simple example of a Clojure application. This example app will take an input file consisting of names and produce an output file where the names are sorted. Take a look at the source code and the test cases and see if it helps you pick up some more Clojure and understand how little snippets of Clojure code can be assembled into a working application.

The repo is located here: https://github.com/kenbod/sort_names

Clojure Support Groups

If you need to form a Clojure support group (i.e. study group), you can use this document.

Submitting Presentations

The Google Doc for “submitting” your presentations is now available.

Lecture 12

The slides for Lecture 12 are now available.

Homework 3

Homework 3 is now available. It is due on Tuesday, October 6 before lecture (Lecture 13).

Lecture 11

The slides for Lecture 11 are now available. Be sure to read (at least) the first half of Chapter 3 from our Concurrency text book in prep for this lecture. If you want to follow along with the code examples, be sure to get Leiningen and Light Table installed.

Watching the Lectures Live

If you are a remote student but would like to watch the lecture live (and ask questions as well!), then you can attend using CU's video conference system.

To do that, go to <http://www.colorado.edu/oit/tutorial/zoom-download-and-setup> and follow the on-screen instructions to download the free Zoom app. Then launch Zoom and enter the Meeting ID below.

The meeting id for this semester is 379485239.

You can also join via your web browser: <https://zoom.us/j/379485239>

Hope to see you!


Updated Presentations Spreadsheet

I spent some time this morning reviewing the presentation-assignment spreadsheet. I made more assignments, rejected a few proposed ideas (sorry), and asked for feedback on a few items. Go take a look!

Lecture 10

The slides for Lecture 10 are now available.

Example Code

I have updated the Sample Code page to contain links to the two places on the web where example code for this course is located. Check it out.

Lecture 9

The slides for Lecture 9 are now available. Some of the examples in the slides refer to code that comes with our textbook. I’m not allowed to distribute that code; however, you can download it for free from the Pragmatic Programmers website.

Reminder: Read Chapter 2 of Concurrency Textbook

Quick Reminder: The two lectures this week will assume that you have read Chapter 2 of the Concurrency textbook. Take a look before lecture tomorrow! Thanks.

Lecture 8

The slides for Lecture 8 are now available.

Viewing the branches of a git repo

If you are looking for ways to visualize the branch structure of your git repository, the following links provide pointers to options that run on various platforms. The system that I use, GitUp, is only available for OS X. But there are plenty of options out there for Windows and Linux. Take a look:

<http://stackoverflow.com/questions/21116069/decent-git-branch-visualization-tool>

<http://stackoverflow.com/questions/12324050/how-can-i-visualize-github-branch-history-on-windows>

<http://www.gitguys.com/topics/where-do-i-get-git>


HackCU is having a Hackathon

HackCU is one of our department’s student-led groups focused on having fun while programming. They are holding a 12-hour hackathon on Saturday, October 10th. If you are interested in spending a day hacking and having fun, take a look at their website and sign up!

HackCU’s Local Hack Day

Lecture 7

The slides for Lecture 7 are now available. FYI: They contain a copy of the slides that I didn’t finish at the end of Lecture 6 last week.

Homework 2 Commit Graph Redux

Just wanted to show you that I wouldn’t ask you to do a homework question that I wouldn’t do myself. Here’s the GitUp visualization of the repo that I created for Homework 2’s first question. :-)

GitUpHomework2

Compare this with the target graph (you have to rotate the above graph 90 degrees clockwise).

Homework 2

Homework 2 is now available. It is due at 12:30 PM MDT on Tuesday, September 22nd (i.e. by the start of Lecture 9).

Quiz 1

Quiz 1 is now available on the D2L website for this course. Login to D2L, select 5828 for Spring 2015, and then head over to the Quizzes section. Select Quiz 1 and take it. You can take Quiz 1 from now until next Saturday night, September 19th. I will not re-open the quiz for students who fail to take it during this week, so put this to-do item in your calendar and get it done!

Reviewed Topics

Check out the Presentation Topic spreadsheet. I have made assignments and (in some cases) ruled against certain topics or asked for more detail before approving. For any topic that you propose, make sure you have a way to relate it to software engineering. If that connection is not obvious, make sure to present it in the Notes field so I can decide if I’ll approve it.

Lecture 5 & 6

The slides for lectures 5 & 6 are now available. I still have slides from Lecture 4 to cover and then this next set of slides will likely take all of week 3 to complete.

Homework 1 Graded

I finished grading Homework 1 and uploaded graded documents back into D2L. If you got a 50/50, then I likely did not enter any comments/feedback, for sake of time. The average grade was a 43 out of 50. The median grade was a 46. The mode (or most common grade) was a 50. The standard deviation was roughly 12 points. I’ll discuss Homework 1 next week during lecture.

Information on Presentations

I have posted additional information on the presentations assignment for this semester.

Information on the Semester Project

I have posted information on the software project assignment that is available for students this semester as Option 2 with respect to course evaluation. This project will be a chance for you to try out an Agile software life cycle over three weeks of the semester (i.e. three 1-week iterations) to produce a software prototype that makes use of concurrency in some way.

Of course, we have not yet covered the things you need to know in order to do this, but we will by the time the projects need to launch later this semester. So, please take a look to get a sense for what this option entails but don't worry too much about it, you will soon have the knowledge to take this on! :-)

I'll present more information about this option in lecture.


Propose Your Topics

I have created a Google Spreadsheet to help us generate and assign topics for the presentations this semester.

The spreadsheet is located here:

Head over to the spreadsheet and add Software Engineering topics that you would like to work on for your presentations. I will add a few topics to kickstart the process but part of this assignment is for you to do some research on your own to discover SE techniques, tools, frameworks, life cycles, etc. that can be added to the list and then investigated.

Add topics early and often. It's okay to add multiple topics to the list even if you are not planning on covering them yourself.


Update on Evaluation

I am finally ready to update my plan for evaluation for this semester. I have been receiving feedback from various students over the past two weeks that have influnced these changes and I came to realize that I couldn't launch the presentation portion of the class as quickly as I wanted.

This post updates/replaces the information on slide 13 of Lecture 1.

Class Evaluation

Your grade in CSCI 5828 for the Fall 2015 semester will be determined by your work on

Category Option 1:
Four Presentations
Option 2:
Three Presentations & Project
Class Participation 5% 5%
Quizzes 10% 10%
Homeworks 35% 35%
Midterm 20% 20%
Presentations 30% 20%
Project N/A 10%
Total: 100% 100%

You now have a choice of creating four presentations across the rest of the semester or creating three presentations and one three-week long semester project. The project will involve stepping through the process of an Agile life cycle across three one-week iterations to create a software prototype of some kind.

Homeworks will be submitted on D2L; Quizzes will be taken on D2L; Presentations and the (optional) Project will be submitted on GitHub

Students are allowed to work on homeworks, the presentations, and the project in teams up to four students.


Lectures 4 & 5

The slides for lectures 4 and 5 are now available. Since I still have to cover the material for GitHub on Thursday, we will just be able to launch this set of slides tomorrow and then finish them next week on Tuesday.

Lecture 3

The slides for Lecture 3 are now available. I managed to cover the section on Markdown at today’s lecture. I will cover the section on GitHub at the start of Thursday’s lecture. If you would like to see this same lecture in Markdown format, head to <https://github.com/kenbod/markdown_github_01>. If you would like to see this same lecture in HTML format, head to <http://kenbod.github.io/markdown_github_01/>. These last two URLs serve as examples of how you can use GitHub to host your own presentations.

Format for Homework 1 Submissions

Please upload your Homework 1 submission in PDF format. Thanks.

Homework 1

Homework 1 is now available.

Lecture 2: Second Set

A second set of slides for Lecture 2 is now available.

Heads-Up: Slower Start to the Presentations

I realized today that I won't have time to cover everything you need to know to create a presentation on GitHub. So, I'm going to cover one of the technologies that you need to know—git—tomorrow during Lecture 2 (after I discuss No Silver Bullet) and then start Lecture 3 by covering the other two things you need to know—GitHub and Markdown—and then finally show you an example presentation that you can use to get a sense for what I'm looking for.

In the meantime, you can start searching the web for possible topics that you can use for your five presentations. This weekend, I will create a document that will let you claim a particular topic. I will monitor that document and approve/reject topics that students submit until we all have a good idea of what's in scope and what's out-of-scope. I'll post more information about that this weekend. In the meantime, look for SE-related techniques, tools, and software life cycles, cool new programming frameworks, cutting edge technologies, etc. I'll be fairly open in what I approve as long as their is a clear SE angle that can be applied to the topic.

More info soon!


Lecture 2

The first set of slides for Lecture 2 is now available. A second set of slides is on its way.

Welcome!

I'm working on the class website for CSCI 5828 for the Fall 2015 semester. Pardon my dust and stay tuned!

© University of Colorado, Boulder 2015