12. Appendix: Course Syllabi

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

12.1. Course: COMP 371/471 Programming Languages

12.2. Section: 001 Fall 2024

  • 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, I will make an effort to record all lectures for later viewing through Sakai/Panopto. In addition, some prerecorded videos are available through Panopto.

    • I will make an effort to record all lectures for later viewing through Sakai/Panopto. In addition, some prerecorded videos are available through Panopto.

    • 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 2024): Tue 16:15-18:45 in Cuneo 002, 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: Eric Pautsch (contact info and office hours TBA)

  • Office hours:

    • Tue 18:45-19:15 in Cuneo 002 (after class, no appointment required)

    • Thu 18:45-19:15 in Mundelein 415 (after class, no appointment required)

    • Wed and Fri 14:00-15:30 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 2024 channel)

  • Important dates (tentative) for quizzes and tests:

    • Week 3 - Tue 10 September: quiz 0

    • Week 5 - Tue 24 September: quiz 1

    • Week 7 - Tue 8 October: NO CLASS (fall break)

    • Week 8 - Tue 15 October: test 1 ONLINE SESSION, details TBA

    • Week 10 - Tue 29 October: quiz 2

    • Week 11 - Fri 1 November: last day to withdraw with W instead of WF

    • Week 13 - Tue 19 November: test 2

    • Week 14 - Tue 26 November: ONLINE SESSION (Thanksgiving break), details TBA

    • Week 16 (finals week) - Tue 10 December: quiz 3 followed by class session

  • 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.

12.3. Section: 001 Fall 2023

  • General format:

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

    • I will make an effort to record all lectures for later viewing through Sakai/Panopto. In addition, some prerecorded videos are available through Panopto.

    • 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.

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

  • Class time and location (fall 2023): Tue 16:15-18:45 in Cuneo 002, 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: Giorgio Montenegro

  • Office hours:

    • Tue 18:45-19:15 outside of Cuneo 002 or in Cuneo 003 (after class, no appointment required)

    • Wed and Fri 14:00-15:45 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

    • 37 points ug / 44 grad: projects 0a 2, 0b 3, 1a and 2a/b 6 each, 3a/b 7 each, 3c 7 (required for grad students) (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.)

    • 12 points: four group activities, 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.)

    • 7 points: starting baseline for undergrads

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

    • various extra credit opportunities: project 3c 7 (ug), project 1b 6 (ug/grad)

    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 2023 channel)

  • Important dates (tentative) for quizzes and tests:

    • Week 3 - Tue 12 September: quiz 0

    • Week 5 - Tue 26 September: quiz 1

    • Week 7 - Tue 10 October: NO CLASS (fall break)

    • Week 8 - Tue 17 October: test 1

    • Week 10 - Tue 31 October: quiz 2

    • Week 11 - Fri 3 November: last day to withdraw with W instead of WF

    • Week 12 - Tue 14 November: test 2

    • Week 13 - Tue 21 November: ONLINE SESSION (Thanksgiving break), details TBA

    • Week 16 (finals week) - Tue 12 December: quiz 3 followed by class session

  • 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.

12.4. Section: 001 Fall 2022

  • General format:

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

    • I will make an effort to record all lectures for later viewing through Sakai/Panopto. In addition, some prerecorded videos are available through Panopto.

    • 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.

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

  • Class time and location (fall 2022): Tue 16:15-18:45 in SES 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: Álvaro de Landaluce

  • Office hours:

    • Tue 18:45-19:15 in SES 122 (after class, no appointment required)

    • Thu 18:45-18:55 in Cuneo Hall 104 (after class, no appointment required)

    • Wed and Fri 13:30-15:30 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

    • 44 points ug / 50 grad: projects 0a 2, 0b 3, 1a and 2a/b 6 each, 3a-c 7 each, 1b 6 (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.)

    • 6 points: two group activities, 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.)

    • 6 points: starting baseline for undergrads

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

    • various extra credit opportunities

    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 2022 channel)

  • Important dates (tentative) for quizzes and tests:

    • Week 2 - Tue 6 September: ONLINE CLASS, details TBA

    • Week 3 - Tue 13 September: quiz 0

    • Week 5 - Tue 27 September: quiz 1

    • Week 7 - Tue 11 October: NO CLASS (fall break)

    • Week 8 - Tue 18 October: test 1

    • Week 10 - Tue 1 November: quiz 2

    • Week 11 - Fri 4 November: last day to withdraw with W instead of WF

    • Week 12 - Tue 15 November: test 2

    • Week 13 - Tue 22 November: ONLINE CLASS (Thanksgiving break), details TBA

    • Week 16 (finals week) - Tue 13 December: quiz 3 followed by class session

  • 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.

12.5. Section: 001 Fall 2021

  • General format:

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

    • I will make an effort to record all lectures for later viewing through Sakai/Panopto. In addition, some prerecorded videos are available through Panopto.

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

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

  • Class time and location (fall 2021): Tue 17:30-20:00 in Cuneo Hall 217, 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: Monica Sieklucki

  • Office hours:

    • Tue 20:00-20:30 in Cuneo Hall 217

    • Thu 20:00-20:30 in Crown Center 105

    • by appointment via Calendly (Tue, Thu, Fri afternoons)

    • 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

    • 44 points ug / 50 grad: projects 0a 2, 0b 3, 1a and 2a/b 6 each, 3a-c 7 each, 1b 6 (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.)

    • 6 points: two group activities, 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.)

    • various extra credit opportunities

    Max total: 105 undergraduate / 111 graduate

    Undergraduate grading schema:

    • A 93

    • A- 90

    • B+ 87

    • B 83

    • B- 80

    • C+ 75

    • C 70

    • C- 65

    • D+ 60

    • D 50

    • F < 50

    Graduate grading schema:

    • A 98

    • A- 95

    • B+ 92

    • B 88

    • B- 85

    • C+ 80

    • C 75

    • C- 70

    • D+ 65

    • D 55

    • F < 55

  • Academic integrity: LUC | CAS | Grad

  • Sakai site for this section (gradebook)

  • MS Team (mandatory subscription and participation)

  • Important dates (tentative) for quizzes and tests:

    • Week 3 - Tue 14 September: quiz 0

    • Week 5 - Tue 28 September: quiz 1

    • Week 7 - Tue 12 October: NO CLASS (fall break)

    • Week 8 - Tue 19 October: test 1

    • Week 10 - Tue 2 November: quiz 2

    • Week 11 - Fri 12 November: last day to withdraw with W instead of WF

    • Week 12 - Tue 16 November: test 2

    • Week 13 - Tue 23 November: ONLINE CLASS (Thanksgiving break), details TBA

    • Week 16 (finals week) - Tue 14 December: quiz 3 followed by class session

  • 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.

