Minnesota State University, Mankato. College of Science, Engineering, & Technology. Fall 2023, Block 2. Section 1.
This is version 1.0 of the syllabus. Any changes will be announced in class and posted in D2L.
This course is offered on an In-Person Only basis. In-person attendance is required for each course session.
This is a 2-credit elective course for Computer Science majors.
It’s important to me that I be available to help you succeed in this course. If you need to contact me, please send me an E-mail. I try to answer all emails within 24 hours, including weekends - even if I need more time to respond, I will acknowledge receipt of your message. If I have not responded to your E-mail message after 24 hours, please resend the message in case it got lost or buried. Do not feel you need to wait longer than 24 hours to resend your message - I would rather see your message more than once than miss your questions!
If you would like to meet with me directly, you can schedule time with me to meet in my office or in the CS Project space. Please contact me via E-mail or before or after class and I will accommodate your time schedule to the best of my ability.
This course will go beyond writing, testing and debugging code by introducing you to several aspects of software development that extend beyond coding. We will cover topics including source code management and control (Git), DevOps (CI/CD), and basic containerization. We will also discuss the theory behind aspects of software interoperability such as APIs, versioning and cross-platform compatibility. C♯, Java and Python will be used as necessary for examples, but there will be only minimal coding in this course.
The goal of this course is to fill in any gaps in your knowledge of the full Software Development Life Cycle (SDLC).
This class will involve work in small groups of 3-4 students. Group assignments will happen during the first class session. You will have time in class to work on group projects and assignments regularly.
Admission to the upper division Computer Science program is required.
This course is aimed at students who know at least two programming languages at a functional level. We will use Python, Java and C♯ as appropriate, but we will not be focusing on writing code - the only instances where you will write actual code in “traditional” programming languages is in support of the other aspects of the SDLC that we will be covering.
As an example, one of our units will cover software versioning and API interoperability. For this unit, you will be given code for a working API and a scenario to add a new feature (along with its code) while maintaining compatibility with current users of the API. You will only need to write code to connect these pieces together and to test your implementation.
You will be participating in in-class activities that require a laptop to be brought to class. If you do not have access to a personal laptop, you can borrow one from the University Library.
D2L will be used to provide you with course announcements, homework assignments, course materials and quizzes. Official course announcements will also be sent to you via your university E-mail address. You are responsible for regularly checking D2L and your university E-mail for communications.
Some projects in this course will make use of cloud services. While we will be discussing use of commercial cloud providers such as Amazon AWS or Microsoft Azure, you will not need to use these services in this course as I will be providing you with access to a cloud server for the course. You may of course choose to use a commercial service if you wish, but you will need to be cognizant of any potential fees you may incur, and you will need to arrange for me to be able to access your resources for grading purposes.
The data on learning and classroom performance shows overwhelmingly that students learn best through group discussion, active practice of course material, and teaching others what they’re learning. Additionally, lectures are the least effective way to get material across to students. Therefore, this class will not include lectures. Instead, to make the most of your total time budget for this course – 80 hours total during the semester, including your time in the classroom – we will run this course using the “Flipped Classroom” model.
The basic idea of this approach is that you read, watch, and/or study course material before you come to class. We then spend class time working actively with the material in ways that will help you truly understand it deeply, so that you can retain and use the information permanently.
You must complete your Class Preparation work before coming to class!
Before each class, you should spend significant time doing the following:
During our scheduled classroom time, we will engage actively with the material, utilizing activities including:
The main benefits of taking this “Flipped Classroom” approach are:
For each class session (not including the first one), a few students (typically two or three) will be assigned one specific presentation topic each on a narrow topic related to the week’s main topic of discussion. When you are assigned a topic, you should prepare a short (10-15 minute) presentation that covers the basics of the assigned topic. You will produce a PowerPoint or similar presentation with a few slides – no need to go beyond 3 or 4 slides maximum. Materials related to each topic will be provided for you to study on D2L, and you are also free to use other resources in your study. If you do utilize other sources, please include references in your presentation – this will also help your fellow classmates with additional resources to aid their study!
You will present two times during the semester.
Individual presentation assignments will be posted on D2L and via E-mail with the greatest possible advance notice.
The rubric for scoring these presentations is as follows:
For more information and specific grading criteria see theIndividual Presentation Guide.
This course will involve a group project that you will work on in small groups of 3-4 students. The project will be a cumulative, ongoing effort that will encompass many of the concepts and techniques we will be exploring in the course. The overarching theme of the project will be taking a mostly complete piece of software “over the finish line”.
You have some options with respect to the software you will work on. If one or more of your group members has a personal software project or work for a CS course that would apply to the goals of this course, you may be able to utilize your work on that project in this course. We will discuss specifics of this during the first week of the course.
Because attendance is very important in small group project work, we will be taking attendance in this course. Each day, you will take a very simple one-question quiz on D2L that will only be open for a very short time - this quiz will serve as your attendance record. I will announce the quiz question in class and you will submit your answer on D2L (the question will not be listed on D2L!).
See the Missed Classes section for details on what to do if you need to miss a class.
This course is available on a for-credit, Grade Only basis. You will receive a letter grade in this course. Your final grade will be calculated according to the following rubric on the next page.
The grading for this course is >90=A, >80=B, >70=C and >60=D. There is no shaded grading (no plus or minus grading) for this course.
Your final grade for this course will be based on the following assessments and weights:
Item | Percent |
---|---|
Attendance | 5% |
Individual Presentations | 25% |
Individual Assignments | 20% |
Group Assignment | 35% |
Quizzes | 15% |
There will be no final exam for this course. The work you do in your group assignment will be ongoing throughout the semester and your grade will be based on your contribution to your group’s project and the final deliverable.
Students have the right to ask an instructor for an explanation of any grade received. Grade appeals are reviewed in instances where students perceive that a final course grade is unfair, arbitrary, or capricious. Students must begin the procedures of this policy within two weeks of university notification of a final course grade. Students needing assistance at any step in appealing a grade may contact the Academic Affairs Coordinator of the Student Senate (280 Centennial Student Union; phone 389-2611). Students should retain copies of all materials associated with this process for their records. Students should also have records of their coursework from the class as part of the appeal process. The full policy is available at http://www.mnsu.edu/policies/approved/gradeappeals.pdf.
The diversity of the participants in this course is a valuable source of ideas, problem solving strategies, and computational creativity. Our classroom is a place where you will be treated with respect, and we welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities, gender expressions, national origins, religious affiliations, sexual orientations, ability, and other visible and nonvisible differences. All members of this class are expected to contribute to a respectful, welcoming and inclusive environment for every other member of the class. If you are experiencing disrespect or any other inappropriate conduct from any classmate, please talk to me directly. Unless university policy requires otherwise I will keep such conversations confidential.
I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the term so that I may make appropriate changes to my records. I also expect other students to respect and honor these requests when interacting in the course. If you are experiencing any disrespect from classmates please come talk to me.
As members of the University community, students assume the responsibility to fulfill their academic obligations in a fair and honest manner. This responsibility includes avoiding inappropriate activities such as plagiarism, cheating, or collusion. Students found responsible for one or more of these activities may face both academic sanctions (such as lowering a grade, failing of a course, etc.) and disciplinary sanctions (such as probation, suspension, or expulsion).
In this course, I encourage you to ask your peers and utilize available online resources for assistance with projects and homework. However, such assistance must not include sharing or copying of code or solutions. All code you submit for your projects or assignments must be written by you alone. Here are some examples:
I exercise common sense in enforcing these policies. For example, if you discover that there is one single well-established strategy for accomplishing a given generic task and a template implementing that method is provided, and coding an alternative strategy would be excessively awkward or would create other secondary issues (e.g. insecure code, slower performance, etc.), then using such a template is not considered “copying and pasting large amounts of code verbatim”.
To illustrate this, consider that many IDEs provide templates for various project types and also often offer “wizards” that generate parts of the code for you based on parameters you specify, with the generated code following established coding practices. Use of such tools is not violation of this policy, since they are generic in nature and you are still required to write the code to make the application perform your specific tasks.
However, asking an AI engine to write code for your specific, unique scenario, and then copying that code as-is, is a violation.
If you have further questions on this policy, or want to ask about a specific scenario, please feel free to ask me.
This course includes a group project. For the group project, specific requirements for submission of completed work will be outlined for that specific project. Each group will submit both a final group project deliverable in addition to individual submissions. For all work outside the group project, unless otherwise noted, you should assume all homework is to be completed and submitted individually.
The full policy, including definitions of plagiarism, cheating, and collusion, is available at https://www.mnsu.edu/policies/approved/academichonesty.pdf.
Minnesota State Mankato provides students with disabilities reasonable accommodation to participate in educational programs, activities or services, and I strive to make this course accessible and engaging for all learners, including students with disabilities. If you have a disability requiring accommodation to participate in class activities or meet course requirements, you should first register with the Office of Accessibility Resources (if you have not already) by following the process described at https://mankato.mnsu.edu/university-life/campus-services/accessibility-resources/getting-started/ to establish an accommodation plan. Accessibility Resources will inform me about your needs in the course based on their records.
After this step, you can also choose to reach out to me and I will be happy to work with you to ensure all of your accommodations are provided to you and that you can participate fully in the course. Feel free to come to me or e-mail me any time if you are finding the course inaccessible in any way. I am happy to work directly with you to make any reasonable accommodation I can to ensure your success in this course.
Students are not permitted to make unauthorized electronic recordings of lectures or electronic copies of proprietary course materials (e.g., PowerPoints, formulas, lecture notes) using personally owned recording devices (e.g., smartphone, iPad, computer, digital recorder) unless prior permission from the instructor is obtained, and there are no objections from other students.
If you need to record lectures or need course materials for an accessibility reason, please notify the Office of Accessibility Resources, and then discuss the matter with me as early as possible.
In any case where recording is permitted (even for accessibility purposes), recorded lectures or copied material must be destroyed at the end of the course or semester. Unauthorized downloading, file sharing, or distribution of any part of a recorded lecture or course materials, or using information from such recordings for purposes other than the student’s own learning, may be deemed a violation of Minnesota State University, Mankato’s “Statement of Student Responsibilities,” subject to disciplinary action.
The full policy is available at http://www.mnsu.edu/atoz/policies/recordingoflecturesandmaterials2015.pdf.
The materials in this Github repository are licensed under CC-BY-SA, and as such this policy does not apply to the materials publicly available in this repository. You may access, share and use these materials however you like provided you abide by the terms of the CC-BY-SA 4.0 License.
Students represent the university through participation in university sponsored or sanctioned activities, such as the arts, theater, music, dance, forensics, and intercollegiate athletics. If an activity schedule conflicts with academic obligations, students will follow a standard protocol to provide their faculty members with prior, written notification of their absences from classes. Faculty members will determine, in consultation with students, how missed classes and assignments will be made-up in a manner that fulfills academic obligations and accommodates participatory obligations. Except for absences resulting from sponsored or sanctioned activities, student participants have the same responsibility with regard to class attendance and assignments as do all other students.
The full policy is available at http://www.mnsu.edu/atoz/policies/missedclassesandmakeupwork.pdf.
If you need to miss class for an important non-school-related reason (e.g., a medical appointment), please let me know ahead of time, as early as possible. I understand that sometimes extenuating circumstances may arise suddenly without warning. In this case, please contact me by E-mail as soon as you possibly can to let me know you will be unable to attend class and/or meet a deadline. Within reason we will work together to come up with a solution. The more openly we communicate, the easier it is for me to accommodate your situation!
If you test positive for COVID-19 but are not symptomatic, please come to class and wear a mask to protect others. If you are symptomatic, please let me know via E-mail as soon as possible and we can arrange for you to attend the course via Zoom temporarily.
As a particular acknowledgment of an individual’s service to our country, faculty members are committed to providing resources to veterans/military students, which will assist in smooth navigation of the university environment and a successful educational experience. Resources for veterans are available at http://www.mnsu.edu/veterans/resources. Student veterans and current military members with special circumstances or who are activated are encouraged to notify the instructor.