Skip to content

semmypurewal/software-engineering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Engineering

Office Hours

Description

In this class, we'll learn about a variety of important Software Engineering topics from a practical point of view. This includes Developer Environments, Version Control, Dependency Management, Static Analysis, Testing, Continuous Integration, Async Concurrency, Front End Engineering, and Back End Engineering.

You'll be exposed to several important technologies including Git, Github, Python, JavaScript, React, Fast API, VS Code, Docker and Kubernetes.

Prerequisites

You should know the basics of programming including variables, types, loops, and fundamental data structures. This is typically achieved through a 3 semester sequence of programming through a data strucutres class. You should have used a text editor of some sort to edit code, and it's preferable if you have some rudimentary experience with version control. We'll also talk about some systems stuff in this class, but won't assume too much there.

Materials

You'll need to bring a laptop to class to work on labs and various exercises. If you're running Windows, you will be expected to install install the Windows Subsystem for Linux.

In addition, you'll need to install VS Code and Docker Desktop for the OS of your choice.

There is no required textbook for the course, but we'll occasionally assign readings out of Software Engineering at Google which is freely available online. You're also encouraged to purchase a print copy of the book.

Course Format

This course will consist of the following:

  1. Concept Lectures - typically one 30-45 minute lecture per week
  2. Discussions - typically 30 minutes per week
  3. Readings -- typically one hour of out-of-class readings per week
  4. Labs - roughly one lab per week, one hour in-class and two hours out-of-class
  5. Projects - three software development projects
  6. Guest Speakers - two to three in-class guest speakers from industry

Assessment

We'll have a midterm exam and a final, and you'll get a grade on each lab and project. The grade breakdown will roughly be as follows:

  • 10%: Participation (including attendance & quizzes)
  • 30%: Labs
  • 30%: Projects
  • 15%: Midterm
  • 15%: Final Exam

Class Policies

Behavior

Be respectful to everyone at all times.

Attendance

Attendance is required and will be taken. Unannounced quizzes may be given at the beginning of class.

Laptops

Laptops are required for this class, but keep them closed when we're discussing things as a group (lecture, discussions, guest speakers).

Due Dates

There will be something due on Sunday at 5PM almost every week of the semester. This will generally be your weekly labs, and projects will be due on weeks where there are no labs due.

There will be some class time set aside for labs and projects every week, but they will not be designed to be completed entirely in class.

Late Submissions

Late submissions are not accepted.

Citations

You're encouraged to use Chat GPT, Stack Overflow, Google, etc for your work in this class, unless otherwise specified in the assignment.

If you copy/paste code (and even if you modify it), cite it in a comment block above the code. Include a link or say that it was generated by Chat GPT.

Additional Information

About

Content for the software engineering class I taught at UNCA in the Spring of 2024.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •