What's New

Return to this page for the latest information on CSCI 4448/5448. Subscribe to this site's RSS feed to have the most recent news and announcements appear automatically in your feed reader.

Potential Android Development Position

Hi. The department has been contacted by a (very) small start-up company looking to develop a robot for a very specific market. The company needs someone with Android development skills who is "hard working, open minded, easy to work with, trust worthy, and has an entrepreneurial streak." The position is paid but since the company is in the R&D stage, the salary should be considered supplemental, i.e. it would not be enough to count as a full-time position. If you are interested, let me know and I'll put you in touch with the founder.

Final Grades

I just finished posting final grades for the class; they should be available on-line soon. The last thing on my to-do list for the class is posting the remaining graduate student presentations. I'm aiming to get that done by tomorrow night.

I hope you enjoyed the class and I hope everyone has a terrific Winter break!

Homework 7 Grades

The Grades page has been updated with grades for homework 7. A spreadsheet containing feedback is also available.

Feedback on Graduate Presentations

When I updated the Grades page with information on the graduate presentations, I forgot to upload a spreadsheet providing feedback on each presentation. I've now corrected that error (see link in previous sentence). My apologies.

In general, the presentations were of very high quality. I'm still planning on getting them all uploaded to the site, hopefully by the end of this week.

Lectures 28, 29, and 30

The slides for Lecture 28, Lecture 29, and Lecture 30 are now available. The sample code for Lecture 28 and Lecture 30 is also available.

Mobile Apps Challenge

This is a (very) preliminary announcement that, early next year, CSUAC will be hosting their Mobile Apps Challenge again. Those of you working on mobile apps for your semester project may be able to reuse them for the challenge or at least be prepared to create a new app specifically for the challenge. Last year, the winners received cash prizes and had a chance to network with members of the local start-up community. Be on the lookout for the announcement for next year's challenge later this month and come with your best mobile app to compete for the top prize!

Grades for Graduate Presentations

The grades for graduate student presentations have been uploaded. I'll upload the remaining presentations to the website soon.

Grades Page Updated

We had a number of updates to the Grades page for Homework 4 for a few assignments that were either lost in the mail due to OIT zapping them or due to other delays in grading particular assignments. 

ReadyTalk is Delivering Pizza!

Tomorrow afternoon from 12 PM to 1 PM, representatives from ReadyTalk will be in the CSEL to deliver free pizza to our students in preparation for Finals Week and to talk about various internship and/or job opportunities at ReadyTalk. I'll try to end a little early tomorrow so you can head up to the CSEL to get some food and find out what ReadyTalk has to offer!

Doodle Poll for Student Demos

To facilitate the scheduling of student demos, I have created a poll on Doodle that will allow teams to sign up for a time slot.

The poll is located here: http://www.doodle.com/v8gdqtzxqsp6w8yf

Please:

  1. Coordinate among your team members to find a time that will work for all of you (or team size - 1)
  2. Select one member of your team to visit the doodle poll and claim that time for your team
  3. On the doodle poll, please enter your name or the name of your project to identify which team has which slot

Note 1: The time slot for 3 PM to 3:15 PM has already been assigned to the team working on the adaptive learning system. Please do not take that time slot, unless you are a member of that team.

Note 2: If your team wants to demo during the last week of the semester, then please do not use this doodle poll. Instead, contact me via e-mail to find a time to meet.


Lectures 26 and 27

The slides for Lecture 26 and Lecture 27 are now available. The sample code presented during Lecture 26 is also available.

FCQs

FCQs for in-class students will be administered tomorrow at the end of class. Please be sure to attend to provide feedback. CAETE students, please make sure to fill out your on-line FCQs.

Update to Homework 7

My better half reminded me that I will not be on campus on Friday, December 9th due to a family-related issue. As a result, I cannot meet on that day to see demos. As a result, the deadline for Homework 7 has been pushed back to Monday, December 12th. I will make myself available all day to meet with teams on that day. A demo will last no longer than 15 minutes, so I should be able to meet with all of the teams on that day, especially if some of the teams meet with me next week (hint, hint). My apologies for having to change the due date after it was published.

