What's New in CSCI 2341: Current (and Old) News
A "news item" on this page of "course news" appears under the date when it was placed on the page. The most recent item appears first. Scroll down for "older news". Students in this course are expected to keep up to date with the content of this page, and should also be aware of the items at the bottom of the page which are not date-specific and have been present since the beginning of the course.
The final grades have been posted to Banner and should be available after the next "Banner refresh" if they are not already. Here is a summary of the class results:
A+ A A- B+ B B- C+ C C- D F Total 13 4 2 0 2 2 3 0 1 0 4 31
In today's (last of the term) session we first completed our discussion of the Java versions of HashSet, TreeSet, HashMap, TreeMap, and PriorityQueue. Then we looked at the List.of(), Set.of() and Map.of() methods that were introduced in Java 9. These are very convenient for creating relatively small immutable collections of values "on the fly". Finally, we had an overview of what to expect on the final exam.
>= 30 >=25 >=20 >=15 >=10 >=5 >0 =0 Total 15 7 3 0 2 0 1 4 32As you can see, almost half of the class achieved the maximum of 30 points. Two students got exactly 30 points, and four students got 40 points (the absolute maximum since that represents full value on each of the ten hands-on exercises). Congratulations to all, and especially to the 40-pointers!
Sunday, November 30, 2025
The hands-on exercise for the coming week of Monday, December1 (DigitSumFactor) is now available.
Wednesday, November 26, 2025
In today's session we first discussed zyBook Section 7.2. Then we used a lot of hand-drawn pictures to illustrate the binary search tree material in zyBook Sections 7.3 to 7.5, 7.7 and 7.9. We also showed one method of "balancing" a binary search tree not covered in the zyBook. Once again a reminder: If you missed this session (and quite a few did) you should watch the recording, since there is likely to be one or more final exam questions on binary search trees.
Monday, November 24, 2025
inorder, preorder,
postorder and level-order tree traversals
of any binary tree. Finally we defined the
binary search tree property and illustrated several binary
search trees (including a very "bad" one and a very "good" one). The
zyBook sections covering this material started with Section 7.1 but we
also need to discuss other material from those sections, starting next
time.
SumIntegersAndReals). The hands-on exercise marks on
Brightspace have been updated to include today's results. Eleven class
members have now achieved the maximum of 30 points in that category. I
have, of course, recorded any extra points that you have (some have 36,
for example) but the most you will see in Brightspace is 30. Even if you
now have the maximum I hope you will do the last hands-on-exercise next
week, and that final exercise will give those who have not yet reached
the maximum an opportunity to accumulate up to another four points.
Sunday, November 23, 2025
The hands-on exercise for the coming week (SumIntegersAndReals) is now available.
Friday, November 21, 2025
Update to Submission 05
There is a new version of the Graph.java class file in $sup05, so you
should download this revised version. Either the older one or this newer
one will work fine. However the older one is a more complete Graph class
from the zyBook and it contains more methods than you need for this
submission, so you might find it more confusing to work with.
Wednesday, November 19, 2025
The grades for Submission 04 have now been posted on Brightspace.
Wednesday, November 19, 2025
In today's session we covered zyBook Sections 6.9 to 6.11, and also discussed and illustrated with pictures and jshell the new Instructor Note added to zyBook Section 6.4. If you missed this you should watch the recording since there is likely to be a final exam question on linear probing in a hash table that uses open addressing.
Monday, November 17, 2025
Don't forget:
zyBook PCLAss5 has been posted since last week, and is due this coming
Sunday, November 23.
Sunday, November 16, 2025
The hands-on activity (SortUniqueNamesFromFile) for the coming week of Monday, November 17 is now available.
Wednesday, November 12, 2025
The last zyBook assignment (PCLAss5) has now been posted, and is due Sunday, November 23. We will be covering additional material in the zyBook on binary trees that you will be responsible for on the final exam but for which there will be no zyBook assignment.
Wednesday, November 5, 2025
In today's session we covered the Java implementations of Stack, Queue and Deque using the ArrayDeque, following the general recommendation, also pointing out that Java has a now-deprecated Stack class. We also started our discussion of hashing by looking at the Map interface in zyBook Section 6.1. No one took advantage of my offer to answer questions re Submission 04 at the end of the session. That submission is due at the end of next week's fall break on Sunday, November 16. Note as well that the last zyBook assignment (PCLAss5) has been deactivated temporarily until I have determined exactly what I can include in it.
Here are a couple of things you might be interested in ...
Innovation
Sprints are 4-hour solution development events where students from
various universities in Nova Scotia come together to address and resolve
real-life challenges faced by a local business. This is a great opportunity
to network, connect with a business, and gain experiential learning that
can be recorded on your Co-Curricular Records. You will compete as a team
and take home first, second, and third prizes ($1,000, $700, and $300,
respectively).
November 15th Sprint w/ KingsPIER @ SMU Campus
This Sprint will feature KingsPIER, a growing local vintage business based
in Halifax. It will take place at SMU Sobey Inspiration Hub 212 on
Saturday, November 15, from 12:30 to 4:30 p.m. Register Here
November 29th Sprint w/ High Powered Customs @ NSCC Ackerly (Dartmouth
Campus)
Students will tackle a challenge from High Powered Customs, a custom
automotive and fabrication company. This Sprint is set for Friday, November
29, and will be held at the NSCC Dartmouth Campus (The Bays/Makerspace)
from 12:30 to 4:30 p.m. Register Here
Monday, November 3, 2025
Sunday, November 2, 2025
The hands-on exercise for the coming week of November 3 (OddDigitSums) is now available. In this and all subsequent weekly hands-on exercises, remember to always be on the lookout for opportunities to use Java's streams, pipelines and lambda functions.
Wednesday, October 29, 2025
In today's lesson we covered zyBook Sections 4.4 to 4.12, emphasizing the
similarities and differences between singly-linked lists and doubly-linked
lists, how insertion sort or merge sort are the only sorts of the ones that
we discussed that one should consider using with linked lists (though
sorting with array-based lists is much to be preferred in any case), how a
"dummy node" can be useful in a list implementation using linked nodes, and
how ArrayLists are implemented behind the scenes.
Finally, we pointed out that some students are still not using the
instructor-supplied classes the way they should be used in the Java program
submissions, and though it is permissible to use AI for assistance in any
aspect of your work in this course, no "AI solutions" should be copied and
submitted as your own. If this has taken place, the marker is likely to
notice and take appropriate action. If this happens, it is essentially
plagiarism, and though no instances have been reported to any higher
authority at this point, the marks on some assignments are not what they
might have been if the work had been done by the student submitting, rather
than (obviously) by an AI tool of some kind.
Monday, October 27, 2025
Sunday, October 26, 2025
The hands-on exercise for the coming week (SortCLNames) involves sorting names entered on the command line in various ways, and is now available. Please do NOT write your own sort routines ... use instead the built-in Java sort methods that we have discussed, with or without modifications as appropriate, and look for any opportunity to use a lambda function to achieve any sort method modification that you need.
Wednesday, October 22, 2025
Two big takeaways from today's session: First, when you're working with linked structures there is always a nice picture. Second, you should get into the habit of drawing those pictures to help you understand what the code is doing.
In today's session we discussed singly-linked nodes, using Node.java and TestNode.java in LinkedNodes and drawing the corresponding pictures to illustrate each statement as it executes. If you missed this session, I highly recommend that you watch the recording. We also saw a couple of new techniques that you might find helpful when using tmux.
Monday, October 20, 2025
Sunday, October 19, 2025
The hand-on exercise (CheckPalindrome) for the coming week is now available.
Wednesday, October 15, 2025
The final exam in CSCI 2341 will be online in Brightspace, and the date and time are now posted on Banner: Wednesday, December 17 from 10am to 1pm.
In today's session we began with a review of Java built-in sorting using Arrays.sort() and Collections.sort(), with and without a second (preferably lambda-function) parameter to modify the sorting criterion. Then we compared and contrasted the Comparable<> and Comparator<> interfaces for sorting. Finally we introduced the ideas of Java streams and piplines and discussed the first example suggested in the readme.txt of the Java7VsJava8 subdirectory.
Wednesday, October 8, 2025
Important Note re Submission 02
There was a typo in the VigEncDec2.txt file so you should make new copies
of both of the supplied files for Submission 02 since both files contain
the typo (which will be pointed out in today's discussion of Submission 02
at the end of the regular session).
In today's session we covered zyBook Sections 3.7 and 3.8 and started our discussion of Section 2.9 by looking at the corresponding code on the server. Make sure you understand Arrays.sort() and Collections.sort() and how a simple "lambda function" can be used to modify the sort() method in each case. Also make sure you understand the Comparable<> interface.
At the end of the second session I took some time to discuss Submission 02, which is due this coming weekend. There were no questions, so I showed a typical example of encoding and decoding, as well as the errors that have to be recognized and reported. I thought I spotted another typo, but I later realized that it was in fact not a typo, so if you are watching the recording, just ignore the part where I mention a second typo.
Monday, October 6, 2025
The hands-on exercise evaluations would go a lot more smoothly and with less frustration for all concerned if more attention was paid to item 1 in the list of "General rules for the weekly hands-on exercises" ...
Sunday, October 5, 2025
The hands-on exercise for the coming week (SwitchDigitPairs) is now available.
Wednesday, October 1, 2025
In today's session we covered zyBook Sections 3.2 to 3.4 and started our discussion of the associated Java code available on our server.
Tuesday, September 30, 2025
The Hands-On Exercise marks have been udated in Brightspace to include the latest one (JarSample). The current maximum point value is 12.
Monday, September 29, 2025
Special Note re Extension of Submission 01 Marking
Quite a few students did not submit the required files for Submission 01,
for various reasons, one of which was not knowing how to create the
required executable jar file. In the last part of today's second session I
went through all of the required steps for doing that in the context of
today's hands-on exercise, but the procedure is essentially the same for
the submissions so you should find it helpful to watch the recording to
revisit the procedure (or see it for the first time). In any case, our TA
(Sean MacDougall) has very generously offered to mark or re-mark Submission
01 submissions. To take advantage of this (one-time) offer you need to fix
whatever was wrong or missing with your Submission 01 files, then resubmit
and send an email to Sean (his email is on the legacy course website, under
Course Infrastructure) telling him that you are ready for a second look,
and be sure to include your account username.
And you must do this before
11:59pm this Friday, October 3, 2025.
Sunday, September 28, 2025
The hands-on activity for the coming week of September 29 is now available. This hands-on activity does not require writing any Java code, but it does require the understanding of what we have covered, and the ability to put together several "parts" to get a working "whole".
Friday, September 26, 2025
Your s01 submission directory must contain
only the files required to be submitted by the Submission
01 description, no more and no fewer, and of course
the submitted files must have the required names or the
marker's script will not find them. If you do not follow these simple rules
for each submission, including this first one, you can expect to lose
points. [And note that one of the reasons I have posted this reminder note
is that I have looked at some of what has been submitted already and it is
clear that no everyone is following the rules!]
Wednesday, September 24, 2025
Monday, September 22, 2025
Sunday, September 21, 2025
The hands-on exercise for the coming week (MakeGrid) is now available under the Lectures and Labs | Lab Activities link.
Thursday, September 18, 2025
The marks (out of 4) on the first hands-on exercise (RotateLeft) have been posted under Grades on the Brightspace course page.
Wednesday, September 17, 2025
Today we had the first of our weekly hands-on exercises, so let me summarize with the following list items:
Monday, September 15, 2025
First, since we did not discuss anything in the zyBook today, there is a zyBook reading assignment for next Monday: Sections 2.4 to 2.8. Both of today's sessions (the 10am one and the 11:30am one) were devoted to covering a large number of items that will be critical to your work on the upcoming hands-on exercises and programming assignments. It was disappointing to see that only 19 of the 35 students registered in the class attended both sessions. There were another 8 students who attended only one session or part of one session, and yet another 8 students who missed both sessions completely. If you missed either session, or both sessions, you really need to watch the recording(s) of what you missed as soon as possible, or you may have serious difficulties completing the upcoming work. We discussed the hands-on activities, which will start this Wednesday, as well as Submission 01, which is due a week from Sunday, and other items from the list of Linux commands and special commands set up to work in your Linux accounts, and which will be either necessary or very convenient when you are working on the server.
Sunday, September 14, 2025
The server accounts are now ready, so you can now log in to your personal account for this course on the server. Get your account username from this spreadsheet; then read and follow the instructions in the following paragraph.
When you get your account, you should get ready for the first of the weekly hands-on exercises, which will take place in Wednesday's 10am session (this week only, after that these exercises will take place in the second Monday session). So be sure to try for yourself the steps we illustrated in class this past week. That is, first log in to your account on the csci.cs-smu.ca server with your A-number password (using whatever method you have decided to use for making the connection to the server from your personal computer). Second, change your password using the passwd command. Do not modify any of the files or subdirectories you find in your account when you log in. Then create two new subdirectories in your server account called "working" and "examples_java (for example, as we recommended, but you can call them whatever you like) to use for testing sample programs and developing your own programs. Try out some Linux commands and the Vim editor so that you can start getting comfortable with both, and are ready for this week's hands-on exercise, which we will discuss on Monday.
Wednesday, September 10, 2025
Monday, September 8, 2025
Wednesday, September 3, 2025
Wednesday, September 3, 2025 (Starting Date)
An email message was sent out to all those enrolled in the class as of August 25, 2025. If you did not get that email, or did not read it, you can read the content here, and you should do so. An earlier email recommending that everyone in the course get some familiarity with Linux and the vim editor was sent out on July 21, and you can also read that one here.
Don't confuse these three very different accounts:
u01, u02,
u03, and so on. When the accounts become available, you can
get your account username from this
Excel spreadsheet. The password for your account is your A-number.
The web address of the server where the account is located is
csci.cs-smu.ca.
Important Java Notes to Remember
Other Important Notes re Declaring Your Major, and the Science Advisor and Program Coordinators:
SMU Programming Team
Are you passionate about coding, problem-solving, and teamwork? We’re excited to announce that recruitment is now open for the SMU Programming Team! Whether you're an experienced programmer or just starting out, this is a great opportunity to sharpen your skills, collaborate with peers, and represent SMU in programming competitions. Interested? Please contact Dr. Akiyama at Yasushi.Akiyama@smu.ca no later than Friday, September 12, to express your interest or ask any questions. We look forward to building a strong, creative, and enthusiastic team. Don’t miss out! Finally, the Competitive Code group meets in SH421 Tuesdays at 4pm.
Math Huskies
This is the math competitions club at SMU. We learn problem solving techniques and try fun and interesting math problems. We usually send a team to the Science Atlantic competition in mid October (in Sydney, NS this year), and many students write the Putnam exam (see https://maa.org/putnam/) in early December (written locally). We will meet Wednesdays from 15:30 - 17:00 in Atrium 214a, starting on September 10th. If you can't make the firs meeting but would like to be on the mailing list, please e-mail james.rickards@smu.ca.
Undergraduate Math Seminars
These will be held approximately every other Wednesday from 11:30 - 12:30 in Atrium 214a. These will be undergraduate-accessible lectures on interesting math topics, with tea and cookies provided! Weeks with a seminar will be posted here, and there will also be reminder e-mails sent to math majors and posters put up in the math hallway. We expect the first two seminars to run on September 17th and October 1st, but keep posted for final confirmation.
SMU Entrepreneurship Centre
Everyone should be aware of the Centre and what they have to offer ...
The Arthur L. Irving Entrepreneurship Centre is a vibrant community where students discover their passion and purpose. Surrounded by like-minded peers, mentors, alumni and business leaders, students gain the skills, experience and confidence to take chances, test ideas and build connections in a supportive, energetic and “anything is possible” environment.
At the centre, students learn to think like entrepreneurs. Entrepreneurial thinking is not only for those who want to start a business, it’s a mindset that fosters creativity, problem-solving, and resiliency, valuable skills in any career path. We believe entrepreneurial thinking can be learned and we teach it.
Students benefit from hands-on training, mentorship, coaching and funding opportunities, including honoraria, awards and wage subsidies, all while engaging with centre staff and a vibrant support community.
Visit our website at arthurlirvingec.ca to activate your access to our programs.