CSE 110 Software Engineering

Welcome to CSE 110 Software Engineering!  We love building great software, and want to help you become great software engineers.

This website is divided into many sections (pages), accessible from the drop-down at the upper-right.

Class Meetings

LECTURE :     MWF 1:00p-1:50p Pepper Canyon Hall 106  [podcast link]
                                  Clicker frequency code is CA

LAB:   Monday 2:00-4:50pm, CSE Basement, rooms B230, and B240, and B250

DISCUSSION:  [podcast link]

      M      5:00p-5:50p    FAH 1101
      Tu 7:00p-7:50p FAH 1450

You can attend any discussion section, and you can attend multiple discussions per week.  Content will be roughly the same throughout the week.  See attendance policy for details.

FINAL:     Friday, March 22nd, 11:30am - 2:29pm  (Location TBD, see Canvas and Piazza for details)

OFFICE HOURS: Please see "Team" page for details.

Course Description

The timely construction of a quality software system that meets a customer's needs, is challenging. In this course you will get an introduction to team-based software engineering and development methods, including specification, design, implementation, testing, and software process.  The course emphasizes team development, agile methods, software design, and use of tools such as IDE's, version control, test harnesses, and continuous integration.

Course Requirements and Grading

   Grading elements [in percent]:

Requirement to follow Canvas, Piazza Forum, and UCSD E-Mail

Occasionally we may need to contact you regarding your homework or some pressing matter.  We may use Piazza, and perhaps additionally e-mail.  When we use e-mail, we will use your official UCSD e-mail address, as registered in TritonLink.  You are responsible for reading course-related e-mails sent to your UCSD account in a timely manner, at least once a day.

We also post important announcements to the Winter 2024 CSE 110 Piazza Forum.  You should check Piazza at least once a day.  You are responsible for keeping yourself subscribed to these forums so that you automatically receive forum posts as an e-mail.  Note that there is a mobile client for Piazza.   Use the "Unread" and "Updated" filters to speed your reading.  On the web, these are at the upper left.  On mobile, these are accessed at the upper right via the "kebab" menu (three vertical dots).  In short, although we will often make announcements at the beginning of class for important matters, we don't have time to announce every significant course event, and Piazza serves as an official place for us to keep the class up to date.

Assignments, lecture slides, etc. will be posted to the course's Canvas [at canvas.ucsd.edu].  You are responsible for all the content there.

Please see the Team page tab for additional information about communicating with the CSE 110 staff.

Textbooks, iClickers, and other Resources

We will be using iClickers fairly extensively in the classroom, and they are a graded element of the course.  The bookstore has these in stock.  If you have an older iclicker, that's OK.  You don't need the newer model.

Canvas will maintain the weekly calendar of activities and the resources that go with them, including project resources.  It also hosts online quizzes and grades.  We will not always post on Piazza when something is added there, as many additions are regular and frequent (e.g., reading quizzes, lecture slides).

All of the required texts and most of the recommended texts are available online (via SSO login), up to only 20 readers at a time (so buy the books!).  You should buy the first two required texts (HFSD and HFDP); these will be great references in the future, as well.  The acronym tags listed in front of the readings below will be used to assign readings, which are required to be completed before class.  From time to time we may also assign a web resource or video to watch.

NOTE: Page numbers may vary between paper and digital versions.  Unless otherwise indicated, page numbers are from the paper edition.  Please use Chapter and Section names to disambiguate as necessary.

Mandatory Class Texts

[HFSD] Dan Pilone, Russell Miles: Head First Software Development, O'Reilly Media, 2007 (or 2008 or 2009) [online]

[HFDP] Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates: Head First Design Patterns, 2nd Edition, O'Reilly Media, 2020. [online]

Recommended Class Texts

[AND] Dawn Griffiths and David Griffiths.  Head First Android Development, 2nd Edition, O'Reilly Media, 2017. [online]

[JIAN] Benjamin Evans, Jason Clark, and David Flanagan: Java in a Nutshell, 8th edition, O'Reilly, 2018 [online]  (this is a great reference book, but if you have another, that's OK)

[JENS] David Flanagan: Java Examples in a Nutshell, third edition, O'Reilly Media, 2004 [online]

[IJPDS] Y. Daniel Liang, Introduction to Java Programming and Data Structures, Comprehensive Version (12th Edition), 2019.  (any Java textbook is fine)