Homework 7

Homework 7 is now available.

FCQs for CAETE Students

If you are enrolled as a CAETE student, you should have received an e-mail message asking you to fill out the FCQ (Faculty Course Questionnaires) for this class. Please do spend some time filling these out. I read all of the feedback that I receive from students and try to incorporate suggestions as best I can into subsequent courses. Thanks!

FCQs for in-class students will likely occur this week. I'll make an announcement here once I know which lecture it will be.

Grades for Homework 6

Grades for Homework 6 are now available on the Grades page. As usual, a spreadsheet is available to provide early feedback. Homework 7 will appear soon. And, I'm working my way through the graduate student presentations and have a goal of having the scores for that assignment posted by Friday.

Grades for Homework 5

The Grades page has been updated to include the scores for Homework 5. The grader is now working on Homework 6 and I'll be working on the graduate student presentations. A spreadsheet containing initial feedback for Homework 5 is also available. Contact the grader first if you have questions.

Quick Note on Homework 6

I'm traveling tonight to attend a conference for the next couple of days. As a result, I will not be able to send "Submission Received" messages for Homework 6 until early next week. So, don't expect an acknowledgement for Homework 6 over the weekend.

Grades for Homework 4

The Grades page has been updated to reflect the scores for Homework 4. A spreadsheet containing initial feedback is available here. Please talk to the grader first if you have additional questions. Thanks!

Lecture 25

The slides and example code for Lecture 25 are now available.

Lecture 24

The slides and sample code for Lecture 24 are now available.

Lecture 23

The slides and example code for Lecture 23 are now available. See you tomorrow!

Homework 6

Homework 6 is now available.

Homework 4 Update

The grader recently sent a message to a subset of the students in class asking for your help in finalizing the grading of homework 4. In particular, he will need your help clarifying problems with your code, helping him to get your code compiled on his system, getting the input files required by your system, or meeting with you to view your system running on your own machine. Please respond to his message as soon as possible, so we can wrap up the grading of homework 4 and move on to grading homework 5. Thank you.

Lecture 22

The slides and example code for Lecture 22 are now available.

Office Hours This Week

My office hours will be delayed by 30 minutes this week and will end at 3:20 PM so I can attend this week's colloquium. Therefore, my office hours on Thursday will be from 2:30 PM to 3:20 PM. FYI.

Lecture 21

The slides for Lecture 21 are now available.

Lecture 20

Lecture 20 is now available. Unfortunately, I discovered I wasn't ready to present a lecture on advanced iOS, so I'm skipping ahead to cover the next two chapters in our textbook (chapters 12 and 13). I don't expect you to have read these chapters by tomorrow's lecture. I hope to present advanced iOS topics sometime next week.

Feedback Spreadsheet for Homework 3

The spreadsheet containing initial feedback for homework 3 is now available.

Grades for Homework 3

Grades for Homework 3 are now available on the Grades page. If you received zero points, you either didn't submit the assignment or we discovered recently that you submitted the assignment but it didn't get to me. The grader will be grading those assignments soon and I'll get the Grades page updated with those scores after that. I'll be posting the graders spreadsheet later today to provide a first round of feedback.

Midterms

