Course Syllabus
Note: Some links in this syllabus page may only be accessible to currently enrolled students.
When you need to get additional help on concepts in this course, we recommend the following priority, though of course this will also depend on your own preference!
- Search/Post on Ed Discussions and/or Teams
- Participate in Office Hours. No scheduling necessary, just drop in! Details follow.
- Schedule free personalized tutoring with our College of Engineering student tutors. Make an appointment by navigating to https://engineering.oregonstate.edu/current-students/academic-support/undergraduate-tutoring.
Help Sessions
TA Help Sessions/Office Hours are held via the class-specific Microsoft Teams Team. For details on getting set up on Teams, please go Teams - How To. This will walk you through getting logged in to the class Team. If you need to chat with the instructor, check the Communication Policy, below.
Listing by Day (all times U.S. Pacific Time, UTC-08:00):
NOTE: Office hours begin in force in week 2. Week 1 office hours are spurious)
Day | Help Session Time and Course Staff name |
---|---|
Monday |
11:00 AM - 1:00 PM (Natasha) |
Tuesday |
7:00 AM - 10:00 AM (Anjan) |
Wednesday |
7:00 AM - 10:00 AM (Anjan) |
Thursday |
7:00 AM - 10:00 AM (Anjan) |
Friday |
11:00 AM - 1:00 PM (Natasha) |
Saturday |
9:00 AM - 11:00 AM (Yu) |
Sunday |
9:00 AM - 11:00 AM (Yu) |
Communication Policy - Stephen Redfield
Please post all course-related questions in the Ed Discussions discussion boards so that the whole class may benefit from our conversations. Not all posts require a reply from the instructor or learning assistants and often it is better for students to work on an answer to a question themselves, helping cement understanding or locate resources to answer questions.
To contact the TAs, open Canvas Inbox, compose a new message, select this course, then next to the ‘To’ box click the address book, select “Teaching Assistants”, then choose the name(s) of TAs you wish to contact (or DM them on Teams).
Please email Mr. Redfield only for matters of a personal or private (grading) nature. The instructor or a TA will reply to most course-related questions within 48 hours. Please feel welcome to DM me on Teams as well. I'm very often online and available there, and if you need to schedule a 1:1, that's the place to do so!
Communication Policy - Anjan Debnath
Please post all course-related questions in the Ed Discussions discussion boards so that the whole class may benefit from our conversations. Not all posts require a reply from the instructor or learning assistants and it is usually better for students to work on an answer to a question themselves and share the roadmap of their understanding with others, possibly with the resources.
To contact the TAs, open Canvas Inbox, compose a new message, select this course, then next to the ‘To’ box click the address book, select “Teaching Assistants”, then choose the name(s) of learning assistants you wish to contact.
You can message on Teams or email Dr. Debnath (debnatha@oregonstate.edu) only for matters of a personal or private (grading) nature. The instructor will reply to most course-related questions within 48 hours.
I am in the U.S. Eastern Time Zone, and I am typically around on Teams throughout much of the day. If you need to schedule a 1:1 meeting with me, Teams platform would be the best, you can email me as well.
Technical Questions
If you have a technical issue or question when using Canvas, 24/7 support is available in Canvas via chat, phone, or e-mail through the Help link in the Canvas Navigation Bar.
Additional technical support (use of software/browsers) can be accessed through the OSU Computer Helpdesk.
Academic or Student Support Services
For all other academic and student support services, refer to the Student Services link found in the course menu.
The following services are available to all Ecampus students:
- Ecampus Success Counseling
- Disability Access Services
- The Writing Center and Online Writing Lab
- The Valley Library and Ecampus Library Services
- Ecampus Enrollment & Student Services
- Check Your Computer test - ensure you have installed the minimum required technology for Ecampus courses.
Accessibility Tools for Canvas
The following tools are available within your Ecampus course.
ReadSpeaker - is a tool that reads text on Canvas course pages aloud.
TextAid - is an additional tool that allows users to have nearly any text highlighted and read aloud, including documents, Web sites, text composed by a user, and more. For more information, please visit ReadSpeaker Text Aid.
Syllabus Quiz: This quiz is based on the syllabus, so understand the syllabus before taking it. You'll need to score 100% in order to access the Week 1 materials! Don't Fall Behind!
Note: This quiz is only available to currently-registered students.
Instructor Introductions
Course Introduction
A former CS271 Instructor introduces the course.
Introduce Yourself
Hop on over to Ed Discussions (the link on the navigation sidebar will take you straight there) and introduce yourself!
Tools Used in CS 271
This section consists of installation & setup tutorials for Visual Studio 2019 and, for those who need it, Windows and/or Citrix:
What If I Don't Have Windows on My Computer?
Visual Studio Installation and Setup for Windows (not required if using Citrix)
Installing and Using Citrix (required for Macs)
Common Issues with Visual Studio Setup
Using GitHub for Version Control
Setting up ASMDude and a Getting a Dark Theme
In completing this module you should have:
- Gained access to a Windows installation, if you don't already have one
- Gained access to Microsoft Visual Studio in your Windows installation
- Installed and configured Kip Irvine libraries
- Started a new Assembly code project
- Verified that Visual Studio is installed properly
What If I Don't Have Windows on My Computer?
Since the Microsoft Assembler (packaged with Visual Studio) only runs on Microsoft Windows, you will need access to a Windows installation. Fortunately, all the tools that you need are provided for OSU students for free.
- Windows users: if your PC meets the minimum system requirements for Visual Studio 2019, proceed to the Visual Studio Installation and Setup for Windows.
- Mac users: proceed to the Installing and Using Citrix section below.
- Linux users: either use Windows through Citrix (see Installing and Using Citrix) or use Virtual Box to run Windows on your Linux installation. Virtual Box is completely free so it has widespread support across numerous distros. Linux users may also dual-boot their computer to run Windows. You may obtain access to the Windows installation media for free on the Microsoft Azure site. The Windows 10 download can be located by choosing the Software link in the Education page on the site, then searching for Windows 10 Education. Choose the latest version of Windows 10 Education, not Windows 10 Education N (at this writing, it was Windows 10 Education, version 21H2 - DVD). The file will be shown as DVD because it is an ISO image of a Windows installation disk.
For other recommendations or advice, feel free to post a question on the Ed Discussions forum (see link in the sidebar).
Visual Studio Installation and Setup for Windows
(not required if using Citrix)
Part 1: Installing Visual Studio
Visual Studio is now available through the Microsoft Azure program.
To get started, visit the Microsoft Azure site (Links to an external site.) and log in using a Microsoft account. You should be able to log in with your OSU email address (username@oregonstate.edu) which will forward you to the OSU central login page. Sometimes Microsoft requires that you log in with a non-OSU email (if you have an existing account you can use it) and then verify your OSU email to obtain access. Once you are logged in, the main portal should look similar to the first image below. In order to access the Visual Studio download, select "Software" under "Learning Resources" on the left navigation panel.
Next, type "Visual Studio Community" in the search bar and select "Visual Studio Community 2019". I suggest installing Visual Studio 2019 Enterprise simply because that is the most recent version, but previous versions of Visual Studio (back to even Visual Studio 2010) will work for this course.
You can then view your assigned license key and download the software. When you install Visual Studio you will be asked to select your intended workload (e.g. how do you plan to use Visual Studio). You should select "Desktop development with C++" as that is the best option for our purposes. You don't need to select any additional options at this point. The default for "Desktop development with C++" is suitable for our class.
Your Visual Studio install will need to be "Activated" with your Product Key. You can retrieve this key at any time through the Microsoft Azure site (Links to an external site.) by looking in "All Services --> Other --> Education --> Software" and clicking on the Visual Studio product that you installed.
Part 2: Setting Up the Irvine Library and the CS 271 Sample Project
You will need to download two ZIP files and extract their contents to the proper location.
- First download the file Irvine.zip
Extract the contents of this ZIP file into the C:\ directory. If the files were extracted properly, the following file should exist on your computer:
C:\Irvine\Irvine32.lib - Next, we need to download the Visual Studio project file. For this step, it's recommended that you create the directory C:\CS271.
You can then download the file Project0.zip and extract the contents into C:\CS271
If the extraction was successful you should be able to locate the file: C:\CS271\Project0\RemoveMe.asm.
If you are using an older version of Visual Studio (prior to 2019), other versions of these libraries are available from the Kip Irvine website at http://asmirvine.com/ (Links to an external site.)
Part 3: Verifying Your Visual Studio Installation
This video shows how to start a new Assembly code project and verify that Visual Studio is installed properly. Although this video illustrates the procedure using Visual Studio 2015, any recent version of Visual Studio (2015-2019) will work.
Installing and Using Citrix
(required for Macs)
Citrix is a software product that allows you to access programs on a remote computer as if you were sitting at the desktop. Macs, Linux machines, or or older computers running Windows that do not meet the minimum Visual Studio system requirements should use Citrix to access Visual Studio on our OSU Citrix Servers as follows:
Part 1: Creating Your ENGR Account and Installing Citrix
- Before you access Citrix, you'll need to sign up for a College of Engineering ENGR account. This is an student account in addition to your normal ONID account. To sign up, click the ”Create a new account” link on the login page to COE TEACH here: https://teach.engr.oregonstate.edu.
- Install Citrix following the instructions here. Run the Citrix Workspace client. Login using your ONID credentials
NOTE: This will send a Duo authentication push to your chosen authentication device, even though it doesn't show within the Citrix environment! - After you are logged in, choose the “Desktops” choice at the top of the screen, then the “MIME EECS Desktops” choice followed by Open. (If MIME EECS Desktops isn't showing up, it's likely you did not create your ENGR account (above). If you already did, submit an IT ticket or contact ENGR support.) This will create a session as if you were logged on to a computer in an on-campus lab.
Part 2: Setting Up the CS 271 Sample Project
In the Citrix session, log in to the CS271 Canvas site and return to these instructions on the Tools tab of the Syllabus page in the Citrix environment. Download the zip file Project0.zip, then use File Explorer to open the Downloads folder. Double-click Project0.zip to run 7-Zip, then extract its contents to the Z:\CS271 folder (enter Z:\CS271 in the 7-Zip Copy to: field):
Each of your projects should have its own folder within this Z:\CS271 folder, because the contents of your Z: drive are preserved even when you log out of Citrix.
If the extraction was successful you should be able to locate the file: Z:\CS271\Project0\RemoveMe.asm.
- Note 1: You do not have to download/install the Irvine library if you use the Citrix environment. The MIME EECS Desktop configuration already has the Irvine library installed.
- Note 2: Be aware that your files will NOT reside on your home computer. If you want copies of them, you'll have to copy them manually to a drive on your computer using File Explorer in the Citrix environment.
Part 3: Setting Up Antivirus Exclusions for the CS 271 Sample Project
When using Citrix for CS 271, it is highly likely that your programs will be flagged by the Citrix antivirus software as dangerous or as viruses, which will prevent the execution of your programs. This problem is listed below as the second most common issue with Visual Studio setup, but on Citrix you do not have permission to do the workaround described (exclude your CS271 folder from antivirus scans). Instead, you must use a Citrix predefined temporary folder that is excluded from antivirus scans where your executable programs will run unimpeded.
Modify the Visual Studio project configuration for the project in this directory as follows:
- Open the .sln file for your template folder.
- Right-click Project (not Solution 'Project') in Solution Explorer, and choose Properties.
- From the Configuration dropdown at the top, choose All Configurations.
- Choose Configuration Properties\General, then Output Directory.
- Click the $(SolutionDir)$(Configuration)\ value and change it to the following (note the \ before the $):
D:\autodelete_noav\$(Configuration)\
then click OK:
Your template project is now configured to put your executable programs in a safe location that is excluded from antivirus scans in the Citrix environment.
- Note 3: D:\autodelete_noav is automatically erased when you log off from Citrix, so configure VS to put only your executable programs here. Leave your CS271 project folder and all your source files on the Z:\ drive so they will be retained between sessions.
- Note 4: It is recommended that you have a clean template project directory as a starting point for new assignments. If you reuse this project directory as your template (after the verification step below, you won't have to configure this antivirus exclusion for each project.
Part 4: Verifying Your Visual Studio Installation
To verify that you can use Visual Studio for this course, do the following:
- The ASMDude extension for syntax highlighting is preinstalled in Visual Studio in the Citrix environment. You must make the ASMDude configuration changes listed in "5. Syntax Highlighting" in Common Issues with Visual Studio Setup before you try to verify your Visual Studio installation. If you do not want syntax highlighting in Citrix, just disable the extension.
- Follow the verification steps shown in Part 3: Verifying Your Visual Studio Installation. Anytime the video refers to C:\CS271, in the Citrix environment you will refer to Z:\CS271 instead. If you get the below informational messages when you first run Visual Studio, click "Do not prompt me again" then OK, and you can proceed with the steps in the video.
- Note 5: When using the Citrix desktop client, eventually you may encounter the Citrix error “Desktop failed to start.”. If that happens, log in to Citrix via the OSU Apps Portal, choose Desktops, then MIME EECS Desktops, then Restart. You should then be able to use the Citrix desktop client again.
- Note 6: The GitHub extension for version control is preinstalled in Visual Studio in the Citrix environment (see Using GitHub for Version Control). If you use Internet Explorer in Citrix, you may have to change your default browser to Chrome or Edge in order to properly authenticate your GitHub account.
Common Issues with Visual Studio Setup
- LNK1104 cannot open file 'Irvine32.lib'
If you're getting this error, it's likely that you did not extract the Irvine library files into the correct folder. Ensure that the folder structure is such that the Irvine32.lib file exists at this directory location - C:\Irvine\Irvine32.lib - and try again. The most common reason for this error is that the zip extraction process created the following (incorrect) structure: "C:\Irvine\Irvine\Irvine32.lib".
- "File not found" or "cannot execute the specified program" errors; programs flagged as Trojan horses or other viruses; other antivirus issues
Visual Studio generates executable programs (.EXE files) that run when after you assemble your source code for your programming assignments. Even after working fine for a while, at some point you may see an error message that the file cannot be found, or your program prints the message "The system cannot execute the specified program.", or your program is flagged as a Trojan horse or other type of virus. This probably means your antivirus program has falsely identified your executable program as a threat (false positive) and blocked it from running. Exclude your entire CS271 folder (and all its subfolders) from being virus scanned, and you should be able to proceed without further antivirus interference with your work.
- INCLUDE errors: By installing additional extensions beyond what is required for this course, the INCLUDE structure may be prone to error.
Please ensure that the path "C:\Irvine" is explicitly written in the Project Properties in the two fields specified below:
To enter the Project Properties select the "Project" menu, then select "Project Properties". Or, right click "Project" in the Solution Explorer and select "Project Properties"- Configuration Properties ➝ Linker ➝ "Additional Library Directories" should be: "c:\Irvine;%(AdditionalLibraryDirectories)" (without quotes).
- Configuration Properties ➝ Microsoft Macro Assembler ➝ "Include Paths" should be: "c:\Irvine" (without quotes).
- Eliminating the "... exited with code 0." message
If when you run a program, the message ".... (process xxxxxx) exited with code 0." becomes annoying, here are the steps to keep that message from showing:
- From with Visual Studio select the "Debug" menu, then select "Options".
- Under Debugging > General, ensure "Automatically close the console when debugging stops." is checked.
- Run your program again. The message should be gone.
- Syntax Highlighting
By default, Visual Studio does not include syntax highlighting for Assembly code. This can sometimes make it more difficult to read your source code. To enable syntax highlighting in Visual Studio 2015 or later, you may want to install AsmDude:
- From within Visual Studio select the "Extensions" menu, then select "Manage Extensions".
- Search for AsmDude, select it, click Download, and wait for it to complete.
- Close Visual Studio and a VSIX Installer dialog will pop up asking for permission to install AsmDude. Let it do so.
- Reopen Visual Studio. MASM syntax highlighting support should now be installed.
- Disable ASMDude options that interfere with the INCLUDE Irvine32.inc statement and general usability:
- Go to Tools > Options > AsmDude, and find the Intellisense section under "General".
- Turn off "Enable Code Completion".
- Disable "Show in error list" and "Decorate with Squiggle" options for Undefined Labels, Clashing Labels, and Undefined Includes.
- Click OK.
- If you are unable to complete Project 0, disable AsmDude.
- If you use the dark Visual Studio color scheme, you can change the color of certain text to be more readable. Go to Tools>Options>AsmDude and change the color for Mnemonic.
- Note 1: The ASMDude extension for syntax highlighting is preinstalled in Visual Studio in the Citrix environment. You must make the above-listed ASMDude configuration changes even if you are using Citrix. If you do not want syntax highlighting in Citrix, just disable the extension.
- Note 2: We recommend not using Visual Studio's native (and imperfect) MASM syntax highlighting features due to adverse side effects.
- "Inconsistent Line Endings" error from Visual Studio
A fairly catch-all solution to this is eliminating any non-Unicode characters from your .ASM file. To do this...
- Copy the entire body of your .ASM file.
- Paste it into a non-formatting text editor like Notepad. Save this copy to be sure you don't lose anything.
- Open a new, working project (copy one known to work from a different folder, or use the clean template from the Canvas site)
- Copy everything from the Notepad file into this new, clean project file and try running again.
- Windows Environment Variables
It is recommended you do not try to locate, read, or alter any environment variables created and assigned by Visual Studio. VS has a complex way of managing them while it is running, and using them is way beyond the scope of what is needed in CS 271.
Using GitHub for Version Control
It is recommended that you use GitHub for version control. The many benefits of using this for version control do not need to be listed here. If you do use GitHub, ensure all repos are set to private. Public GitHub repos (other than for the final project) are considered a violation of Academic Conduct.
- Note 1: The GitHub extension for version control is preinstalled in Visual Studio in the Citrix environment. If you use Internet Explorer in Citrix, or if your default browser is set to IE, you may have to change your default browser to Chrome or Edge in order to properly authenticate your GitHub account.
Setting up ASMDude and a Getting a Dark Theme
Check this course page for a walkthrough for setting up ASMDude for VS2022, and for setting up a dark theme in Visual Studio:
Setting up ASMDude, ASMDude2 and Getting a Readable Dark-theme
Course Summary:
Date | Details | Due |
---|---|---|