1 of 23

Course Overview

CS 240: Advanced Software Construction

2 of 23

My Story

3 of 23

My Testimony

4 of 23

Why I am Here

The mission of Brigham Young University — founded, supported, and guided by The Church of Jesus Christ of Latter-day Saints — is to assist individuals in their quest for perfection and eternal life. That assistance should provide a period of intensive learning in a stimulating setting where a commitment to excellence is expected and the full realization of human potential is pursued.

All instruction, programs, and services at BYU, including a wide variety of extracurricular experiences, should make their own contribution toward the balanced development of the total person. Such a broadly prepared individual will not only be capable of meeting personal challenge and change but will also bring strength to others in the tasks of home and family life, social relationships, civic duty, and service to mankind.

To succeed in this mission the university must provide an environment enlightened by living prophets and sustained by those moral virtues which characterize the life and teachings of the Son of God.

5 of 23

Course Overview

  • This course is all about learning to build large programs
  • We will do this using a variety of technologies, including: Java, Relational databases, and Web APIs
  • Programming is hard
  • Time spent on large programs is sometimes unpredictable
  • You will struggle at times
    • This does not mean you can’t do it!
    • This does not mean you shouldn’t do it!
    • This means you are learning!

6 of 23

Course Overview (cont.)

  • This is a project-based course
  • You will complete the projects in Java
  • IT IS CRITICAL TO YOUR SUCCESS IN THIS CLASS THAT YOU COMPLETE THE ASSIGNED READINGS BEFORE CLASS
  • Lectures will focus on reinforcing difficult concepts with a focus on concepts required for the projects

7 of 23

Textbook

1

2

Available for free from the library’s O’Reilly Books Online subscription.

https://dbs.lib.byu.edu/safari-tech-books

8 of 23

Course Materials

  • Course lecture material and code examples are on Github (https://github.com/softwareconstruction240)
  • We still use Canvas for:
    • Assignment due dates and submission
    • Grade book
    • Exams are Canvas quizzes
    • “Getting Help” link is on Canvas
      • TA schedule
      • Help queue link

9 of 23

Course Structure

  • Pre-Lecture Reading
  • Programming Projects
    • A Chess client and server built in different phases throughout the semester
  • The first four programming projects are passed-off with an autograder
  • TA last two are passed off with a combination of the autograder and a TA
  • Exams
    • Programming Exam
    • Final Exam on the last few topics covered at the end of the semester

10 of 23

Programming Exam

  • Used to ensure that students can successfully create a modest program with no outside help
  • Timed (3.5-hour) implementation of the first programming assignments completed in the class
    • Chess Phase-0
  • Can take the exam up to three times
    • Not a large percentage of the class points, but you must pass to pass the class

11 of 23

Programming Exam (cont.)

  • Taken remotely monitored/recorded by Honorlock
  • Computer Requirements
    • Reliable Internet Connection
    • Working Video Camera
    • Working Microphone
    • Recent version of Chrome Web Browser (No other browser will work)
    • Only one monitor (unplug all others)
    • In a room free from distractions (where no one will be talking to you or looking at your screen with you)

12 of 23

Citations

1. Horstmann, C. S. (2025). Core Java for the Impatient, 4th Edition. [Cover of book, Core Java for the Impatient]. Addison-Wesley Professional. (Fair Use).

13 of 23

Course Policies

14 of 23

Course Policies

  • Read the “Syllabus” on the GitHub website.

https://github.com/softwareconstruction240/softwareconstruction/blob/main/instruction/syllabus/syllabus.md

15 of 23

TA Help Policies

  • The TA’s will not have time to teach you Java (they cannot substitute for attending class, watching the lecture videos or completing the assigned reading)
  • Before seeking help from the TAs:
    • Read the project specification thoroughly
    • Work for at least 30 minutes on your own
    • Be up-to-date on all reading assignments
    • Attend or watch every lecture to the current point in the schedule (i.e. don’t be behind on lectures)
    • Review and understand related coding examples and slides under “Lecture Files”
    • Have a well-formed question
  • You are limited to 3 times per day on the help queue (not counting pass offs)
  • This is a summary. Read the complete list on the course website.

16 of 23

Academic Integrity Policy

“Working Together” section of Policies page:

All assignments that you turn in must be your own work. You may discuss concepts, ideas, and general approaches with others (e.g. at a whiteboard), but when it comes time to create actual design documentation or source code, you must work alone. You may not share electronic files or hard-copy printouts containing designs or source code with other students, either as giver or receiver. You may not work in close synchronization with other students in a side-by-side fashion. Violations of this policy will result in all involved students failing the course and the possibility of further action at the university level.

17 of 23

Academic Integrity Policy (cont.)

Be aware that we use plagiarism detection software to ensure that the source code you submit was not derived from code written by other current or past CS 240 students. Specifically, it is not appropriate to search the Web for solutions published by other students, or to otherwise obtain source code from other students. If you do this, you are likely to get caught, which will result in (at least) failing the class. Of course, we know that most of you would not do this, but sometimes people make mistakes when the pressure is high.

You may not use AI systems such as ChatGPT or Copilot to write your code. Such systems merely repeat content they found on the Web, and, in effect, are just an indirect way of copying other students' solutions from the Web. This is not acceptable. If you use AI to write your code, it is highly likely that your code will be flagged by our plagiarism detection system. The code it writes for you will be very similar to code it writes for other students, and that code will be similar to student solutions found on the Web.

18 of 23

End of Semester Policies

  • Please do not ask your instructor to "bump" your grade at the end of the semester
  • Please do not ask to turn in assignments after the last day of classes—this is against university policy
    • The only way to submit assignments after the last class day of class is to qualify for and receive an Incomplete
      • Must have been participating in and passing the class on the discontinuance deadline
      • Must have had a non-academic situation after the discontinuance deadline that prevents you from being able to finish the class on time
      • Must be approved by your instructor
  • It is possible to apply through the registrar's office to be allowed to withdraw from a course after the withdrawal deadline

19 of 23

Blank

20 of 23

Keys to Success in CS 240

21 of 23

Keys to Success in CS 240

  • Keep up with the assigned reading

  • Attend every course lecture (blended section students)

  • Watch every lecture video (online section students)

  • DO NOT PROCRASTINATE STARTING OR WORKING ON THE PROJECTS
    • Some of the phases will take 40+ hours to complete

22 of 23

What To Do Next

  • Review the course Github site
  • Review course policies on course Github site
  • Complete the Chess Github project assignment
  • Do readings for the first two days of class

23 of 23

Blank