Rust and Go Seminar
Instructor: Dr. John F. Santore
Phone: 508-531-2226
Office: Science Center 333
E-Mail: jsantore@bridgew.edu
Instructor Web Page: http://webhost.bridgew.edu/jsantore/
Course Web Page:
http://webhost.bridgew.edu/jsantore/Fall2018/RustGo/
Office Hours for Fall 2018:
Mon 10-11am
Tues: 11-noon
Wed: 5-5:50pm
Fri: 10-11am
or by appointment
I also will take
appointments if you cannot make my other office hours, however, I
generally have meetings and work prepared for a day or two ahead
so plan on about 48 hours from the time I get your request to us
being able to meet.
Course Description:
In this course students and
the instructor will explore two up and coming programming languages
together, discovering the strengths and weaknesses of the two and
building several projects to help that understanding.
By the end of the course each student:
Can write programs in Go
(Golang)
Can write programs in
Rust
understands and can
articulate the strengths and weaknesses of the two languages
Has explored and can articulate the most common use cases for each programming language
Can use the toolchain for each language effectively (developing, testing, debugging)
Two required Textbooks: | |
Title: |
the Go Programming Language |
Authors: | Alan Donovan and Brian Kernighan |
ISBN | 978-0-13-419044-0 |
Title: |
Programming Rust |
Authors: |
Joim Blandy and Jason Orendorff |
ISBN |
978-1491927281 |
Anyone who has special needs should contact me in the first week of classes so that reasonable accommodations can be agreed on.
See the BSU Academic Integrity statement for a complete description of the academic integrity procedure at Bridgewater.
Academic integrity will be taken very seriously in this class. All individual work must be your own. If you cheat or otherwise represent the work of others as your own. You will receive an F for the course.
Guidelines for proper academic integrity:
Discussing problems with your classmates can help you understand the problems and kinds of solutions to those problems that you will learn about in this class. In an effort to make in clear what sort of discussions are appropriate and encouraged in this class and which cross the line to academic dishonesty I use the following guidelines: You may discuss any out of class problem I assign in this class with your classmates or other so long as no one is using any sort of recording implement including, but not limited to, computers, digital recorders, pens, pencils, phones etc. This lets you talk about theoretical solutions without sharing the actual implementations. As soon as anyone in the group is typing, writing etc, all conversations must stop. You may look at someone else's program code only very briefly in order to spot a simple syntax error. As a rule of thumb, if you find yourself looking at someone else's code for more than about 30-45 seconds it is probably time to stop. If you are having trouble with your program, come to the instructors office hours for more help.
All in class exams and quizzes are closed book and closed neighbor. If you are found using a data storage device of any kind during one of these evaluations, you will be failed for the course.
Of course for your group
work, your entire group is intended to produce a single deliverable
and are expected to work together on all parts of that so the above
does not apply to members of a group working together on their group
work.
Standards for in class behavior:
You are all adults and are expected to act as adults in this class. While questions are encouraged in this class, if a particular line of questioning is taking us too far afield, I will ask the student to come by my office hours or to see me after class.
Cell phones, pagers, electronic organizers and other devises should be silenced while in class. If you work of EMS or something similar, please turn your cell phones/ pagers etc to vibrate mode so that you are not disrupting others in the class.
In the unlikely case of trouble makers in the class, those who are simply attempting to disrupt the class will be asked to stop; those who will not, will be referred to the college for appropriate action.
Week |
Topic |
Week 1 | Introduction to the class |
Week 2 | Introduction to Go |
Week 3 | Introduction to Rust |
Week 4 | Go and Web assembly |
Week 5 |
Rust and WebAssembly |
Week 6 |
Automated Testing in Go and Rust |
Week 7 |
Midterm and catchup |
Week 8 |
Go for large scale concurrent server programming |
Week 9 |
Rust for Embedded and IoT |
Week 10 |
Go with embedded and IoT (Gobot etc) |
Week 11 |
Rust working with other code |
Week 12 |
Go working with other code. |
Week 13 |
Student Suggested topics or instructor fill in rust |
Week 14 |
Student Suggested topics or instructor fill in GO |
Final Exam week |