ENGR 76: Information Science and EngineeringStanford University,
Ayfer Özgür,
Spring Quarter 2023–24
Please check out Canvas, which will serve as the primary mode of communication for the class. Logistics Updates (March 29, 2024): Important information for the Spring 2023-2024 offering. Please review the following information before you enroll in the course. Grading: 65% Projects, 35% Quizzes. Participation: Students who are at the boundary of A and A+ will get bumped up to A+ if they have participated substantially in class. To show substantial participation, students need to attend at least 75% of classes and participate actively in classes. Quizzes: We will have weekly quizzes on Gradescope. These will cover concepts taught in that week's class and will be released on Thursday. They will be due at 1pm before the next lecture on Tuesday. The quizzes will be untimed and will allow multiple submissions. Attendance: We have removed the 50% attendance policy. Projects: The course consists of two projects - Project 1 will focus on compression of images and Project 2 will focus on communication through a noisy physical medium (more information about these in the Projects section). These will comprise of weekly assignments which build on work done in prior assignments. There will be a total of 9 weekly project assignments - Project 0, Project 1a to 1d and Project 2a to 2d. Project 0 will just be a basic Python setup and tutorial. Each weekly project assignment will be released on Thursday and will be due the next Friday. The solutions will be uploaded on Monday, so that they can be used for the next weekly project assignment. Sound Sensitivity: The second project involves experimenting with digital transmission over an audio-based channel. This can be disturbing for people with sensitivity to sound. Please take this into consideration before you register for the course. Please contact one of the head TAs for more information if you are concerned about this point. Late/Exception Policy: The following policy will be strictly enforced and no exceptions will be made:
Academic Accommodations: If you need an academic accommodation, you should initiate a request with the OAE. We request you to share your accommodation letters with the instructor and the head CAs as soon as possible. Due to the weekly structure of the projects, we cannot provide an extension of more than 3 days to any student under any circumstances. Similarly, only an extension of 1 day will be provided for the quizzes. We will grant an extension only if we receive your request before the deadline. Please send an email to Siddharth and the instructor for any communication regarding extensions. Enrollment Update (March 29, 2024):
In this course, we will learn about the principles and techniques underlying the design of modern information, communication, and decision-making systems. How do we measure how much information we have? How can we represent the same information with less memory? How can we encode information to reliably communicate it over error-prone media? We will introduce the basic notions required to address these questions, and consider applications from those mentioned above, to machine learning, and COVID testing. Students will get a hands-on appreciation of these concepts by undertaking two main projects. In the first, students will develop a system for compressing images, and explore the issues and trade-offs involved. In the second, students will communicate data over a speaker-to-microphone audio medium, and explore encoding strategies for making this system reliable. Course StaffInstructorAyfer Özgür Course Assistants
Times and Places
PrerequisitesThe course does not require any specific preparation in terms of mathematical background. We will develop the mathematical language and tools we need from probability theory and Fourier analysis from scratch. The projects will involve coding and CS 106A or equivalent is required. CS106B is not required but it will make it easier for you to deal with the coding aspects of the projects. ProjectsThe course will consist of two projects, which will be divided into weekly subprojects. The projects will explore how concepts taught in class can be used to build real systems for storing and communicating information efficiently. The projects will involve coding and experimentation, with appropriate guidance. The projects will have both structured and open-ended components, allowing you to internalize the concepts and play with new ideas. The first project will focus on compression of images and audio, which we encounter every day when we use JPEG or MP3 files. You'll learn about compression techniques like Huffman coding, frequency domain transforms, as well as ideas behind lossy compression which allow substantial space savings without perceptible loss in quality. The second project will focus on communication through a noisy physical medium. We will work with an audio-based channel, transmitting data from the speaker for your laptop and receiving (distorted) audio through the microphone. We'll then make this system robust to various noise sources in the environment with the use of error correction codes, frequency-domain filtering and machine learning techniques. The project will also introduce basic concepts of data transmission through physical channels, including (de)modulation and synchronization. Logistics: Each project will comprise of weekly assignments which build on work done in prior assignments. There will be a total of 9 weekly project assignments - Project 0, Project 1a to 1d and Project 2a to 2d. Project 0 will just be a basic Python setup and tutorial. Each weekly project assignment will be released on Thursday (after the project session) and will be due the next Friday. The solutions will be uploaded on Monday, so that they can be used for the next weekly project assignment. Project Sessions: There will be a weekly project session, where Wei-Ning (our lead TA for projects) will overview the project assignment for the next week and provide initial guidance on how to approach it. This session will be held in-person after the class on Thursday and will be recorded and posted on Canvas. Participation is not required but you are strongly encouraged to watch the recording before you get started on the assignment. QuizzesWe will have weekly quizzes on Gradescope. These will cover concepts taught in that week's class and will be released on Thursday. They will be due at 1pm before the next lecture on Tuesday. The quizzes will be untimed and will allow multiple submissions. Grading65% Projects, 35% Quizzes Participation: Students who are at the boundary of A and A+ will get bumped up to A+ if they have participated substantially in class. To show substantial participation, students need to attend at least 75% of classes and participate actively in classes. Academic AccommodationsIf you need an academic accommodation, you should initiate a request with the OAE. We request you to share your accommodation letters with the instructor and the head CAs as soon as possible. Due to the weekly structure of the projects, we cannot provide an extension of more than 3 days to any student under any circumstances. Similarly, only an extension of 1 day will be provided for the quizzes. We will grant an extension only if we receive your request before the deadline. Please send an email to Siddharth and the instructor for any communication regarding extensions. |