12.6. Sections: 001/002 Fall 2020

  • General format: This is an online “flipped” class.

    • About 90 minutes of weekly class time will consist of prerecorded videos; I will provide more details on these shortly.

    • The remaining 60 minutes will consist of two synchronous, interactive Zoom sessions, of which you are expected to attend at least one; I will provide links to these shortly in MS Teams (see below).

  • Class time (fall 2020): You are expected to attend at least one of these synchronous, interactive sessions. Zoom links will be available on MS Teams shortly.

    • main synchronous session: Tue 19:00-20:00 on Zoom

    • alternate synchronous session: Tue 14:00-15:00 on Zoom

  • Communication: All communication regarding this class takes place in Zoom (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. (Please DO NOT use email!)

  • Instructor: Konstantin Läufer

  • Office hour: Wed 13:45-14:45 and Fri 10:30-11:45 on Zoom (appointment recommended), other times available on request

  • TA: Maya Gocal-Kappos

  • Office hour: Tue 10-11:15 and Wed 10:15-11:30

  • Required texts:

    Scala for the Impatient, Second Edition
    By: Cay S. Horstmann
    Publisher: Addison-Wesley Professional
    Pub. Date: December 15, 2016
    Web ISBN-13: 978-0-13-454062-7
    Print ISBN-13: 978-0-13-454056-6
    Managing Concurrency in Mobile User Interfaces with Examples in Android
    by Konstantin Läufer, George K Thiruvathukal
    Publisher: Springer
    Release Date: 2018
    ISBN: 978-3-319-93109-8
  • Additional resources: Appendix: Resources

  • Grading (tentative):

    • 45% quizzes & tests

    • 50% projects & presentations (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.)

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

  • Ground rules

  • Sakai site for this section (gradebook)

  • MS Team (mandatory subscription and participation)

  • Important dates (tentative) for take-home quizzes and tests:

    • Week 4 - Mon 14 September: quiz 1

    • Week 7 - Mon 5 October: test 1

    • Week 10 - Mon 26 October: quiz 2

    • Week 13 - Mon 16 November: test 2

    • Week 16 (finals week) - available Fri 4 December, due Wed 9 December: quiz 3

  • Recording of Zoom 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.

12.7. Section: 001 Fall 2019

  • Class time and location (Fall 2019): Tue 16:15-18:45 in Cuneo Hall 302, LSC

  • Instructor: Konstantin Läufer

  • Office hour: Tue/Thu 14:00-15:00 in Doyle Hall Room 201 (building #6 on this map of Lake Shore Campus), and by appointment

  • TA: Allan Miller

  • Office hour: Wed 12:00-16:00 in Doyle Hall Room 308

  • Required text: Scala for the Impatient, Second Edition By: Cay S. Horstmann Publisher: Addison-Wesley Professional Pub. Date: December 15, 2016 Web ISBN-13: 978-0-13-454062-7 Print ISBN-13: 978-0-13-454056-6 access free on Safari and/or download from Lightbend

  • Additional resources: Appendix: Resources

  • Grading (tentative):

    • 45% quizzes & tests

    • 50% projects & presentations (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.)

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

  • Ground rules

  • Sakai site for this section (gradebook)

  • Slack team (mandatory subscription)

  • Important dates (tentative):

    • Tue 17 September: quiz 1

    • Tue 1 October: test 1

    • Tue 8 October: NO CLASS - fall break

    • Tue 22 October: quiz 2

    • Tue 12 November: test 2

    • Tue 10 December 16:15-17:15: test 3

12.8. Section: 001 Fall 2018

  • Instructor: Konstantin Läufer

  • Class time and location (Fall 2018): Tue and Thu 13:00-14:15 in Cuneo Hall 202, LSC

  • Office hour: Tue/Thu 14:30-15:30 and Thu 10:00-11:00 in Doyle Hall Room 201 (building #6 on this map of Lake Shore Campus), and by appointment

  • Required text: Scala for the Impatient, Second Edition By: Cay S. Horstmann Publisher: Addison-Wesley Professional Pub. Date: December 15, 2016 Web ISBN-13: 978-0-13-454062-7 Print ISBN-13: 978-0-13-454056-6 access free on Safari and/or download from Lightbend

  • Additional resources: Appendix: Resources

  • Grading (tentative):

    • 45% quizzes & exams

    • 50% projects & presentations (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.)

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

  • Ground rules

  • Sakai site for this section (gradebook)

  • Slack team (mandatory subscription)

  • Important dates:

    • Thu 20 September: quiz 1

    • Thu 4 October: test 1

    • Tue 9 October: NO CLASS - fall break

    • Thu 25 October: quiz 2

    • Thu 15 November: test 2

    • Tue 20 November: remote lecture/office hour

    • Fri 14 December 13:00-14:00: test 3

12.9. Section: 001 Spring 2018

  • Instructor: Konstantin Läufer

  • Class time and location (Spring 2018): Tue and Thu 08:30-09:30 in Cuneo Hall 103, LSC

  • Office hour: Thu 09:45-11:00 in Doyle Hall Room 202 (building #6 on this map of Lake Shore Campus), and by appointment

  • Required text: Scala for the Impatient, Second Edition By: Cay S. Horstmann Publisher: Addison-Wesley Professional Pub. Date: December 15, 2016 Web ISBN-13: 978-0-13-454062-7 Print ISBN-13: 978-0-13-454056-6 available free on Safari

  • Additional resources: Appendix: Resources

  • Grading (tentative):

    • 45% quizzes & exams

    • 50% projects & presentations (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.)

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

  • Ground rules

  • Sakai site for this section (gradebook)

  • Slack team (mandatory subscription)

  • Important dates:

    • Thu 8 February: quiz 1

    • Tue 20 February: test 1

    • Tue 6 March: NO CLASS - spring break

    • Thu 8 March: NO CLASS - spring break

    • Thu 22 March: quiz 2

    • Thu 12 April: test 2

    • Sat 5 May 09:00-10:00: test 3

12.10. Section: 001 Spring 2017

  • Instructor: Konstantin Läufer

  • Class time and location (Spring 2017): Tue 14:45-17:15, Mundelein Center 607, LSC

  • Office hour: Tue 17:15-18:00 in Mundelein Center 607, LSC, and by appointment

  • Required text: Programming in Scala, Third Edition By: Martin Odersky; Lex Spoon; Bill Venners Publisher: Artima Press Pub. Date: April 28, 2016 ISBN-10: 0-9815316-8-7 ISBN-13: 978-0-9815316-8-7 available free on Safari

  • Grading (tentative):

    • 45% quizzes & exams

    • 50% projects & presentations (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.)

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

  • Ground rules

  • Sakai site for this section (gradebook)

  • Slack team (mandatory subscription)

  • Important dates

    • Tue 7 February: quiz 1

    • Tue 7 March: NO CLASS - spring break

    • Tue 14 March: test 1

    • Tue 4 April: quiz 2

    • Tue 18 April: test 2

    • Tue 2 May 16:15-18:15: test 3

12.11. 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

12.12. Key Resources