CSCI 330 announcements: Spring 2020

Final exam: details (and eventually the exam itself) are available at

VIU covid-19 info and FAQ

Paused classes and switch to alternative delivery: I'm sure you've all been sent the university email that classes are officially paused for the week of March 16-20, after which we will be completing the term using "alternative delivery" methods.

I've posted a preliminary version of the alternative-delivery plan for CSCI 330, with video discussion available on viutube or youtube
(Whoops, sorry folks, the audio on that first video is fine in headphones, but very low when played from the desktop. I'll tweak that for future videos.)

Apr 29: markingFeedback repo

The final exam results and grades are now posted, feedback is available in the csci330 markingFeedback git repo. The marks were pretty good in general - the class average for the final exam was just under 72%, and for the course as a whole just over 72%.

Apr 24: markingFeedback repo

If you're trying to access your feedback repository for the course, the following should work:
git clone csci:csci330/$USER/markingFeedback

Apr 23: Final exam solutions
I've posted preliminary sample solutions for the final exam.

Apr 22: Git feedback repository
I've updated the csci330 feedback repositories (markingFeedback) to include the feedback for lab10, the bonus lab, the project, and a copy of your final exam submission ... the last just so you know I got the beastie ok :-)

Apr 21: Final exam posted
The csci 330 final exam questions have now been posted in three locations: It is due at 8:00am (PDT) Tuesday, April 21st - all remaining details are given in the exam itself.

Apr 19: lab 10/11 solutions
The sample solutions are now posted for lab 10 and the bonus lab (11).

Apr 15: lab 9 and other solutions
Sample solutions are now posted for lab 9.
I'll post a sample solution for the project Friday afternoon and one for lab 10 on Sunday (once the last late submission deadlines have passed).

Apr 14: Exam time frame Note that the CSCI 330 final exam is still only intended to take 3 hours to complete: the 24 hour window to obtain/return the exam is simply there to support students in time zones around the world and to support students who encounter technical difficulties obtaining/submitting the exam. It should in no way interfere with your ability to complete any other scheduled exams in that period (e.g. the CSCI 310 final).

Apr 8: Exam prep video
I've posted the exam prep video for Thursdays lecture, and will continue to be on discord/email this week and next (usual times: Tue 10-2:30, Wed 1-3:30, Thu 11:30-1) if you have questions. I've also posted several videos where we work out sample solutions to some suitable questions from the 2016 final exam.

Apr 3: Project extension, lab 8 solutions, lab marks
After a number of requests, I've agreed to extend the project submission deadline to noon on Tuesday April 14th so folks have the long weekend to work on it if desired.

The lab 7 and 8 marks and sample solutions have been posted, and feedback pushed to the "markingFeedback" repos.

Apr 3: lab 7 solutions, grading, and content update
I've posted lab 7 sample solutions, still working on the marking for it. Once I've finished the marking I'll push the feedback to your csci330 markingFeedback repo, which you should see appearing soonly.

The last of the content/new material videos have been posted, next week I'll add some on the final exam format, topics, practice questions, and some exam-prep material.

Apr 2: zoom update/vulnerabilities, content update
Hi folks, just a heads-up that if you have zoom installed on mac/windows you should be sure to apply their latest updates - a couple of significant security flaws addressed in them - and generally avoid clicking on links provided within Zoom chat sessions.

The lecture slides for next week have all been posted, still working on the videos to go with them.

Mar 31: lecture videos and slides
OK, the last of the video material for tomorrow's lecture has been posted, note that the smart pointer material will be relevant for those of you doing the bonus lab (11).

Mar 30: lecture videos and slides
The lecture videos should be complete/posted through Tuesday's (31st) lecture, and that should cover everything needed through lab 10. (Material for the bonus lab on smart pointers will be in the lecture of Apr. 7th.)

The slides are posted for Thursdays (Apr. 2nd) lecture, videos should be up tomorrow.

Mar 26: lab videos and lab 9 glitch
The varArg.c in lab 9 contains a glitch - in it, I have it passing integer values to the function, when it is expecting doubles. As a result, va_arg is misinterpretting the data on the stack, and giving some very interesting (and unexpected) results.

This is a good (though unintended) illustration of the fact that you must pass the data values as the type expected, in this case you must pass the parameters as doubles, not ints. va_arg just looks at the bit patterns and treats them as the expected type, so (for instance) an integer value of 4 does NOT match the bit pattern for a double 4. It might even be storing them as ints (not longs) in this case, so even the stack layout is not what va_arg is expecting.

I've pushed a corrected version of the lab, but if you've already forked/cloned then you can simply change the data types passed to doubles.

OK, the slides, examples, VIUTube and YouTube videos for all remaining labs (including the bonus lab) are posted.

Mar 24: Contact times, content update, lab 6
Just to confirm: I'll be available on discord and the VIULearn 330 discussion forum during "regular" office/lab/lecture hours the next few weeks, basically Tuesday 10-2:30, Wednesday 1-3:30, Thursday 11:30-1.

I believe all slides, C/C++ examples, and videos for this week are now accessible, holler if you run across any issues.

Lab 6 sample solutions and marks are posted, I've pushed feedback to your lab6_grade repos.

Mar 23: content update
OK, all the content for Tuesday's lecture and this week's labs is now posted, the slides are up for Thursday's lecture (hopefully videos will be up today/tomorrow).

Just an fyi: the lab 6 marking has fallen behind getting other things up to speed, hopefully if I can finish this week's lectures today then I'll get back on marking lab 6 tomorrow.

Mar 22: lab7.c typo in comment
Whoops, sorry folks, the lab7.c file contains a comment talking about "two structs", when there is of course only one.

Mar 19: Discussion boards/forums
The CSCI 330 board is up and running on the student discord site, I'll try to be on there during our regular lab/lecture times once things kick off next week.

I've also opened up discussion forums over on VIULearn, one each for the project, labs, and exam. Let me know if there are any posting issues there, still getting the hang of the various settings/options.

Mar 17: Video posting, updates on Q&A material, office hours, final exam, marks/feedback
OK, as the videofication process begins ... I've posted the video for lab 8, and the first couple of lecture topics (without the sound issues this time!), links are on the updates page, I'll just continue adding things incrementally

I've revised the updates page to reflect changes to the plan for office hours, the Q & A sessions, and the final exam.

I'm currently experimenting with the git features for providing marks/feedback, so don't panic if there's suddenly an empty "lab6_grades" repository under your name - I will get the marks in there eventually :-)

Mar 16: Change of office hours this week
For the week of Mar 16-20 my office hours will be Wed/Fri 11:30-1

Mar 10: lab5 sample solutions
I've posted sample solutions for lab 5

Mar 4: lab4 sample solutions and project sessions
I've posted sample solutions for lab 4

Starting on the 11th, I'll be in the lab (115) from 1:30-2:30 on Wednesdays if folks want lex/yacc help on the course project.

Feb 18: midterm and lab3 sample solutions
I've posted sample solutions for lab 3 and the midterm.

Feb 11: lab 2 solution , midterm reminder
I've posted a lab 2 sample solution
Just a reminder the midterm will be held in class this Thursday, Feb. 13th (review session in class today).
Note on midterm: In the review lecture (Tuesday the 11th) I'll talk about let-over-lambda, and question (5ii) on the exam will ask about this. I'm going to treat (5ii) as a bonus question since we really didn't get to the topic when I'd planned.

Feb 4: columnizer example from class
Here's the columnizer code that was the basis for the example at the end of today's lecture.

Feb 3: lab 1 solution
I've posted a lab 1 sample solution

Jan 29: Common lisp errors
I've posted a short list of common lisp errors and associated error messages ... might help with some debugging

Jan 28: Lab 2 readme fix
There was a glitch in the contains algorithm in the original repo README.
A corrected version was posted to the repo 9:30am Tues Jan 28, but can also be seen here.
The "contains" call in the second to last line of the contains algorithm changed from contains(E, L, N-1) to contains(E, tail(L), N-1).

Jan 21: Change of office hours
Just confirming that the office hours will be Tue 10-11:30, Wed 1-2:30 (hopefully giving more folks a shot at being able to make at least one of them)

Jan 17: Project guidance
We'll talk about the project in detail about halfway through the course, but in case you want to get started early I've added a page of starter code and discussion that talks about how to tackle each of the various steps involved.

Jan 16: Weather notes
Well, I'm sure you've seen campus is closed again this morning until at least 12:30, so that pretty much polishes off this week for 330.

I've updated the topics page and labs page with the new schedule, basically the labs all get pushed back by a week and the lecture material gets juggled around and compressed a bit.

Jan 14: Weather notes , and course repositories
Given today's campus closure (and what seems like a good chance of a closure tomorrow as well), we'll pretty much just shift the lecture schedule back by a day, and spend part of Thursday's lecture on the background/requirements for lab 1. The topics/lecture plan has been updated.

All the lab and project repositories have now been posted, (lab11 is the bonus lab), let me know if you have problems accessing any of them.

Jan 6: Intro
Labs will begin during the second week of class (Jan. 13-15)
Currently the git repositories for labs 1-9 have been posted, along with the project repository. (Repositories for lab 10 and the bonus lab will be made available later in the term.)

Google talk: Jan 9th @4:30
If you're able to attend, VIU's Developer Student Club is bringing in Google Developer Advocate Ryan Matsumoto to give a presentation on Google APIs: Thursday January 9th 4:30-6:30pm, building 210, room 275.

If your git fork/clone failed, and all you see is a single README file (e.g. if you forgot to fork, or made a mistake in the fork command but did the clone anyway), you can try the following fix:
  1. Remove the local directory, e.g.
    rm -r assign1
  2. Move the mistakenly forked central repository to the trash repository, e.g.
    ssh csci D trash csci330/$USER/assign1
  3. Go back to your fork/clone and try again

If you would like to see what you have put in the trash,
ssh csci D list-trash
If you would like to get something out of the trash, use the name/date of the file to restore as seen in the listing above, e.g.
ssh csci D restore csci330/$USER/assign1/2016-02-10_14:00:00