Course organization and logistics

Course outline

  • Set Theory

  • Direct Proofs

  • Indirect Proofs

  • Propositional Logic

  • First-order Logic

  • Binary Relations

  • Functions

  • Number Theory

  • Counting

  • Graphs

  • Induction

  • Finite Automata

  • Formal Languages

Ground rules

In my experience, the single most common cause of poor performance in any course is when students are not proactive. When you are proactive you can recognize and address any issues with your courses, while you have time to do something about it. Learning to be proactive is one of the most valuable skills you can acquire in college.

Here’s how you can be proactive, so you can succeed in this coure.

  • Review homework (or other take-home tests) within 24 hours of assignment. Identify questions that may be challenging. Contact the instructor or seek tutoring to work on these questions. The Department of Computer Science offers tutoring services almost on a daily basis.

  • Partially completed assignments are a warning sign. Compare your solution to the published solution. Try to identify the differences. Speak with the instructor or a tutor if the differences are not clear.

  • Skipped or missed assignments are also a warning sign. In some cases, circumstances beyond your control may force you to miss an assignment. This is understandable. The course is designed in a way that allows you to recover from a few missed assessments. If you miss more than 3 assignments, recovery may not be possible.

  • Come to class and take notes. Form or join a study group comprising fellow students.

  • If, for any reason, you need to be absent from class, let me know in advance. I don’t need to know the reason, but I need to know about the duration of your absense.

  • Check your official Loyola email at least daily and absolutely an hour before class meetings.

Textbook

Times are hard and textbooks are expensive. Good news is that I have uploaded most of your reading material and all handouts on our GitHub page.

Grading scheme

Course performance is determined using in-class assignments, weekly homework, a take-home midterm, and a take-home final. Each assessment component carries a 25% weight. Grading scheme aside, the objective of assessments in this course is to ensure that students are learning. In this context students make mistakes, understand them, and do not repeat them.

Deadlines

Deadlines are posted on the cource’s Sakai page. In general, late homework is not accepted. Bona fide emergencies are handled on a case-by-case basis. However, if you miss three or more assignment deadlines, you may find it difficult to finish the course with a qualifying grade.

In-class assessments

In-class assessments may be conducted in some of the courses that I teach. In this case, you will have 20-30 minutes to complete them at the end of class session. For consistency, in-class assessments will be held midweek, on Tuesday or Wednesday. Assessment performance will be tallied together with regular homework.

Exam dates

The final exam will be a take-home assignment. It will become available at TBD on TBD and due at TBD PM on TBD (subject to change).

The midterm exam will be a take-home assignment. It will become available on Sakai at TBD on TBD and due at TBD on TBD (subject to change).

Student hours (aka office hours)

To give you more flexibility with your time, I have made my schedule available on Calendly. You can schedule an appointment with me by finding the best time slot that works for you. If there are no available time slots of if they conflict with your schedule, please notify me, suggest a couple of other time slots that will work for you, and I will do my best to find us time to meet.

For the Spring semester of 2024, Student Hours are as follows. Unless otherwise noted, all meetings are in Doyle 207.

  • Monday

    • 8:30-11 AM, (first come, first served)

    • Monday 3-6 PM, exclusively for COMP 306/406 students (Zoom, by appointment)

  • Tuesday

    • 1-2 PM, (by appointment only)

  • Wednesday

    • 1:30-3:30 PM, (first come, first served)

Academic integrity

Students are expected and encouraged to work together. It is also expected that students will explore the vastness of the internet to discover information, knowledge, and solutions to problems. I consider all that to be part of your learning experience. It is up to you, however, to demonstrate your learning.

In practical terms this means that you should be able to describe in your own words how a piece of code works or how you arrived to a mathematical derivation, etc. Failure to do so will affect your course performance and, ultimately, your grade. It may also raise concerns related to academic integrity. Verbatim use of material obtained from others is considered a violation of the university’s policies for academic integrity.

Please note that if you can search for an answer on the internet, so can your instructor. When it comes to programming, there are several websites with good code examples. These are geeksforgeeks, stackoverflow, etc. You are expected to explore these sites. The code you find there can be extremely useful. It is up to you to turn these websites into a learning experience. How? By internalizing the code that you discover in these sites and adopt for your assignments.

If you employ at AI tool, cite its use and list the prompts you used to derive your work. Work that has been found to be produced by generative AI without citation and listing of prompts, will receive a 0 grade.

Computing, i.e., programming and its foundational topics such as mathematics, is something that is best learned by example. But copying other people’s work alone is not sufficient. We must internalize that work, i.e., we must understand how someone else’s code works, how it does it, and why. Without that internalization, we simply copy someone else’s work. And that is not sufficient to pass a course.

Be cool, like a pro

In additional to the technical content of the course, there is a professional element to it. The professional element of the course is meant to cultivate your essential work skills (some call them “soft skills”). These skills are highly sought after by employers. Essential skills include communication skills, neatness, punctuality, dependability, ability to work in teams, problem solving skills, etc.

