14. Appendix: Course Syllabi

These are the official course syllabi for the most recent section(s) of this course.

14.1. Course: COMP 371/471 Programming Languages

14.2. Section: 001 Spring 2026

  • General format:

    • This is a on-campus, face-to-face class involving lectures, group activities, etc.

    • To earn points for group activities or other in-class activities, you are required to participate during class time (in person or remotely) or make up for the work outside of class.

    • If you have a scheduled absence, please ask a classmate to record the session for you and/or share their notes. In addition, some prerecorded videos are available through Panopto or YouTube.

    • The university’s statement about the observation of religious holidays is available [here](https://www.luc.edu/academicaffairs/homenews/honoringstudentreligiousobservances.shtml).

  • Estimated workload: 9 to 12 hours per week including class time.

  • Class time and location (spring 2026): MWF 10:25-11:15 in IES 122, LSC

  • Communication: All communication regarding this class takes place in the classroom (verbal) and MS Teams (written). Most will be in the team-level channel specific to this term. For individual or group-level concerns, you may use direct individual or group messages in MS Teams; my user ID is klaufer@luc.edu. (To help me prioritize your class-related communication, please DO NOT use email!)

  • Instructor: Konstantin Läufer | GitHub | Google Scholar | Rate My Prof

  • TA: Nick Synovic (contact info and office hours TBA)

  • Office hours:

    • for very short questions/matters, right after class outside of IES 122, no appointment required

    • MWF 14:00-15:00 in Doyle Hall 307 or online (by appointment via Calendly)

    • TA office hours TBD (see MS Teams announcements)

  • Required materials:

  • Additional resources: Appendix: Resources

  • Grading:

    Additive point system:

    • 21 points: quizzes 0 3, 1-3 6 each

    • 24 points: two tests, 12 each

    • 40 points: projects (Percentage effort on each group project will be measured by an end-of-term questionnaire. Group project grades and/or final course grades may be adjusted to account for significant discrepancies in effort among group members.)

      • 0a 2

      • 0b 3

      • 1a 3

      • 1b/c 6 each

      • 2a 6

      • 3a/b 7 each

    • 12 points: group activities 1-4 3 each

    • 5 points: presentation

    • 5 points: participation (in-class and online, including announcements of and reports from relevant professional events, GitHub issues and PRs for course examples, etc.)

    • 11 points: automatic starting baseline for undergrads or additional work for grad students (extra credit opportunity for undergrads):

      • 2b 6 or 3c 7 (extra credit for both)

      • research paper presentation 5

    • 1 point extra credit: 0c early presentation topic selection

    • 1 point extra credit: submission of course evaluation (submit screenshot of confirmation of submission)

    Max total: 118 points plus extra credit

    Grading schema (in points):

    • A 110 points

    • A- 105

    • B+ 100

    • B 95

    • B- 90

    • C+ 85

    • C 80

    • C- 75

    • D+ 70

    • D 65

    • F < 70

  • Academic integrity: LUC | CAS | Grad

  • Sakai site for this section (gradebook)

  • MS Team (mandatory subscription and participation in spring 2026 channel)

  • Important dates (tentative) for quizzes and tests:

    • Week 2 - Mon 19 January: NO CLASS (MLK Day)

    • Week 3 - Mon 26 January: quiz 0

    • Week 5 - Mon 9 February: quiz 1

    • Week 7 - Mon 23 February: test 1

    • Week 8 - Mon-Fri 2-6 March: NO CLASS (spring break)

    • Week 10 - Mon 16 March: quiz 2

    • Week 11 - Mon 23 March: last day to withdraw with W instead of WF

    • Week 11 - Mon-Fri 23-27 March: ONLINE CLASS (Zoom) - details TBA

    • Week 12 - Fri 3 April: NO CLASS (Good Friday)

    • Week 13 - Mon 6 April: NO CLASS (Easter Monday)

    • Week 13 - Wed 8 April: test 2

    • Week 16 (finals week) - quiz 3 (take home) - NO IN-CLASS FINAL EXAM

  • Recording of class meetings: In this class, software may be used to record live class sessions. As a student in this class, your participation in live class discussions will be recorded. These recordings may be made available only to students enrolled in the class, to assist those who cannot attend the live session or to serve as a resource for those who would like to review content that was presented. All recordings will become unavailable to students in the class when the course has concluded. The use of all video recordings will be in keeping with the University Privacy Statement shown below.

  • Privacy Statement: Assuring privacy among faculty and students engaged in online and face-to-face instructional activities helps promote open and robust conversations and mitigates concerns that comments made within the context of the class will be shared beyond the classroom. As such, recordings of instructional activities occurring in online or face-to-face classes may be used solely for internal class purposes by the faculty member and students registered for the course, and only during the period in which the course is offered. Students will be informed of such recordings by a statement in the syllabus for the course in which they will be recorded. Instructors who wish to make subsequent use of recordings that include student activity may do so only with informed written consent of the students involved or if all student activity is removed from the recording. Recordings including student activity that have been initiated by the instructor may be retained by the instructor only for individual use.

  • Information about Accessibility Support: Loyola University Chicago provides reasonable academic and student life accommodations for students with disabilities. Students interested in receiving academic accommodations related to a disability or other health condition are invited to register with the Student Accessibility Center (SAC) at https://luc.edu/sac/applywithsac. Students may register with the SAC at any point in their academic career, however the SAC encourages students to register as early as possible to reduce delay in delivery of accommodations. The SAC, student, and professor will engage in an interactive process to determine how each student’s accommodations are applied to individual class sections.

    Please note that in this class, software may be used to audio-record class lectures to provide equal access to students with disabilities. Students approved for this accommodation use recordings for their personal study only and recordings may not be shared with other people or used in any way against the faculty member, other lecturers, or students whose classroom comments are recorded as part of the class activity. Recordings are deleted at the end of the semester.

    For more information about registering with the SAC or questions or concerns regarding the implementation of approved accommodations, please contact the SAC at 773-508-3700 or SAC@luc.edu. Students are also welcome to visit the SAC on the first floor of Sullivan Center, Suite 117, to share questions or concerns with one of our accessibility specialists.

    (Please see also luc.edu/sac/faculty.)

  • Information about Title IX: As an instructor, I am a Responsible Campus Partner (“RCP”) under Loyola’s Comprehensive Policy and Procedures for Addressing Discrimination, Sexual Misconduct, and Retaliation (available at luc.edu/equity. While my goal is for you to be able to engage fully and authentically with our course material through class discussions and written work, I also want to be transparent that as a RCP I am required to report certain disclosures of sexual misconduct (including sexual assault, sexual harassment, intimate partner and/or domestic violence, and/or stalking) to the Office for Equity & Compliance (“OEC”). As the University’s Title IX office, the OEC coordinates the University’s response to reports and complaints of sexual misconduct (as well as discrimination of any kind) to ensure students’ rights are protected.

    As an instructor, I also have an obligation under Illinois law to report disclosures of or suspected instances of child abuse or neglect (https://luc.edu/hr/legal-notices/mandatedreportingofchildabuseandneglect).

    The University maintains such reporting requirements to ensure that any student who experiences sexual/gender-based violence receives accurate information about available resources and support. Such reports will not generate a report to law enforcement (no student will ever be forced to file a report with the police). Additionally, the University’s resources and supports are available to all students even if a student chooses that they do not want any other action taken. If you have any questions about this policy, you are encouraged to contact the OEC at equity@luc.edu or 773-508-7766.

    If you ever wish to speak with a confidential resource regarding gender-based violence, I encourage you to call The Line at 773-494-3810. The Line is staffed by confidential advocates from 8:30am-5pm M-F and 24 hours on the weekend when school is in session. Advocates can provide support, talk through your options (medical, legal, LUC reporting, safety planning, etc.), and connect you with resources as needed – without generating a report or record with the OEC. More information about The Line can be found at luc.edu/wellness.

14.3. Section: 001 Fall 2025

  • General format:

    • This is a on-campus, face-to-face class involving lectures, group activities, etc.

    • To earn points for group activities or other in-class activities, you are required to participate during class time (in person or remotely) or make up for the work outside of class.

    • If you have a scheduled absence, please ask a classmate to share notes. In addition, some prerecorded videos are available through Panopto or YouTube.

    • The university’s statement about the observation of religious holidays is available [here](https://www.luc.edu/academicaffairs/homenews/honoringstudentreligiousobservances.shtml).

  • Estimated workload: 9 to 12 hours per week including class time.

  • Class time and location (fall 2025): MWF 09:20-10:10 in Cuneo 324, LSC

  • Communication: All communication regarding this class takes place in the classroom (verbal) and MS Teams (written). Most will be in the team-level channel specific to this term. For individual or group-level concerns, you may use direct individual or group messages in MS Teams; my user ID is klaufer@luc.edu. (To help me prioritize your class-related communication, please DO NOT use email!)

  • Instructor: Konstantin Läufer | GitHub | Google Scholar | Rate My Prof

  • TA: Nick Synovic (contact info and office hours TBA)

  • Office hours:

    • for very short questions/matters, right after class outside of Cuneo 324, no appointment required

    • MWF 14:40-15:40 in Doyle Hall 203 or online (by appointment via Calendly)

    • TA office hours TBD

  • Required materials:

  • Additional resources: Appendix: Resources

  • Grading:

    Additive point system:

    • 21 points: quizzes 0 3, 1-3 6 each

    • 24 points: two tests, 12 each

    • 40 points: projects (Percentage effort on each group project will be measured by an end-of-term questionnaire. Group project grades and/or final course grades may be adjusted to account for significant discrepancies in effort among group members.)

      • 0a 2

      • 0b 3

      • 1a 3

      • 1b/c 6 each

      • 2a 6

      • 3a/b 7 each

    • 5 points: group activity 4

    • 5 points: presentation

    • 5 points: participation (in-class and online, including announcements of and reports from relevant professional events, GitHub issues and PRs for course examples, etc.)

    • 11 points: automatic starting baseline for undergrads or additional work for grad students (extra credit opportunity for undergrads):

      • 2b 6 or 3c 7 (extra credit for both)

      • research paper presentation 5

    • 1 point extra credit: 0c early presentation topic selection

    • 1 point extra credit: submission of course evaluation (submit screenshot of confirmation of submission)

    Max total: 111 points plus extra credit

    Grading schema (in points):

    • A 100 points

    • A- 96

    • B+ 92

    • B 88

    • B- 84

    • C+ 80

    • C 75

    • C- 70

    • D+ 65

    • D 60

    • F < 60

  • Academic integrity: LUC | CAS | Grad

  • Sakai site for this section (gradebook)

  • MS Team (mandatory subscription and participation in fall 2025 channel)

  • Important dates (tentative) for quizzes and tests:

    • Week 1 - Mon 1 September: NO CLASS (Labor Day)

    • Week 3 - Mon 8 September: quiz 0

    • Week 5 - Mon 22 September: quiz 1

    • Week 7 - Mon 6 October: NO CLASS (fall break)

    • Week 8 - Mon 13 October: test 1

    • Week 10 - Mon 27 October: quiz 2

    • Week 10 - Fri 31 October: last day to withdraw with W instead of WF

    • Week 13 - Mon 17 November: ONLINE CLASS (Zoom) - test 2

    • Week 14 - Mon 24 November: ONLINE CLASS (Zoom)

    • Week 14 - Wed/Fri 26/28 November: NO CLASS (Thanksgiving break)

    • Week 15 - Mon 1 December: ASYNC CLASS (group activity - details will be available shortly)

    • Week 16 (finals week) - quiz 3 (take home) - NO IN-CLASS FINAL EXAM

  • Recording of class meetings: In this class, software will be used to record live class discussions. As a student in this class, your participation in live class discussions will be recorded. These recordings will be made available only to students enrolled in the class, to assist those who cannot attend the live session or to serve as a resource for those who would like to review content that was presented. All recordings will become unavailable to students in the class when the course has concluded. The use of all video recordings will be in keeping with the University Privacy Statement shown below.

  • Privacy Statement: Assuring privacy among faculty and students engaged in online and face-to-face instructional activities helps promote open and robust conversations and mitigates concerns that comments made within the context of the class will be shared beyond the classroom. As such, recordings of instructional activities occurring in online or face-to-face classes may be used solely for internal class purposes by the faculty member and students registered for the course, and only during the period in which the course is offered. Students will be informed of such recordings by a statement in the syllabus for the course in which they will be recorded. Instructors who wish to make subsequent use of recordings that include student activity may do so only with informed written consent of the students involved or if all student activity is removed from the recording. Recordings including student activity that have been initiated by the instructor may be retained by the instructor only for individual use.

  • Information about Accessibility Support: Loyola University Chicago provides reasonable academic and student life accommodations for students with disabilities. Students interested in receiving academic accommodations related to a disability or other health condition are invited to register with the Student Accessibility Center (SAC) at https://luc.edu/sac/applywithsac. Students may register with the SAC at any point in their academic career, however the SAC encourages students to register as early as possible to reduce delay in delivery of accommodations. The SAC, student, and professor will engage in an interactive process to determine how each student’s accommodations are applied to individual class sections.

    Please note that in this class, software may be used to audio-record class lectures to provide equal access to students with disabilities. Students approved for this accommodation use recordings for their personal study only and recordings may not be shared with other people or used in any way against the faculty member, other lecturers, or students whose classroom comments are recorded as part of the class activity. Recordings are deleted at the end of the semester.

    For more information about registering with the SAC or questions or concerns regarding the implementation of approved accommodations, please contact the SAC at 773-508-3700 or SAC@luc.edu. Students are also welcome to visit the SAC on the first floor of Sullivan Center, Suite 117, to share questions or concerns with one of our accessibility specialists.

    (Please see also luc.edu/sac/faculty.)

  • Information about Title IX: As an instructor, I am a Responsible Campus Partner (“RCP”) under Loyola’s Comprehensive Policy and Procedures for Addressing Discrimination, Sexual Misconduct, and Retaliation (available at luc.edu/equity. While my goal is for you to be able to engage fully and authentically with our course material through class discussions and written work, I also want to be transparent that as a RCP I am required to report certain disclosures of sexual misconduct (including sexual assault, sexual harassment, intimate partner and/or domestic violence, and/or stalking) to the Office for Equity & Compliance (“OEC”). As the University’s Title IX office, the OEC coordinates the University’s response to reports and complaints of sexual misconduct (as well as discrimination of any kind) to ensure students’ rights are protected.

    As an instructor, I also have an obligation under Illinois law to report disclosures of or suspected instances of child abuse or neglect (https://luc.edu/hr/legal-notices/mandatedreportingofchildabuseandneglect).

    The University maintains such reporting requirements to ensure that any student who experiences sexual/gender-based violence receives accurate information about available resources and support. Such reports will not generate a report to law enforcement (no student will ever be forced to file a report with the police). Additionally, the University’s resources and supports are available to all students even if a student chooses that they do not want any other action taken. If you have any questions about this policy, you are encouraged to contact the OEC at equity@luc.edu or 773-508-7766.

    If you ever wish to speak with a confidential resource regarding gender-based violence, I encourage you to call The Line at 773-494-3810. The Line is staffed by confidential advocates from 8:30am-5pm M-F and 24 hours on the weekend when school is in session. Advocates can provide support, talk through your options (medical, legal, LUC reporting, safety planning, etc.), and connect you with resources as needed – without generating a report or record with the OEC. More information about The Line can be found at luc.edu/wellness.

14.4. Detailed Course Outline

  • business and software engineering contexts (1 week)

    • software requirements

      • functional requirements

      • nonfunctional requirements

    • development process

      • testing

      • refactoring

      • automation

    • design principles and patterns

      • separation of concerns

      • parametricity

      • SOLID

      • GoF/POSA

  • imperative and object-oriented programming (2 weeks)

    • console applications

    • constant-space complexity

    • logging

    • domain modeling

    • using traits for modularity and dependency injection

  • functional programming (4 weeks)

    • defining algebraic data types

      • scalars: enumerations

      • sublinear structures: numbers, option

      • linear structures: lists, maps

      • nonlinear structures: trees

    • implementing behaviors on algebraic data types

      • pattern matching

      • recursion

    • higher-order functions

    • predefined types and their behaviors

    • recursion patterns

    • higher-kinded types

  • programming language representation and interpretation/execution (4 weeks)

    • language design space

    • scanners (lexical analyzers)

    • parsers (syntax analyzers)

    • interpreters and compilers

    • domain-specific languages

  • concurrent and parallel programming (3 weeks)

    • parallel collections

    • futures and promises

    • progress reporting and cancelation

    • asynchronous programming/reactive extensions (Rx)

    • advanced mechanisms

      • explicit threads

      • actors

      • software-transactional memory

      • task-parallel library

      • functional data structures

14.5. Key Resources