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:
-
Scala for Java programmers
Getting started with Scala in IntelliJ/sbt
Horstmann’s Scala for the Impatient book (selected chapters)
online Scala exercises by 47 Degrees
Scala tutorial
Std Lib
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
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:
-
Scala for Java programmers
Getting started with Scala in IntelliJ/sbt
online Scala exercises by 47 Degrees
Scala tutorial
Std Lib
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
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:
-
Scala for Java programmers
Getting started with Scala in IntelliJ/sbt
Horstmann’s Scala for the Impatient book (selected chapters)
online Scala exercises by 47 Degrees
Scala tutorial
Std Lib
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
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
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 EditionBy: Cay S. HorstmannPublisher: Addison-Wesley ProfessionalPub. Date: December 15, 2016Web ISBN-13: 978-0-13-454062-7Print ISBN-13: 978-0-13-454056-6Managing Concurrency in Mobile User Interfaces with Examples in Androidby Konstantin Läufer, George K ThiruvathukalPublisher: SpringerRelease Date: 2018ISBN: 978-3-319-93109-8Additional 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.)
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.
Todo
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.)
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.)
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.)
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.)
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