MSDS 431: Data Engineering with Go Winter 2024 Syllabus
From the Office of the Registrar: Please note that the specifics of this course syllabus are subject to change in the case of unforeseen circumstances. Instructors will notify students of any changes as soon as possible. Students will be responsible for abiding by the changes. Additional information about Northwestern syllabi and policies are described on the Office of the Registrar web page: https://www.registrar.northwestern.edu/faculty-staff/syllabi.html
Instructor
Instructor: Thomas W. Miller (Tom)
Pronouns: he/him/his
Email: I will respond to emails within 24-48 hours Office Hours: By appointment.
Tom is the faculty director of the data science program at Northwestern University. He started with the program when it was called “predictive analytics” and for the past twelve years has been responsible for growing the curriculum, introducing specializations, and designing numerous distance learning courses. During the 2023-24 academic year, in addition to this course, Tom will be teaching MSDS 455 Data Visualization, MSDS 459 Knowledge Engineering, MSDS 460 Decision Analytics, and a MSDS 498 Capstone section for the Data Engineering specialization. He is the author of six textbooks about data science published by Pearson Education. He also owns Research Publishers LLC, a California company that publishes books, journals, and knowledge bases, and provides research and consulting services. Tom is serving as editor-in-chief of a new journal, Data Science Quarterly® , promoting data science as a discipline and showing its relevance to social and political discourse: https://www.data-science-quarterly.com. Additional information about Tom is at https://www.linkedin.com/in/thomas-w-miller.
Teaching Assistant Teaching Assistant: Daniel Jensen
Pronouns: he/him/his
Office Hours: By appointment and will respond within 48 hours
I am a passionate senior data scientist consultant in healthcare analytics, developing model- driven architectures to support my organization—currently, cloud-based data pipelines for analytical consumption. Before joining Nationwide, I was a Data/Systems Engineer at The Ohio State University.
Academically, I completed my Master of Science from Northwestern in Predictive Analytics. My undergraduate degree is in computer science from The Ohio State University, specializing in data management and software architecture.
Course Description
This comprehensive introduction to the Go programming language reviews data structures and algorithms, the Go standard library, and packages for communications, database access, analytics, and modeling. Students learn how to work within the Go programming environment, employing best practices in software engineering. They design, develop, and test programs for data science. They implement database servers and clients. And they learn how to run concurrent processes, as needed in distributed and parallel processing environments. Prerequisites: None.
Course Objectives
By the end of this course, you will be able to:
● Apply the basic features of the Go programing language.
● Evaluate data structures and algorithms and implement them in Go.
● Analyze how Go takes advantage of the abstract differences between concurrent and
massively parallel processing.
● Gain familiarity with the main functionality of the Go standard library and the important
Go packages used in data engineering and data science.
● Follow best practices and create clean, efficient programs in Go to support highly
performant applications.
Prerequisites
No prerequisites. Students are encouraged to take the no-tuition Go Learning Studio before taking this course or while taking this course. See the description on page 10. Also, check out resources listed on the website Learning Go for Data Science.
Additional Objectives
The primary objective of this course is learning to program in Go.
A secondary objective is learning about software engineering. We want to do more than write programs. We want to design software that is scalable and easy to maintain over time. We want to work with others and share with others. This means we need to follow best practices in Go software design and development.
By developing an ability to design and deliver data science software and systems, we open the door to new opportunities as entrepreneurs. So, another objective of this course is to encourage entrepreneurial thinking. Imagine that the software we develop becomes the foundation for products and services that we sell. Go provides a strong foundation for data science startups.
Readings and Resources
Primary Textbooks and Readings
• Bates, Mark, and Cory LaNou. 2023. Go Fundamentals: Gopher Guides. Boston: Addison-Wesley. [ISBN-13: 978-0-13-791830-0] An excellent textbook for those who like to learn to program by reading programs. Includes up-to-date material on modules, generics, testing, error handling, and the context interface.
• Bodner, Jon. 2021.Learning Go: An Idiomatic Approach to Real-World Go Programming. Sebastopol, CA: O’Reilly. [ISBN-13: 978-1-432-07721-3] Book website at https://learning-go-book.dev/ Revised Chapter 15 Welcome to the Future: Generics in Go available at https://learning-go-book.dev/chapter15_learningGo.pdf GitHub code repository at https://github.com/learning-go-book
• Cox, Russ, Robert Griesemer, Rob Pike, Ian Lance Taylor, and Ken Thompson. 2022, May. “The Go Programming Language and Environment.” Communications of the ACM, 65(5): 70–78..
(Optional) Recommended Textbooks
• Anagnostopoulos, Achilleas. 2020. Hands-On Software Engineering with Golang: Move Beyond Basic Programming to Design and Build Reliable Software with Clean Code. Birmingham, UK: Packt. [ISBN-13: 978-1838554491]
• Donovan, Alan, and Brian Kernighan. 2015. The Go Programming Language. Addison- Wesley Professional Computing Series. [ISBN: 978-0134190440] The “bible” of Go. Essential to any gopher’s bookshelf. Given its publication date, there is no coverage of modules or generics. Ignore chapter 10.
• Summerfield, Mark. 2012. Programming in Go: Creating Applications for the 21st Century. Upper Saddle River, NJ: Addison-Wesley. [ISBN-13: 978-0-321-77463-7] Does an excellent job covering the Go standard library. Application developers can get answers quickly without doing a lot of web searching. It is a tribute to the Go team that a book like this, now more than a decade old, is so relevant today. The core of Go remains intact from version 1.0.
Additional Readings and Resources, Including Course Reserves
See the Learning Go for Data Science website for additional readings and learning resources.
Resources will also be provided through Canvas and Course Reserves. For assistance with Course Reserves, e-mail To ask a librarian for assistance, visit Northwestern’s Ask A Librarian page.
On the last pages of this syllabus, we provide additional references relevant to Go and software engineering:
Diversity Statement
The MSDS program is a very vibrant program in the School Of Professional Studies (SPS) and it attracts students from all disciplines and backgrounds who are interested in the emerging data science discipline. Students might have special needs, either physical or learning; hence the course content is presented in a variety of formats online: textual, audible, visual, and videos, in order to accommodate students’ different needs.
Students have a variety of tasks to execute throughout the course including class discussions, exercises, assignments, and a final project. For more information on accessibility, please see the section below on AccessibleNU under Student Support Services.
Academic Accommodations for Religious Holidays
Although Northwestern University does not as an institution observe religious holidays, the academic calendar is designed to avoid conflicts with observed holidays, such as July 4, Memorial Day, Thanksgiving, New Year’s Day, and Christmas. As the diversity of our community has increased, additional religious holidays now affect a significant number of students and faculty. Consistent with our commitment to creating an academic community that is respectful of and welcoming to persons of all backgrounds, we believe that every reasonable effort should be made to allow members of the university community to observe their religious holidays without jeopardizing the fulfillment of their academic obligations. In support of this commitment to inclusion, the University provides guidance for faculty and students regarding any academic accommodations. Students wishing to request a reasonable accommodation must notify the faculty member of conflicts due to religious holidays within the first two weeks of the term. If asked, the student should provide accurate information about the obligations entailed in the observance of that particular holiday.
程序代写 CS代考 加微信: cstutorcs
Assignment Overview and Grading Breakdown.
Module/Week Assignment
Description
Points/Percentage
Modules/Weeks 1 – 10
Discussions
Each week, students will participate in group discussions, answering posted questions and identifying issues of personal and professional interest. Weekly discussion board participation is required.
Modules/Weeks 2 – 10
Go Programming Assignments
Weekly programming assignments are designed to give students experience working with the language features and software engineering best practices introduced in readings, Canvas postings, and discussion.
Grading Scale
Grade Percentage
A- 90%–92%
B 83%–86% C+ 77%–79%
C- 70%–72%
Total 1000/100%
Total Points (out of 1000)
900 – 929 points
830 – 869 points
770 – 799 points 700 – 729 points
930– 1000 points
870 – 899 points
800 – 829 points
730 – 769 points
0 – 699 points
The School of Professional Studies does not award D grades in graduate coursework. Grades of I and W will only be given with guidance from the program office for extraordinary circumstances.
Computer Science Tutoring
Video Recordings
Selected assignments (discussion posts, case study analyses, programming assignments, or project presentations) may require students to provide video commentary of themselves discussing the course material. These assignments will align with course material, but the videos may be used for Identity Verification Purposes. The video requirement is in place for discussions in weeks 1 and 10.
Programming Assignments
In addition to learning about the Go programming language, we will be learning about best practices in software engineering. To this end, each assignment involves the design, development, and delivery of an application. The assignment begins with a requirements definition and suggested use case. Assignment deliverables include an application, a link to a GitHub repository with Go code and documentation, and a posted zip archive of the repository.
Assignment Grading Guidelines
Each programming assignment is worth 100 points assigned by grading guidelines associated with best practices in software engineering as follows:
• Coding rules, organization, and aesthetics (20 points). Effective use of Go modules and idiomatic Go. Code should be readable, easy to understand. Variable and function names should be meaningful, specific rather than abstract. They should not be too long or too short. Avoid useless temporary variables and intermediate results. Code blocks and line breaks should be clean and consistent. Break large code blocks into smaller blocks that accomplish one task at a time. Utilize readable and easy-to-follow control flow (if/else blocks and for loops). Distribute the not rather than the switch (and/or) in complex Boolean expressions. Programs should be self-documenting, with comments explaining the logic behind the code (McConnell 2004, 777–817).
• Testing and software metrics (20 points). Employ unit tests of critical components, generating synthetic test data when appropriate. Generate program logs and profiles when appropriate. Monitor memory and processing requirements of code components and the entire program. If noted in the requirements definition, conduct a Monte Carlo performance benchmark.
• Design and development (20 points). Employ a clean, efficient, and easy-to-understand design that meets all aspects of the requirements definition and serves the use case. When possible, develop general-purpose code modules that can be reused in other programming projects.
• Documentation (20 points). Effective use of Git/GitHub, including a markdown file for each repository, noting the roles of programs and data and explaining how to test and use the application.
• Application (20 points). Provide instructions for delivering an executable load module or application (.exe file for Windows or .app file for MacOS). The application should run to completion without issues. If user input is required, the application should check for valid/usable input and should provide appropriate explanation to users who provide incorrect input. The application should employ clean design for the user experience and user interface (UX/UI).
Late Work Policy
Unless otherwise noted, all work is due on the assigned day by 11:59 PM (Central Time). This includes assignments and participation in the discussions. Late work is not accepted unless prior arrangements have been made with the instructor, in which case late penalties may apply.
Online Communication and Interaction Expectations
Discussion Forums
The purpose of the discussion boards is to allow students to freely exchange ideas. It is imperative to remain respectful of all viewpoints and positions and, when necessary, agree to respectfully disagree. While active and frequent participation is encouraged, cluttering a discussion board with inappropriate, irrelevant, or insignificant material will not earn additional points and may result in receiving less than full credit. Frequency matters but contributing content that adds value is paramount. Please remember to cite all sources— when relevant—inorder to avoid plagiarism. Please post your viewpoints first and then discuss others’ viewpoints.
The quality of your posts and how others view and respond to them are the most valued. A single statement mostly implying “I agree” or “I do not agree” is not counted as a post. Explain, clarify, politely ask for details, provide details, persuade, and enrich communications for a greatdiscussion experience. Please note, there is a requirement to respond to at least two fellow class members posts.
Online Communication Etiquette
Beyond interacting with your instructor and peers in discussions, you will be expected to communicate by Canvas message, email, and sync session. Your instructor may also make themselves available by phone or text. In all contexts, keep your communication professionaland respect the instructor’s posted availability. To learn more about
professional communication, please review the Communicating Effectively with Faculty guide.
Just as you expect a response when you send a message to your instructor, please respond promptly when your instructor contacts you. Your instructor will expect a response within two business days. This will require that you log into the course site regularly and set up your notifications to inform you when the instructor posts an announcement, provides feedback on work, or sends you a Canvas message. For guidance on setting your notifications, please review How do I set my Canvas notification settings as a student? It is also recommended thatyou check your u.northwestern e-mail account regularly, or forward your u.northwestern e-mailto an account you check frequently.
Participation and Attendance
This course meets as specified by the MSDS Course Schedule. All course goals, session learning objectives, and assessments are supported through classroom elements that can beaccessed at any time. To measure class participation (or attendance), your participation in discussion boards is required, graded, and paramount to your success in this course. Students are expected to attend sync sessions or to watch the recordings from sync sessions. Students are responsible for material discussed in sync sessions.
Diversity Statement
As educators and learners, we must share a commitment to diversity and equity, removing barriers to education so that everyone may participate fully in the community. In this course, werespect and embrace the unique experiences that brought each person here, including backgrounds, identities, learning styles, ways of expression, and academic interests. The broadspectrum of perspectives represented by our students enrich everyone’s experiences, and we strive to meet each perspective with openness and respect. The field of Data Science and Analytics is an open and welcoming professional community where diversity, equity, and inclusion are valued.
Student Support Services
AccessibleNU
This course is designed to be welcoming to, accessible to, and usable by everyone, including students who are English-language learners, have a variety of learning styles, have disabilities,or are new to online learning. Be sure to let me know immediately if you encounter a required element or resource in the course that is not accessible to you. Also, let me know of changes I can make to the course so that it is more welcoming to, accessible to, or usable by students who take this course in the future.
Northwestern University and AccessibleNU are committed to providing a supportive and challenging environment for all undergraduate, graduate, professional school, and professional studies students with disabilities who attend the University. Additionally, the University and AccessibleNU work to provide students with disabilities and other conditions requiring accommodation a learning and community environment that affords them full participation, equal access, and reasonable accommodation. The majority of accommodations, services, and auxiliary aids provided to eligible students are coordinated by AccessibleNU, which is part of theDean of Students Office.
SPS Student Services
The Department of Student Services supports the academic and professional growth of SPS students. The Student Services team guides students through academic planning, policies, andadministrative procedures, and promotes a supportive environment to foster student success. Students are encouraged to actively make use of the resources and staff available to assist them: Academic and Career Advisers, Counseling and Health Services, Student Affairs, Legal Services, Financial Aid and Student Accounts, among other services.
For a comprehensive overview of course and program processes and policies and helpfulstudent resources, please refer to your SPS Student Handbook.
Northwestern University Library
As one of the leading private research libraries in the United States, Northwestern University Library serves the educational and information needs of its students and faculty as well as scholars around the world. Visit the Library About page for more information or contact DistanceLearning Librarian Tracy Coyne at 312-503-6617 or
Remote access to the library databases and many other university services requires Multi-Factor Authentication (MFA).
Program-Specific Library Guides
Here is the library guide for Data Science. This guide will help you find library resources thatmight be helpful to you.
Additional Library Resources
• Resources for Data Analysis
• Schaffner Library Top Resources
• Sign up for an in-person or online Research Consultation Appointment
• Social Science Data Resources
• Connectivity: Campus Wireless and Off-Campus Access to Electronic Resources
• Getting Available Items: Delivery to Long-Distance Patrons
• Quick Access to Major Newspapers
• Reserve a Library Study Room
The Writing Place
The Writing Place is Northwestern’s center for peer writing consultations. Consultations are freeand available to anyone in the Northwestern community: undergraduates, graduate students, faculty, or staff. To book an appointment, go to The Writing Place website.
The Math Place
The Math Place is a free tutorial service provided to students currently enrolled in Northwestern University’s School of Professional Studies courses or in other Northwestern University courses. Students of all levels can benefit from the individual tutoring provided from this service, whether they are taking undergraduate or graduate level courses. To book an appointment, go to the Scheduling Location and select an available opening. We ask that students schedule up to one appointment per week. Appointments are currently offered over Zoom. For questions concerning appointments or additional information regarding tutoring services, please email
SPS Learning Studios
Learning Studios are self-paced, self-directed, and individualized online tutorials to support SPS students and assist in student success. These Studios are optional, non-credit, and zero- tuition courses housed in Canvas, with no registration requirements in Caesar. Enrollment in such Studios will not be reflected on the student’s transcript. While other students will be completing the studio, there are no required discussions or group activities. However, there will be an optional, web conference conducted weekly by an instructor for any students who have questions about the material. SPS is currently offering five Learning Studios for the current term: Programming in R, Programming in Python, Programming in Go, Microeconomics, and Academic Integrity Learning. The Go Learning Studio is especially relevant to this course. Students can self-enrollfor free by visiting the SPS Academic Services page.
(Highly Recommended) Go Learning Studio
The Go Learning Studio provides an orientation to the Go programming language for data science students. This self-paced course covers system installation and setup. It reviews basic techniques for using Go packages, database interaction, concurrency, and web application development.
Five modules show how to work with Go:
• Go Fundamentals
• Go Standard Library, Variable Types, and Design Flow
• Relational Databases
• Concurrency Primitives
• Web Application Development
Primary References/Textbooks for the Learning Studio
• Bodner, Jon. 2021. Learning Go: An Idiomatic Approach to Real-World Go Programming. Sebastopol, CA: O’Reilly. [ISBN-13: 978-1-432-07721-3]
• Woodbeck, Adam. 2021. Network Programming with Go: Code Secure and Reliable Network Services from Scratch. San Francisco: No Starch Press. [ISBN-13: 978-1- 7185-0088-4]
Read&Write Gold
Read&Write Gold is an optional text reading and writing program with numerous beneficial features. Originally developed to assist users with print disabilities, such as visual impairments,dyslexia, ADHD, etc., this program provides a wide array of tools to assist with reading, writing,and notetaking. One of the most useful tools is the text-to-speech function, which students mayuse to convert digital text into an audio format. Read&Write Gold is available for free to all Northwestern students, faculty, and staff. Visit the Northwestern IT site on Read&Write Gold for more information about the software, as well as forinstructions on how to download it.
Academic Integrity at Northwestern
Students are required to comply with University regulations regarding academic integrity. If you are in doubt about what constitutes academic dishonesty, speak with your instructor or graduatecoordinator before the assignment is due and/or examine the University website. Academic dishonesty includes, but is not limited to, cheating on an exam, obtaining an unfair advantage, and plagiarism (e.g., using material from readings without citing or copying another student’s paper). Failure to maintain academic integrity will result in a grade sanction, possibly as severe as failing and being required to retake the course, and could lead to a suspension or expulsion from the program. Further penalties may apply. For more information, visit The Office of the Provost’s Academic Integrity page.
Northwestern Policy: Any form of cheating, including improper use of content generated by artificial intelligence, constitutes a violation of Northwestern’s academic integrity policy. Turnitin, which already is in use at Northwestern, is expanding its system to include artificial intelligence detection. Also see Northwestern’s policy regarding AI tools in research. Some assignments in SPS courses may be required to be submitted through Turnitin, aplagiarism detection and education tool. You can find an explanation of the tool here.
Course Technology
This course will involve various types of interactions. These interactions will take place primarily through the Canvas system. Please take the time to navigate through the course and become familiar with the course syllabus, structure, and content and review the list of resources below. Students and faculty enrolled in SPS online classes should have access to a computer with the Minimum System Requirements.
The Canvas Student Center includes information on communicating in Canvas, navigating a Canvas course, grades, additional help, and more. The Canvas at Northwestern website provides information of getting to know Canvas at Northwestern and getting Canvas support. The Canvas Student Guide provides tutorials on all the features of Canvas. For additional Canvas help and support, you can always click the Help icon in the lower left corner to begin alive chat with Canvas support or contact the Canvas Support Hotline. The Canvas Accessibility Statement and Canvas Privacy Policy are also available.
We will use Zoom for synchronous meetings. The Zoom support page provides additional guidance for using Zoom, and the Zoom for Students in Canvas page has guidance specifically for students. The Zoom Privacy Policy and the Accessibility Features on Zoom are also available. These synchronous sessions will be recorded, so you will be able to review the session afterward. Students are expected to attend sync sessions or to watch the recordings. Students are responsible for material discussed in the sync sessions.
Videos in this course may be hosted in Panopto. If you have not used Panopto in the past, you may be prompted to login to Panopto for the first time and authorize Panopto to access your Canvas account. You can learn more about using Panopto and login to Panopto directly by visiting the Panopto guide on the Northwestern IT Resource Hub. Depending on the assignmentrequirements of this course, you may be asked to create videos using Panopto in addition to viewing content that your instructor has provided through Panopto. The Panopto Privacy Policy and the Accessibility Features on Panopto are also available.
Required Technical Skills
Students in an online program should be able to do the following: • Communicate via email and Canvas discussion forums.
• Use web browsers and navigate the World Wide Web.
• Use the learning management system Canvas.
• Use integrated Canvas tools (e.g., Zoom, Panopto, Course Reserves).Use applications to create documents and presentations (Microsoft Office Tools).
• Use applications to share files (e.g., Box, Google Drive).
• Use software for analytics (e.g., Microsoft Excel, R, Python, Go).
CS Help, Email: tutorcs@163.com
Required Digital Literacy Skills
To be successful in an online course, students should be able to locate, evaluate, apply, create, and communicate information using technology.Students in this online course should be able to do the following:
• Create, name, compose, upload, and attach documents.
• Download, modify, upload, attach document templates.
• Create, name, design, and upload presentations.
• Access and download Course Reserve readings; read and review PDF documents.
• Access and use a digital textbook.
• Record and upload video taken with a webcam or smartphone.
• Use the library website for scholarly research tasks.
• Search the Internet strategically and assess the credibility of Internet sources.
• Participate in threaded discussions by contributing text responses, uploading
images,sharing links.
• Coordinate remote work with peers, which may include contacting each other by e-
mail,phone, video conference, or shared document.
• Edit and format pages in the course site using a WYSIWIG (What You See is What
YouGet) editor or basic HTML.
• Using a quizzing tool to answer multiple choice, true/false, matching, and short
responsequestions within a given time-period.
• Follow directions to engage with a remote proctor by text, webcam, and audio.
• Use a video player to review content, including pausing and restarting video.
Master’s in Data Science — Minimum Hardware Requirements
To successfully complete the assignments and activities in the MSDS Program, you should use a laptop or desktop computer that meets the following specifications:
Processor: At least an 8th Generation Intel® CoreTM i7-8700 Processor (3.20GHz, up to 4.60GHz with Turbo Boost, 12MB Cache)
Operating System: Windows 10 Pro 64
Memory: 16.0GB DDR4 2666 MHz
Hard Drive: 500 GB 7200 RPM + 256GB SSD Graphics: NVIDIA GeForce GTX 1050Ti 4GB Keyboard: Wireless English Keyboard Pointing Device: Wireless Mouse
Network: 802.11 AC adapter or Gigabit Ethernet Webcam
NOTE: SPS IT does not recommend Apple Mac computers because they do not support software used across all MSDS courses.
Technical Help and Support
The SPS Help Desk is available fo