CSE 341 - Course Materials

Course Outcomes

Students that successfully complete this course will be able to do the following:

  • Be ready for an entry-level position as a Node.js backend developer
  • Develop secure APIs that perform CRUD operations on a NoSQL database
  • Document APIs using modern API documentation tools
  • Deploy and maintain an API in a production environment
  • Effectively contribute to a team while learning independently
  • Contribute to a professional portfolio by deploying multiple projects

Course Description

Students admitted in this course should have taken WDD 230 and be comfortable with HTML, CSS, and JavaScript.

As a 300 level CSE course, this class is designed to provide students with real-world learning opportunities. In any given lesson, there will be several suggested resources provided to you, but none of them are intended to be comprehensive in nature. Instead, you will be assigned tasks to complete, and you will be expected to figure out where to go to learn the content to be able to complete your tasks. This is very similar to industry work. In essence, you will be given requirements (the "what"), and you will research and figure out the "how".

With that said, the first four lessons of the course make up your first project, and you will have access to sample solutions with videos for all of these assignments while learning how to create these backend applications. There will be class exercises and code samples throughout the whole course to help you master this material.

Course Goals

  • Become comfortable working with teams
  • Become confident in learning on your own
  • Become awesome with Node.js and MongoDB
  • Become comfortable publishing Node APIs.
  • Have multiple API projects to add to professional portfolio

Course Communication

All course communications will take place through Microsoft Teams. Please join our class team using the link in I-Learn, and be sure to download the desktop and mobile applications to stay connected to our course group. All announcements relevant to our class, class meetings, potential changes, and so on will take place via Teams. You are expected to stay connected and be aware of any such announcements.

Course Technologies

Required Technologies

In this course, you will always use the following technologies:

  • GitHub to store your code
  • Render to deploy your code
  • YouTube to demonstrate the functionality of your code

If you use other technologies to store, deploy or demonstrate your code, you will not receive a grade. You must use GitHub, Render and YouTube.

When you submit your assignments, you will submit three links like this:

Recommended Technologies

Course Schedule

This course is comprised of 13 lessons. Full semester sessions of this course will spend a week on each lesson. Block sessions of this course will cover two lessons a week, and will complete the course in roughly 6.5 weeks.

The BYU-Idaho standard for student workload in courses is about 3–4 hours per week per credit hour. This course is a three-credit class, which means you should plan to spend 9–12 hours per week on this course. Unless, of course, you are taking this class on the block, then you should plan on 18–24 hours per week.

Do not sell yourself short here. Plan out your schedule to ensure you have the time for this class. This is an extremely technical, project-heavy software engineering courseand as such, you should make time in your schedule each week for this class. You will find that this will take you to a new level in your abilities and prepare you for a career in this field.

Project Schedule
  • Lessons 1–4: Learn the stack, publish first project
  • Lessons 5–8: Second project with authentication
  • Lessons 9–13: Final project

Course Task Breakdown

There are three main activity types in this course. This section of the syllabus will explain what each of them is and provide some tips to help you be successful with each.

Learning Material

As mentioned previously, the learning material for each lesson will never be comprehensive. You are not required to spend a lot of time on it or view all of it. It is there to provide loose direction as you work on your assignments. One approach that some students take is to spend 5-10 minutes perusing the learning material just to see what is there, then to go to the assignments for the lesson and start trying to work through the requirements. Then, the learning material can be referenced afterwards when there are specific inquiries that require answers. Please also remember that you will never have any quizzes or exams based on the learning material. Instead, you will use your assignments and their requirements to learn, and your learning and growth will be assessed based on your assignments.

Team Activities

Team activities are a crucial aspect of this course. The majority of full-stack web development that is done in the workplace will be performed in teams. Similar to learning how to write an API, being an effective team member is a skill that is learned through practice and effort. You will have team activities to do each lesson for the first eight lessons of the course. These are independent of one another and may be done individually if the team has scheduling conflicts. The final project will take place in lessons 9-13 and will be a large project that you complete with your team.

Personal Assignments

Personal assignments in this course are designed to help you learn, grow, and gain skills needed for future projects in this class as well as potential career opportunities in this field. Solutions are provided for the first four lessons of the semester to assist students in their learning of new material.

Grading

General Information

The code of each assignment and project should be written by you and implement the concepts taught in the respective lesson(s).

The final project makes up roughly half of your grade in the course. While solutions are provided for the first few assignments, remember that they are there to help you learn and prepare you to build applications on your own. You will benefit most as you do the work on your own, searching for help and assistance as needed, then comparing your solution with the ones provided. If you have worked hard during the first half of the semester, then you will have all of the tools and knowledge needed to effectively complete your final project.

Grading Specifics

  • 100% - Awarded for professional work that is polished and ready to present to potential employers.
  • 90% - Awarded for work that is fully functional and meets all specified assignment requirements.
  • 80% - Awarded for work that is mostly functional with some minor issues.
  • 70% - Awarded for work that is mostly functional with some major issues.
  • 60% - Awarded for work that is mostly dysfunctional but has some strong aspects.
  • <60% - Completely dysfunctional, incomplete, or not-submitted.

Late Work

As a sign of professionalism and respect, you should complete your work on time. Extenuating circumstances should be discussed with the instructor prior to the assignment's due date.

You will never receive full credit for submitting late work unless you've cleared it with the instructor prior to the assignment due date.

Assignments submitted late will receive a 20% grade deduction per day starting with the minute that they're late. If you are concerned about this deadline, you are always welcome to submit your work early.

University Policies

Students with Disabilities

Brigham Young University-Idaho is committed to providing a working and learning atmosphere that accommodates qualified persons with disabilities. If you have a disability and require accommodations, please contact the Disability Services Office at (208) 496-9210 or visit their website and follow the Steps for Receiving Accommodations. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with students and instructors by the Disability Services Office. [This course may require synchronous meetings. OR This course includes required synchronous meetings.] If you are currently registered with the Disability Services Office and need an interpreter or transcriber for these meetings, please contact the deaf and hard of hearing coordinator at (208) 496-9219.

Other University Policies

Student Honor and Other Policies

Please read through the document called University Policies. It gives important information about the following topics:

  • Student Honor
  • Academic Honesty
  • Student Conduct
  • Sexual Harassment
  • Student with Disabilities
  • Complaints and Grievances
  • Copyright Notice

Go to the Student Resources module in I-learn to review further resources and information.

I-Learn

All course assignments, readings, activities, and so on are found within these webpages. I-Learn will simply function as a way to schedule tasks and due dates, submit assignments, and get graded for your work.