Skip to content

cs130-w22/syllabus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

CS 130: Software Engineering, Winter 2022

Teaching Team

Instructor: Prof. Maged Elaasar

Lecture: MW 4PM to 5:50PM (Perloff Hall 1102 or Zoom)

1A TA: Steven Gong

Lab 1A: F 2:00PM to 3:50PM (Dodd Hall 121 or Zoom)

1B TA: Patricia Xiao

Lab 1B: F 12:00PM to 1:50PM (Franz Hall 1178 or Zoom)

Course Description

This course is at the intersection of computer science and engineering. It provides both theory and hands-on experience with the development of large-scale software systems. You will learn systematic methods for large-scale software development including: agile process, software analysis, architecture patterns, design patterns, code generation, unit testing, regression testing, bug finding, code refactoring and DevOps. You will get to practice these methods in the context of a software project developed in collaboration with other students. However, this course will not focus on coding; and students are expected to already have basic knowledge of Java, which will be used for basic coding exercises and to demonstrate coding examples.

Course Survey

In the first lecture, I will ask you to fill out a background survey on your background and what you are hoping to learn. In the second lecture, I will discuss how your expectations are aligned with and/or different from what is to be covered and emphasized in the course.

Grades

Participation: 5%

Homework: 20%

Midterm: 20%

Final: 25%

Project: 30%

Class Schedule

Date Topic Notes
M 1/3 Introduction to Software Engineering
W 1/5 Software Process (Process Models, Scrum Process)
F 1/7 Lab Project Kickoff
M 1/10 Software Analysis 1 (UML Diagrams: Basics)
W 1/12 Software Analysis 2 (UML Diagrams: Digging Deeper)
F 1/14 Lab Project Part A is due
M 1/17 Holiday: Martin Luther King
W 1/19 Software Architecture 1 (Architectural Patterns)
F 1/21 Lab
M 1/24 Software Architecture 2 (Cloud Architectures) Homework 1 is due
W 1/26 Software Design 1 (Creational Patterns)
F 1/28 Lab
M 1/31 Software Design 2 (Structural Patterns)
W 2/2 Software Design 3 (Behavioral Patterns)
F 2/4 Lab Homework 2 is due
M 2/7 Midterm Exam 4-5:50 pm
W 2/9 Software Code Generation (Abstraction, Automation)
F 2/11 Lab Project Part B is due
M 2/14 Software Testing 1 (coverage criteria, white box test, unit test)
W 2/16 Software Testing 2 (symbolic execution, regression test)
F 2/18 Lab
M 2/21 Holiday: Presidents’ Day
W 2/23 Software Code Review (Hoare Logic)
F 2/25 Lab Homework 3 is due Sun 2/27 midnight
M 2/28 Software Evolution & Maintenance (Anti-Patterns, Refactoring)
W 3/2 Software DevOps (Continuous Integration/Delivery/Monitoring) Guest Lecturer - On Zoom
F 3/4 Lab
M 3/7 Final Project Presentations (on Zoom) Project Part C/D are due
W 3/9 Final Project Presentations (on Zoom) ) Homework 4 is due
F 3/11 Final Exam Review Lab
M 3/14 Final Exam 11:30 am -2:30 pm (in person at Peroff 1102)

Participation

You are expected to attend and participate in all lecture and discussion sessions of this class. Participation will be measured by answering quizzes posted during class on Google forms. You will be allowed to miss up to 10% of the quizzes. This should allow you to address circumstances like being sick, having schedule conflicts, etc. without losing marks. So, plan accordingly, and do not ask your instructor or TA for make ups.

Homework

You will be given homeworks in this class with questions that are representative of those you will get on tests. Homework is individual (no team) effort (zero tolerance for collaboration). You should plan to submit them by the due date. Late submission may be allowed with a penalty on some homeworks.

Exams

You will write two exams in this class. The first is a Midterm that is given in week 6. The second is a Final that is given in week 11 (the finals week). Exams are always an individual (not team) effort (zero tolerance for any kind of collaboration).

Project

You will practice the software engineering process and methods that you learn in class to develop a software application as an open-source project on Github. The project will be carried by a team of 5-6 students (you will form such a team in the first week).

You will have the opportunity to propose your own unique app idea (web app, mobile app or desktop app) that can be developed in 8 weeks. You will have the freedom to choose a programming language and a technology stack to realize your app. Hence, it would be prudent to choose ones that team members already have expertise with or can manage to learn within this timeframe.

You are expected to showcase your project work incrementally over time through a set of deliverables (shown below). You will also be asked to present those deliverables, as well as provide constructive feedback on other teams’ deliverables.

Your TAs will be in charge of setting expectations for and grading your project deliverables. The focus will be on the quality of following the development process, using the methods taught in class, and justifying/communicating your decisions (not on making the app have the most features, the hottest UI or the trendiest tech stack). Students in the same team may not always receive the same grade, as TAs will consider your individual contribution/effort and your teammates' feedback when giving individual grades.

Project deliverables:

Part A: Application Concept, Epics, Feasibility, and Technology Stack (3%)

Part B: Application Analysis, Architecture and Design Descriptions (11%)

Part C: Application Realization, Testing, Integration, and Deployment (11%)

Part D: Application Demonstration (Youtube video) and Project Retrospective (5%)

Platforms

We will be using Bruin Learn as the main platform for posting the lecture and discussion material and making announcements so make sure to check it regularly. We will also use the Zoom platform to run the lecture and discussion sessions in the scheduled times for remote sessions. Those sessions will also be recorded so you can rewatch them at any time. We will be using Gradescope to receive your homework and exam grades. We will also be submitting your project deliverables through it ( one submission per team suffices). We will also be using the Piazza platform for discussions, Q/A and announcements. Finally, we will be using Google Forms for class quizzes and surveys.

Feedback

At some points, we will be asking you to give feedback on your learning experience using anonymous surveys. It is very important for us to know your reaction to what we are doing in the class, so I encourage you to respond to the surveys, to help us create an environment that is effective for teaching and learning.

Academic Integrity

Each student is expected to uphold the values of integrity, honesty, trust, fairness, and respect toward peers and community. Violations (e.g., cheating, unpermitted collaboration or use of resources) will absolutely NOT be tolerated. In your first week, you must read and sign UCLA's Academic Integrity Statement and submit it through Gradescope.

Class Policies

  • The instructor cannot accommodate individual requests to schedule the Midterm or Final exam on different dates.
  • Grades for individual components will not be curved. However, the final grade may get adjusted using a curve before letter grades are assigned.

About

This is the syllabus of CS 130 W22

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published