Syllabus
Table of contents
- Basic Info
- Course Description
- Student Learning Outcomes (SLOs)
- Course Measurable Objectives (CMOs)
- Textbooks and Materials
- Grading
- Late Assignments and Make-Up Exams
- Programming Assignments
- Class Forum
- Cheating and Academic Honesty đ„
- Final Thoughts
Basic Info
Instructor: Sherdil Niyaz
Mt SAC Email: sniyaz AT mtsac DOT edu
Final Exam Time: Thursday Dec 14 2023, from 4:30 - 7:00PM
Last Day To Drop (No W): September 10 2023
Last Day To Drop (With a W): Novermber 3, 2023
Office Hours: 5-7PM Fridays, via Zoom
Course Description
For computer science, engineering, mathematics, and other science students. Introduction to Java language and object-oriented programming with Java as well as general concepts and techniques of computer programming. Topics include Java expressions, flow control, functions and program structure, Java classes, overloading, object references, inheritance, Java library packages, exceptions, file I/O, applets, event handling, multithreading. Prerequisite: Completion of CSCI 110. 4 units (3 lecture units and 1 lab unit).
Student Learning Outcomes (SLOs)
Students will be able to analyze problems and design appropriate algorithms.
Students will be able to code provided algorithms using Java language.
Students will be able to provide code for a Java class given objectsâ attributes and behaviors.
Students will be able to use existing Java classes to perform required tasks.
Course Measurable Objectives (CMOs)
Analyze problems and design appropriate algorithms.
Code algorithms into the Java language.
Recognize and produce proper Java syntax.
Utilize recursion, iteration, and arrays.
Demonstrate the paradigm of object-oriented programming.
Write, organize, and assemble program documentation.
Develop standards for comparing the efficiency of various algorithms.
Demonstrate debugging techniques.
Textbooks and Materials
The textbook we use in this course is Java Software Solutions â Foundations of Program Design by J. Lewis and W. Loftus, 9th Edition, Pearson.
The only other material I expect you to have access to is a computer with a Java compiler. If you donât have a personal laptop, you can use the machines in the Math/CSCI computer lab.
That said, I strongly recommend having access to a personal laptop and bringing it with you to class: itâs much easier as a student to be able to take your work home and work on it when off-campus. You can check out the Mt. SAC laptop loaner program for help with this. If you are still having trouble getting access to a personal laptop and feel that itâs impacting your learning in this course, send me an email: I can try my best to find another way (although I canât promise anything). My goal in this course is to give everybody an opportunity to succeed regardless of personal resources or other privileges.
Grading
Letâs be honest: this is the part of the syllabus most students probably jumped to đ. The breakdown of your grade in this course will be as follows:
Labs (Shorter, In-Class Programming Assignments) â 35%
Homeworks (Longer, Take-Home Programming Assignments) â 20%
Midterm Exam â 15%
Final Exam â 30%
The percentages for each letter grades are exactly what youâd expect too, but in case youâve forgotten:
A >= 90%
B >= 80%
C >= 70%
D >= 60%
F < 60%
Note 1: This means that points in different categories (Lab, HW, Final, etc) are worth different percentages of your final grade: your percentage in each category gets reweighted according to the ârecipeâ above.
Note 2: My goal is that everybody should get 100% (or close to 100%) on the Labs and Homeworks.
Do I Curve? I reserve the right to make the bins for each grade easier, but I will never make them harder (in case, for example, I mess up and give an exam thatâs way too hard).
Late Assignments and Make-Up Exams
Programming assignments (Labs and HWs) can be submitted up to three days late with a 10% penalty of the original point amount each day. For example, suppose you get 9/10 on a lab assignment but submit it two days late (usually this means on a Tuesday). Your final score on the lab in this case would be 7/10. This same rules apply to homeworks. No submissions more than three days late will be graded unless you have an exception from me.
When it comes to exams, you usually need to let me know 72 hours in advance if you need a make-up exam. I understand that life happens: if something unexpected happens that causes you to miss an exam, you need to let me know within 24 hours for me to handle it somehow.
Golden Rule: If weird stuff happens and you arenât sure what to do, send me an email. I understand that we are all human beings with a lot going on, and I donât want this class to make your life miserable.
Programming Assignments
More than half of your grade in this class is composed of programming assignments, both in-class (Labs) and take-home (Homeworks). All programming assignments can be completed alone or in groups of two: itâs completely up to you. I encourage you to work in groups (both because this makes things easier and because you learn from talking to your colleagues). You are allowed to switch groups for every assignment (but you donât have to).
Class Forum
We will have a course forum for you to discuss questions with your classmates and help each other out (I also plan to be very active and answer your questions here as well). If youâre emailing me with a question, I would prefer you post it on the forum instead (assuming that it isnât super personal): that way other students can also learn from your question (and probably have the same one!)
Danger Zone: I expect you to behave yourself online the same way I expect you to behave in an in-person course: that means respect and patience for your fellow students. We all learn at different rates (I was personally a slow learner in college), and making others feel bad about that (or anything else) is not OK. I have absolutely zero tolerance for this stuff, and I will shut down the class forum if people are being disrespectful.
Danger Zone Part 2: The same collaboration/plagiarism/cheating rules that apply to the rest of this class extend to the online forum. That means no sharing of solutions, etc. You should feel comfortable asking questions about general concepts, but, when in doubt, just ask me if a question/answer is OK. Speaking of whichâŠ.
Cheating and Academic Honesty đ„
This is the part of the syllabus I absolutely hate. But Iâm also realistic and know we need to talk about thisâŠso here goes.
Learning these ideas is challenging. I encourage you to discuss course activities with your friends and classmates as you are working on them, because you will definitely learn more in this class if you work with others than if you do not. Ask questions, answer questions, and share ideas liberally; we want a class that is open, welcoming, and collaborative, where we can help each other build the highest possible understanding of the course material.
Programming Assignments
The following applies to collaboration on programming assignments when interacting with students other than your partner. Reminder: you are allowed to fully collaborate with your partner.
Learning collaboratively is different from sharing answers. Here are some guidelines to keep your interactions âcollaborativeâ and not âcheatingâ:
- You should never directly show another student your code. This means you should never send your files to another student nor should you screen share your work for other students.
- Instead you are welcome to describe what is happening either verbally or in text.
- If you are helping another student, donât just tell them the answer; they will learn very little and run into trouble on exams. Instead, try to guide them toward discovering the solution on their own.
- You should not be spelling out code for any other students to directly type.
- You should not be working on assignments in close collaboration with another person or group of people from start to finish.
- Try to collaborate on specific issues or questions as opposed to the entirety of an assignment.
- Please NEVER distribute solutions at any time, even after the course is over. This includes both solutions that you wrote and any solutions you may have obtained. âDistributionâ includes uploading them to public websites (e.g. a GitHub repo), group repositories (e.g., your clubâs/fratâs/sororityâs âanswer bankâ), or private chats (e.g. group chat with a few friends).
Permitted Collaboration
Sharing answers is one form of cheating, but all forms of cheating are disallowed in this course. You should not claim to be responsible for work that is not yours. For clarity, examples of allowed collaborations are listed below:
- Discussion of approaches for solving a problem.
- Giving away or receiving significant conceptual ideas towards a problem solution; such help should be cited as comments in your code. For the sake of othersâ learning experience I ask that you try not to give away anything juicy, and instead try to lead people to such solutions.
- Using small snippets of code that you find online for solving tiny problems. For example, searching for âuppercase stringâ may lead you to some sample code that you copy and paste into your solution.
Please cite any of the above collaborations as comments!
Ultimately, the goal of enrolling in this course is for YOU to learn this material, so that you will be prepared for exams, for research, for job interviews, etc. Engaging in academic misconduct does not help you towards that goal. If you are in doubt about what might constitute cheating, send me an email describing the situation and I will be happy to clarify it for you.
Final Thoughts
I donât want this document to end with a scary section about cheating, so instead Iâll end with this: I am super excited to be your instructor this semester. I love to teach, and I canât wait to see how youâll learn and grow this term. Welcome to CSCI 145! đ
Some other closing notes:
Inclusion
Computer Science is (as Iâm sure many of you are aware) not generally a field that has been super accommodating towards underrepresented groups. With that in mind: all are welcome in this class. Making people feel unwelcome for who they are will not be tolerated. If you see or observe this, send me an email immediately.
Statement of Accommodations
Your success in this course is important to me. We all learn differently so if there are aspects of this course that prevent you from learning or exclude you, please let me know as soon as possible and together we will develop strategies to meet both your needs and the requirements of the course. I encourage you to visit the Accessibility Resources Centers for Students (ACCESS - formerly known as Disabled Students Programs and Services) for official accommodation services and resources to assist you in learning success. You can contact ACCESS at 274-4290.
Mental Health
This class can get stressful. If it gets too overwhelming at times, please feel free to send me an email and we can talk about how things are going. Do not suffer in silence: it is literally my job to make sure you learn and have a good experience in this course. I would also encourage you to check out the Student Health Center for additional mental health resources. Without getting too corny, I personally wish I had started on my mental health journey earlier. Thereâs never any shame in asking for help!
Response Time
I will try my best to respond to all emails and forum posts within 24 hours: if I donât, please feel free to send me a reminder (I promise I will not mind). Cards on the table: I have a âday jobâ as a Robotics Engineer that I owe 100% of my attention to before 5PM. Teaching is something I do in my own time for personal fulfillment: but that also means that I wonât always be able to reply instantly. But I also hope that my perspective as a (relatively) young person in the tech industry is more of a plus than a minus đ