| Class Info | Instructor Info | |||
|---|---|---|---|---|
| Course Number | CS 295N | Instructor | Brian Bird | |
| CRN | Hybrid (on campus) 32934 Online 32933 | Email Mobile | birdb@lanecc.edu (541) 525-0213 | |
| Day, Time | T, Th, 10:00–11:50 | Office | Building 19, Room 152 or Zoom meeting | |
| Classroom | Building 19, Room 126 Zoom meeting | Office Hours | M, W 1:00–1:50 Tu, Th 2:00–2:50 |
Course DescriptionEffortLearning OutcomesTeaching MethodsCourse ContentTechnologiesThemes and IssuesSkillsCourse ResourcesTextbookOptional BookRequired SoftwareIDE and .NET FrameworkGitFree and Discounted Software for StudentsCIT Computer Lab and in-Person TutoringOnline TutoringWeb ResourcesAssessment and GradingLate WorkWeekly Learning ActivitiesAcademic HonestyUse of AIAttendanceNo-Show DropAccessibility and Campus NavigationCenter for Accessible ResourcesCampus Location and MapsCalendar and ScheduleAcademic CalendarWeekly Learning ActivitiesTentative Course Schedule
This course provides an introduction to server-side programming in C# using the ASP.NET Core framework and the MVC design pattern. You will learn the concepts and skills necessary to solve web development problems in order to develop maintainable and extensible web applications.
Since this is a four-credit class, students will need to devote at least 12 hours per week to the class (many students will need to devote more).
4 hours for class participation.
2 hours for reading (an average of 35 pages per week).
6 hours for lab assignments.
To be able to design and code a web site that uses the ASP.NET Core MVC framework for a moderately complex web application.
This hybrid course accommodates on-campus and online students through a blend of lectures, discussions, and hands-on labs. Online students can participate synchronously via Zoom or asynchronously by watching session recordings.
Students will work with lab partners to do code reviews and provide helpful feedback for improving each other’s code quality. Online students can collaborate with their lab partners asynchronously.
Git
C# (advanced features)
Unified Modeling Language (UML)
ASP.NET Core MVC
xUnit for unit testing
Azure cloud service
SQL Server and/or MySQL
LINQ (Language INtegrated Query for C#)
Entity Framework (Object Relational Manager for database operations)
Web standards
Design patterns
Test Driven Development
User Experience (UX)
Object Oriented Design
Ethics and privacy
Develop ASP.NET Core web apps using server-side C#, HTML, CSS and JavaScript.
Design data models that translate into SQL Server database tables for use by your web app.
Write database queries using LINQ.
Write Unit Tests for Test Driven Development.
Debug web apps.
Deploy web apps to a cloud service.
Effectively use software development tools like Visual Studio.
Use Git to manage your source code and do code reviews.
There is no textbook required for this course. Instead, we will be using the documentation and tutorials provided by Microsoft on ASP.NET Core MVC. A great starting point can be found here: Microsoft ASP.NET Core MVC Overview.
Murach’s ASP.NET Core MVC, 2nd Edition, by Mary Delamater and Joel Murach (Murach Books, 2022) is an optional resource. While this is the latest edition, it is based on .NET 6, which is no longer the current Long Term Support (LTS) version of .NET. But, most of the fundamental concepts and much of the code presented are still highly relevant and applicable to developing with .NET 10.
The class examples are based on using the Windows operating system for development, but have also been tested on Mac OS and should also work on Linux.
We will be using Visual Studio 2026, Community Edition, which is available as a free download. This is the most popular IDE for .NET development on Windows.
For Mac OS and Linux, the best IDE is JetBrains Rider, which also runs on Windows and is available free to Students.
The version of the .NET framework we will be using is .NET 10. You will need to download the latest LTS release of the .NET framework SDK for your OS (Windows, Mac, or Linux).
You will need to use Git for version control. Git itself is a command line program which you can download from the Git Community web site. You can use Git from the command line , or use a Git GUI client. There is a very good Git client built into Visual Studio and you can also download the free GitHub Desktop app for working with Git.
Azure Dev Tools for Teaching is a subscription-based offering, paid for by the LCC CIT department, providing access to professional development and design tools, software, and services from Microsoft.
Note: You need to have a Microsoft account to access this page and sign up for this program. Microsoft has two kinds of accounts: personal and work/school. To sign up for this, use a personal account.
Microsoft Office 365 LCC students and staff can get a free subscription to Office 365, which includes Microsoft Word, Excel, PowerPoint, Access, and more.
On The Hub has partnered with Microsoft, Adobe, IBM, Symantec, VMware and other software publishers to offer discounted and free software for students and faculty.
Most software development documentation is written using Markdown. GitHub uses Markdown for almost all its docs including readme files and PR comments. You can write and edit Markdown directly on GitHub's web pages, but you might also want a Markdown viewer and/or editor to work with Markdown offline. Here are some options:
Visual Studio Markdown extension: This is a full featured Markdown editor and viewer.
Visual Studio Code: VS Code has built in Markdown editing features and there are a number of Markdown add-ons available as well.
MarkText: A highly recommended, free and open-source Markdown editor for Windows, macOS, and Linux, known for its clean interface and real-time preview.
Typora: A WYSIWYG (What You See Is What You Get) Markdown editor that runs on Windows, MacOS, and Linux. This might be one of the best MD editors, but it's not free, it's currently $14.95.
None of the software provided in these offers is required for this class, but you may want to take advantage of the free software.
The CIT computerlab (Building 19, room 135) is equipped with computers and software for students taking classes in the CIT department. There are tutors available in the lab to help you with your lab work. There is a schedule posted on the large white board inside the lab which lists the tutors and the times they will be available.
Tutoring is available online. You can drop into the Lane Support Hub Zoom Room and request a CIT tutor, or make an appointment with a CIT tutor via the scheduling page at lanecc.mywconline.com. More information is available on the LCC Tutoring Services web page.
Moodle is the Learning Management System for this course.
You will be deploying your web apps to the Microsoft Azure cloud. You can register for a free Azure subscription through Azure for Students.
Specific grading criteria will be applied to each of the labs, quizzes, and exams you will be working on in this class. Part of the lab involves a code review. Attendance is not graded.
| Assessment Activities | Points Each | Total |
|---|---|---|
| Quizzes 1–8 | 10 | 80 |
| Labs 1–8 | 40 | 320 |
| Code Reviews 1–8 | 10 | 80 |
| Midterm and Final Exams | 100 and 200 | 300 |
| Term Project | 220 | 220 |
Letter grades for the course will be determined by the following percentages:
| - | + | ||
|---|---|---|---|
| A | 90–91 | 92 - 97 | 98-100 |
| B | 80–81 | 82 - 87 | 88 - 89 |
| C | 70–71 | 72 - 77 | 78 - 79 |
| D | 60–61 | 62 - 67 | 68 - 69 |
| F | Below 60 |
The grade for assignments submitted after the due date will be reduced by 10%.
No late assignments may be submitted after the end of week 10.
Quizzes and exams cannot be taken after the due date. Contact your instructor in advance if you know you will have a schedule conflict so you can reschedule the quiz.
Exceptions will be made for illness or emergency situations.
You should complete each step in the learning activities by the day of the week shown below. Of course, it's always great to do these things even sooner!
| Monday | Tuesday | Wednesday | Thursday | Saturday |
|---|---|---|---|---|
| Start the assigned reading. | Participate in class. Submit a code review for your lab partner. | Take the reading quiz. | Participate in class. Submit the production version of last week's lab. | Send a PR to your lab partner for the beta version of your lab. |
This cycle will start on the second week of the term.
While students are encouraged to discuss labs and to use each other as resources, each student is responsible for his/her own work. In other words, you can help each other, but you can't copy any part of someone else's work. The end product must be each student's own individual work.
Generative AI tools such as Gemini, Claude or ChatGPT are useful resources and you are encouraged to use them to help you learn how to code, but not to do the coding for you unless a specific assignment has instructions that include using AI to assist with writing your code.
Any time AI is used as part of the coding process, you need to provide a comment or other documentation explaining what AI tools were used and how they were used.
Attendance is not graded but will be essential for successful completion of the class. Students who miss a class are responsible for obtaining the course content provided in class and mastering it. For students in an online class, watching the video recordings is equivalent to attending the class sessions.
LCC has a no-show drop policy. You must come to class at least once during the first week or be automatically dropped.
Lane Community College (LCC) is dedicated to providing inclusive learning environments. The Center for Accessible Resources (CAR) coordinates all academic accommodations for students at LCC. If you anticipate or experience academic barriers due to a disability, to request assistance or accommodations, contact the Center for Accessible Resources 541-463-5150 or accessibleresources@lanecc.edu.
Please be aware that any accessible tables and chairs in this room should remain available for authorized students who find that standard classroom seating is not usable.
The LCC main campus is located at 4000 East 30th Ave. Eugene, Oregon 97405.
| Winter Term 2026 | |
|---|---|
| Term begins | 1/5, Monday |
| Last day to drop and receive a refund | 1/12, Monday |
| Martin Luther King Jr. Day (college closed) | 1/19, Monday |
| Presidents' Day (college closed) | 2/16, Monday |
| Last day for schedule changes | 2/27, Friday |
| Finals Week | 3/16–3/20 |
View academic calendars on the LCC web site.
This cycle starts on the second week
Sunday
Finish the beta version of last week's lab. Send a PR to your lab partner. Start the assigned reading
Tuesday
Do a code review of last week's lab for your lab partner.
Wednesday
Take the reading quiz.
Thursday
Submit the production version of last week's lab.
(May be subject to change)
| Week | Topics | Lab Assignment |
|---|---|---|
| 1 1/5 | Intro to Web Dev Class starts Tuesday | Lab 1 Create an empty MVC site |
| 2 1/12 | Intro to MVC | Lab 2 Add pages and links to a site |
| 3 1/19 | Working with Data | Lab 3 Add models and data entry and publish to Azure |
| 4 1/26 | Entity Framework Database Migrations Deploying a DB to Azure | Lab 4 Add a DB to your site |
| 5 2/2 | Midterm quiz | Term project proposal Midterm quiz: In the classroom on 2/4 In the testing center 2/4 through 2/6 (tentative dates) |
| 6 2/9 | Unit testing with xUnit | Lab 5 Add a quiz and unit tests to your site. |
| 7 2/16 | Input Validation | Lab 6 Add validation to your web site |
| 8 2/23 | Repository Pattern More Unit Testing | Lab 7 |
| 9 3/2 | Linq and Seed Data | Lab 8 |
| 10 3/9 | Debugging Final quiz | Lab 9 (Extra Credit) - Debugging practice Final in classroom 3/11 Final in testing center 3/11–3/13 (tentative dates) |
| 11 3/16 | Project presentations | Term project |