In the context of this course, professionalism and essential skills are as follows.

  • Be clear in your communications. When sending an email, make sure that it has an opening, an objective, and a closing.

  • The opening is a greeting line. “Hey” is never an appropriate opening in professional communications.

  • The objective is the main part of your email. Be precise and concise. For example, instead of writing “may I ask a question”, just ask the question.

  • The closing is a statement as to what you would like the other party to do in response to your message.

  • Be respectful of others’ time. Here’re two examples:

  • Come to meetings (class, student (aka office) hours, study groups, tutoring, etc) prepared. If the meeting is about reviewing your code, make sure that your laptop is sufficiently charged, the computer is turned on, and the code is already loaded into some editor before you even step into the meeting room. Do not spend 5 minutes in the meeting finding a power outlet, turning on and booting the computer, and firing up an editor.

  • Online class meetings are not the place to text the instructor questions related to individual concerns (your grade in a homework assignment etc.) Please do not use class time for such questions.

  • When in group meeting (e.g., class, study group, etc) keep your questions relevant to the objective of the meeting.

  • When making an appointment and you realize that you cannot attend the meeting, notify the other party as soon as possible.

  • When discussing a problem, be prepared to offer suggestions for reasonable solutions.

  • Be respectful of your own time.

  • Try emailing a question instead of waiting for Student (office) Hours. If the question is related to programming, attach a copy of your code. In most cases you will get an answer within a few hours.

  • Read and understand instructions and requirements. They set the expectations for your work. It’s important that you follow them.

  • Be organized and neat.

  • When turning in homework or other assignments, make sure that your writing is legible and the overall appearance reflects quality and care. Content is always the most critical aspect of your work; but appearance counts too.

  • When submitting code, make sure the files are properly named. For example homework.java may make sense on your side of the shop, but from the grader’s perspective it’s not very helpful. Files should be named after the class they contain, and must include comments in the code identifying you as the author.

  • When submitting photos of your work, name the files accordingly. Instead of IMG_123.JPG it should be called JohnDoe_problem1a.jpg or something equally indicative of where the file is coming from and what it contains.

  • Follow instructions. Instructions and directions reflect expectations and requirements for your work. File naming conventions, deadlines, content style, etc, are important aspects of your work both in college and beyond.

  • Check your official Loyola email regularly (at least once a day, and definitely an hour before class).

Zoom

If the class is asynchronous or online, you’ll need a conferencing tool like Zoom or Teams video to connect with me. It is a good idea to have such a tool handy even for synchronous courses that meet on campus. For example, during inclement weather, I may move the class meeting to Zoom, to keep everyone safe, dry, and warm.

You can also use Zoom to meet with me during Student Hours, if one of us is not on campus. In this case, an appointment is needed.

You need to download and install Zoom to your mobile device or laptop. Zoom is the University’s preferred tool for videoconferencing.

Formal notices

  • The university’s official Academic Calendar.

  • Every effort is made in this course to use open source, freely available material. However materials from the course cannot be shared outside the course without the instructor’s written permission.

  • Loyola University provides reasonable accommodations for students with disabilities. Any student requesting accommodations related to a disability or other condition is required to register with Student Accessibility Center (SAC), located in Sullivan Center, Suite 117. Professors receive the accommodation notification from SAC via Accommodate. Students are encouraged to meet with their professor individually in order to discuss their accommodations. All information will remain confidential. Please note that in this class, software may be used to record class lectures in order 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 SAC or questions about accommodations, please contact SAC at 773-508-3700 or SAC@luc.edu.

  • Accommodation letters. Students with accommodation letters from the university’s SAC need to alert me as early as possible in the course. In some of my courses, I conduct weekly in-class assessment instead of homework assignments. Students work on these assessments, during class, for 15-25 minutes. If your accommodation letter entitles you to extended time for testing, I will be happy to make arrangements so that you can return the in-class assessment to me within 24 hours. Please notify me as soon as possible, if you would like extended time fo in-class assessments.

  • Duty to report. Faculty and staff of the University have a mandated responsibility to report any incidents of gender-based misconduct that they are made aware of, even if it happened in the past. Gender-based misconduct includes discrimination based on actual or perceived sex, sexual orientation, gender expression or identity, or pregnancy or parenting status; dating and domestic violence; sexual misconduct (including sexual assault, sexual harassment, and sexual exploitation); and stalking.

  • Statement about online recording. If the course uses software to record 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 Sakai course is unpublished (i.e. shortly after the course ends, per the Sakai administrative schedule). 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.

Inclusion statement

A university is a place where the universality of the human experience manifests itself. – Albert Einstein

It is my hope and goal to make this course one of your best learning experiences. Computer science courses can sometimes be a bit dry, with little room for variety in perspectives. Nevertheless, there will be opportunities to explore social and cultural aspects of the discipline. The course also offers the opportunity to learn from each other about how we process advanced technical and mathematical concepts. Understanding how different individuals conceptualize and internalize practical and foundational aspects of computing makes us better professionals and colleagues. By respecting the different perspectives, experiences, and worldviews represented in our classroom community, we make the course a space of learning and growth.

As an instructor, I am committed to continue improving this space of learning and growth. This is not something I can do alone. Your feedback and suggestions are essential and wholeheartedly welcome at any time.