As advertised, I discussed the midterm during lecture today and handed back the graded exams to all students who attended. I then brought the exams of CAETE students to the CAETE office and the exams of in-class students to ECOT 717 (the Department of Computer Science's main office). CAETE will now arrange to send CAETE students their exams. Contact them if you have any questions.

For in-class students, you need to go to ECOT 717 and present your student id to our front-office admin, Louise Koulermos, and she will provide you with your exam. Please be nice to Louise! If you can't make it to ECOT 717, you can ask a friend to pick up your exam. In that situation, just provide your friend with an e-mail message that grants them permission to pick up your exam.

Please pick up your exam pronto!

Midterm

I have finished grading the midterm and the Grades page has been updated with your scores. I will discuss the midterm on Tuesday; if you are on campus, please be sure to come and pick-up your midterm. If you are a remote CAETE student, I will be giving CAETE your exam on Tuesday after the lecture and they will then forward it to you. If you do not pick up your exam on Tuesday, I will place the remainder of the exams up in ECOT 717. You can stop by and pick up your exam after the lecture on Tuesday as long as you bring a photo id. I will send out a reminder about this once the exams are up in ECOT 717. Below find some stats on the exam, which now has a maximum score of 90 points after I dropped page 7 of the exam (see the previous post).

Metric Score
Average 77 (86%)
Median 78 (87%)
Mode 83 (92%)
Min 44 (49%)
Max 88 (98%)


Page 7 of the Midterm

The questions on Page 7 of the midterm, concerning the dependency inversion principle, utterly decimated the class and prompted one student to draw a Llama rather than attempt to answer them. Since the average score for this page of the exam was a 3 (out of 10), I'm dropping the entire page and the midterm now has a maximum score of 90 points.


Presentations: Grad Students Don't Forget!

I'm getting e-mail today from some savvy graduate students that indicate they are working on their presentations this weekend to ensure they also have time to work on Homework 5. That's a very good idea!

Update on Project Teams

As I sign off from work today, we still have 24 students who need to join a project team and send me their project ideas. Please use the discussion forum to find potential teammates and then take your discussion off the mailing list to determine a project topic. Try to form a team ASAP and send me your project info over the weekend!

Homework 5

Homework 5 is now available. It is due on Monday, November 7th, meaning you have essentially two weeks (and three weekends) to work on it. It is a significant assignment, so do not delay. If you are not currently on a team, you need to get on a team immediately!

Project Team Info Due NOW!

Your project team info is due today. We have 95 students and 44 students still need to provide me with information as to what project team they are on and a description of their project idea. Homework 5 is about to come out and you need to be on a team and ready to work over the next two weeks on your semester project.

Lecture 18

The slides and sample code for Lecture 18 are now available.

Update on Midterm

It has become clear to me that I'm not going to have all the exams graded by tomorrow's lecture. Lecture 18 will be a lecture on Android. I will have the exams all graded by next week and we will spend Lecture 19 reviewing the midterm. My apologies for the delay.

Lecture 17

The slides and sample code for Lecture 17 are now available.

Semester Project

Details of the Semester Project have been posted. Please read ASAP and send me a list of your team members and a sketch of your project idea pronto. Thanks!

Pick a Topic and Pick a Team!

I have four graduate students that still need to pick a topic for the graduate student presentation. If you do not have a message from me that says "Topic approved" then you need to contact me and tell me what topic you are covering for your presentation.

Also, if you are not yet a member of a project team, you need to get on a team soon. I would love to see team sizes of 3-4 people. Having said that, I'm happy to accept teams of 2 to 5 people. The semester project will launch on Monday. So, please, if you are not on a team, please form a team this weekend. Use the posterous forum to form teams.

Finally, I'll be grading the midterms this weekend. I hope to have them graded by Thurday. That may change depending on when I receive the midterms from all of my CAETE students. Stay tuned.

Lecture 16

The slides and sample code for Lecture 16 is now available. We'll be discussing more examples of Android programming.

Pick a Topic!

If you are a graduate student and you have not yet selected a topic for your presentation, be sure to contact me by the end of this week. By my count, 18 graduate students still need to pick a topic. You can see what topics have already been selected (and which ones are still available) by visiting the Presentation assignment on this website and scrolling to the bottom of that page.

Midterm for On-Campus CAETE Students

If you are an on-campus student who is taking this class having enrolled via CAETE, please contact me and let me know if you would prefer to take the midterm with the in-class students next Tuesday. I'm trying to determine if I have enough seats in the classroom to fit everyone. If I have enough seats, then I'll be happy to host the on-campus CAETE students next Tuesday, otherwise, you'll have to take the test via a test proctor like the distance CAETE students. Thanks.

Get Your Sample Code, Here! Finest Quality!

The sample code for Lecture 9, Lecture 11, Lecture 12 & Lecture 13 is now available.

Lecture 13

The slides for Lecture 13 are now available.

Homework 2 Scores Updated

I finally had time to review the grading for Question 4 of Homework 2 and have updated the Grades page in response. In general, if you had points taken off for that question: you had 4 points added back. There were a few students, unfortunately, whose answers were such that I couldn't give any points back. If you were expecting your score to improve and it didn't change, then feel free to contact me and I'll discuss the situation with you.

Lecture 12

The slides for Lecture 12 are now available.

Lecture 11

The slides for Lecture 11 are now available.

Links related to Use Cases

Today I covered some resources that can be used to improve the use cases that you submit for Homework 4. First, the class website for the 2005 version of this class had a page pointing to use case examples from Alastair Cockburn's Writing Effective Use Cases book. On that page, take a look at the examples associated with slide 14 and slide 15. In particular, pay attention to how those examples make use of what they call "Alternatives" and they way they can associate multiple problems with a single action step. The other resource I pointed to was Lecture 7 from the Fall 2008 version of this class. In that lecture, there is a section that discusses "style guidelines" for writing use cases (slides 21 to 34), again taken from Cockburn's excellent book. I hope these two resources are useful for helping you to understand use cases a bit better and to write high-quality use cases for Homework 4.

Installing Android

I will be talking about the Android framework next week. If you have an interest in exploring the examples I will present next week or if you are thinking about doing a semester project using the Android framework, then you need to get a version of Android installed on one of your computers. I wrote up a post last Spring called Installing Android that covers the basic steps. Note: I make references to "API 9" in that article. That version is now out-of-date. You should instead simply install the latest version of Android that is available.

In addition, here are some pointers to additional resources that you may find useful in helping you get up the learning curve on Android.


Lecture 10

The slides for Lecture 10 are now available. The sample code for Lecture 10 is also available.

Grades for Homework 2

Grades for Homework 2 are now available on the Grades page. In addition, I am making available a PDF copy of the spreadsheet that the grader created while grading this assignment. It uses the same ids as the Grades page but also shows you the point breakdown for your assignment along with any comments the grader made.

Details on the Presentation Assignment

Graduate students need to create an in-depth presentation on an OO A&D topic. Details of the presentation assignment are now available.

Lecture 9

The slides for Lecture 9 are now available.

Homework 4

Homework 4 is now available. It is due on Monday, Oct. 3rd giving you two full weeks to work on it. Note: I updated the homework assignment at 9:30 PM on Sunday night to correct one mistake that i made in the problem description.

C++ has legs

A student sent me the following link to a recent presentation about C++ by Herb Sutter. This student pushed himself to use Java for Homework 3 but codes in C++ every day at work. Students used a wide array of programming languages for Homework 3 including Java, C++, ruby, python: it's great to see that programming languages are alive and well!

Homework Notifications

Please note: It will sometimes take me several days before I send an acknowledgment that I received your homework submission.

Upcoming Colloquium

This week, visiting professor Ken Sugawara from Tohoku Gakuin University in Japan is giving a colloquium—during the standard time slot of 3:30 PM - 4:30 PM on Thursdays in ECCR 265—on work related to robotics called Collective Motion of Self-Propelled Elements with Simple Dynamics. Prof. Sugawara is visiting CU this year while on sabbatical and will be working with our robotics professor, Nikolaus Correll.

Link to the Discussion Group

A link to the discussion group has been added to the Home page of this class website.

Grades for Homework 1

The grades for Homework 1 have now been posted on the Grades page. As you will see, the Grades page now displays the average score achieved on this assignment split between undergraduates and graduate students. Your id is now listed as a link that you can click to view a customized report of your grades throughout the semester. The "predicted grade" field is essentially meaningless at this point. As we have just one assignment, it is currently showing you what percentage you achieved on Homework 1 and how that percentage maps into a letter grade. The "predicted grade" field won't really mean anything until later in the semester after we have the midterm, more homeworks, and (for graduate students) the presentation grade.

If you have any questions about the grade you received, please contact the grader. I will be sending his name and e-mail address in a message to all of the enrolled students in class. For future assignments, in addition to the scores, I will also be posting the grader's feedback on the class website. We weren't quite ready to do that for this assignment, so you will need to send him e-mail to gain insight into your scores for this assignment. After you have had a chance to talk to the grader, if you still have questions, you can then arrange to meet with me to discuss your assignment and the grade you received.

Lecture 8

The slides for Lecture 8 are now available.

Sample Code for Lecture 7

The sample code for Lecture 7 is now available.

Lecture 7

Lecture 7 is now available.

Update to Submission Guidelines

I have moved the information on submission guidelines to the class website at the top of the Assignments page. Future assignments will reference this information rather than the place where it appears in the first lecture of the semester. The only change to the submission guidelines is that they have been updated to specify the name of the file that you will submit when sending me PDF files or ZIP archives. See the Assignments page for details.

How to Compute Your Id

To see your grades on this website (grades for Homework 1 will be published later today), you first need to calculate the id I'm using to represent you. To do this, start with your student id, take out the hyphens and finally write down the last five digits of the resulting number. If the first digit of the resulting number is zero, drop it.

Example 1: Assume your student number is 555-65-4321. After following the instructions above, you would be left with the number 54321.

Example 2: Assume your student number is 555-60-1234. After following the instructions above, you would be left with the number 1234.

Now, take your last name, make it lower case, and cycle through its characters. Assume that 'a' is mapped to 1, 'b' to 2, ..., and 'z' is mapped to 26. For this class, there are two special characters. A space character maps to -64 and a hyphen maps to -51. Map each character in your last name to its value and add up all the values to calculate a sum. Add this sum to the number above to calculate your id.

Grades Page

In anticipation of posting the scores for Homework 1, I've added a Grades page to this website. Currently, it lists two tables of "ids". The first table is a list of ids corresponding to the undergraduates enrolled in this class. The second table lists the ids of the graduate students (both in-class and CAETE) enrolled in the class.

Note: If you are an undergraduate student enrolled in the class via CAETE, then your id will appear in the graduate student table. Historically, all CAETE students were graduate students and I'm not going to take the time to distinguish between undergraduates and graduate students enrolled via CAETE.

In my next post, I will explain the algorithm for how you should compute your id. You should, for now, use that algorithm to confirm that the id you expected is listed on the Grades page. If it is not, shoot me an e-mail and I'll supply you with additional details.

OmniGraffle Stencils for UML 2

Thanks to Jeff Hoehl for pointing me at a free stencil for OmniGraffle that provides fairly comprehensive support for UML 2. If you have access to OmniGraffle check it out.

Homework 3 Clarifications

Homework 3 has been updated with the following clarifications.

1. A customer can have more than one active rental. That is, they can show up on day 1 and rent 1 video for 5 nights. They can then show up on day 2 and rent another video for 4 nights. As long as they do not have more than 3 videos rented, they are allowed to have multiple rentals.

2. Returns occur at the beginning of the day before the store opens for business. A video rented for one night is available to customers the very next day; that's because the customer rented the video for one night, watched it, and got it back to the store early the next morning.

3. Your program should be single-threaded; you do not need to handle the case of multiple customers trying to rent videos concurrently.

Homework 3

Homework 3 is now available. Don't wait until the last minute to start working on it!

Videos of Class Lectures

If you are an in-class student, you should have received a message from me containing a URL that points you to videos of the class lectures. If you did not receive that message, let me know. Please do not share this URL; it is meant for in-class students only and if this privilege gets abused, it could be taken away from future in-class students. Thanks!

Tools for Drawing UML Diagrams

I've been asked by several students what program I use to create UML diagrams. I use a program called OmniGraffle Pro from the excellent Omni Group. A freeware program that might be helpful is ArgoUML. Otherwise, any "vector drawing program" should fit the bill. What you want to avoid are "paint programs". Hope this helps.

Lecture 6 Sample Code

The sample code for Lecture 6 is available. It contains the same example written in three different programming languages: Java, Objective-C, Python. Enjoy!

Lecture 6

The slides for Lecture 6 are now available.

Lecture 5

The slides for Lecture 5 are now available.

Our Department On Facebook

Our department has a Facebook page. Take a look and "like" us to keep track of department-related announcements.

Homework 2

Homework 2 is now available.

Lecture 4 Sample Code

Sample code for Lecture 4 is now available.

Lecture 4

The slides for Lecture 4 are now available.

Ice Cream Social

Don't miss today's Ice Cream Social hosted today by the Department of Computer Science at 3:30 PM in ECCR 265. This event is intended to welcome back the entire CS community, provide information about the department and our colloquium series and introduce the students to our four active student groups: CSUAC, GameDev, ACM, and Women in Computing. Please try to attend the event if you can!

Change in Office Hours

I'm slightly changing my office hours from 2 PM to 4 PM on Thursdays to 2 PM to 3:25 PM on Thursdays. The reason? I forgot about the department colloquium which is held on Thursdays from 3:30 PM to 4:30 PM. I may not attend every colloquium. On those days that I don't attend, I'll hold office hours until 4 PM. Otherwise, I'll wrap up office hours at 3:25 PM so I can dash over to ECCR 265 to attend the talk.

Three C.S. Internships available at Windward Studios

Below is an announcement concerning internship opportunities at Windward Studios, the company that hosted last weekend's Code War.

===================================================

Windward, the software company that sponsored the recent Code War at CU Boulder, as well as the Cubicle War series of videos, has 3 internship openings. If you enjoy being given work that pushes you to your limit, and where you are given minimal guidance so you have the responsibility to craft solutions – then an internship at Windward will give you the most challenging job around.

We have two openings in our dev group where you will be writing unit tests (all interns start with that) and then programming which can ran the gamut from new features in our online store to adding or improving functionality in our products. Our environment is about 1/3 Java and 2/3 C#. We have server apps (Java .NET, & SharePoint) and desktop apps (Windows – mostly on Office).

We have one opening in our marketing group where you will be evaluating competing products and assisting on the technical side in our social media marketing efforts. If you have an interest in social media and guerrilla marketing, this is a position where you will learn a lot.

Lecture 2 Sample Code

The sample code for Lecture 2 is now available.

Lecture 3

The slides for Lecture 3 are now available.

CS Welcome Back Fest

In addition to the Department's Ice Cream Social that is planned for Thursday, September 1st from 3:30 PM to 4:30 PM in ECCR 265, the CS Undergraduate Advisory Committee is hosting its own welcome back event. Details are below! Please do what you can to attend both events!

========================================================

What: CS Welcome Back Fest,
Who: CS students (majors, minors, grad students)
When: Wednesday August 31st, 5:15pm - 7:30pm
Where: DLC Lobby

Description:

+ A welcome back meeting for all CS students
+ Free food + drinks 
+ Prizes: 1 XBOX 360 & 2 Ipod Shuffles!!
+ Highlight: Techstars companies Orbotix and Occipital will be there to present cool stuff and talk about their companies.

RSVP for the event at this URL: http://goo.gl/QVuqR

Room Change!

I have some good news for the graduate students that were stuck on the waiting list to get into this class. We were able to arrange a swap with another CAETE class that is located in a larger room. As a result, I anticipate being able to get all of the graduate students enrolled. Starting next Tuesday, we will switch permanently to room ECCS 1B12. There will be signs posted to remind you of the change next week. Yes!

Lecture 2

The slides for Lecture 2 are now available.

Homework 1

Homework 1 is now available.

Lecture 1

Thanks very much for an enjoyable first lecture. The slides for Lecture 1 are now available. See you on Thursday! Please try to read Chapter 1 of the textbook by Thursday's lecture.

Syllabus Statements

Each semester, the University asks that students be reminded of information and policies concerning Disability Accommodations, Religious Observances, Classroom Behavior, Discrimination and Harassment, and the Honor Code. That information is located here on the Syllabus Statements page.

Getting Started

I have begun work on the class website for CSCI 4448/5448 for the Fall 2011 semester. Stay tuned for rapid updates to this website as I get ready for the first lecture on Tuesday.


© Kenneth M. Anderson, 2011