Monday and Wednesday, 9:30 am - 10:50 am @ Humanities 1006
Scripting languages are widely used in the IT industry. Programming with scripting languages, also known as scripting, has several advantages compared to programming with other types of languages in that scripts facilitate rapid program development; can automate high-level jobs or tasks very effectively; and can be used to compose various software components, even binaries, into more complex and powerful applications. This course introduces the principles of scripting, covers one or two selected scripting languages in depth, and illustrates the advanced use of scripting by extensive case studies in application areas such as system administration, web application development, graphical user interface development, and text processing.
Credits: 3
Prerequisites: CSE 214 or CSE 260; CSE or ISE or DAS major; U3 or U4 standing
After this course, students
can read and maintain existing scripting programs
can effectively utilize and compose common command-line utilities
can effectively utilize scripting to new situations, namely:
can identify and determine if scripting is suitable given a software requirement specification
can analyze the requirement specification, design, and implement moderately-sized scripting programs
There is no required/mandated textbook for this course. The following is a recommended list of reference material:
Sweigart, A. 2019. Automate the Boring Stuff with Python: Practical Programming for Total Beginners (2nd Ed.). No Starch Press.
Shotts, W. 2024. The Linux Command Line (6th Ed.). No Starch Press.
Buelta, J. 2018. Python Automation Cookbook. Packt Publication.
Cooper, M. 2014. Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting. Online.
All other course material (including this syllabus) will be available on the course webpage. The course webpage link is provided to students through the Brightspace portal for this course. There will be no paper handouts.
Unix/Linux CLI
Bash Scripting
Version Control
Python Scripting
Pattern Matching and Data Wrangling
System Monitoring and Automation
Web Scripting
Cloud and Cross-Platform Automation
This course will have two internal ‘midterm’ exams, and a comprehensive final exam. The schedule is as follows:
Exam 1: September 22 (Mon), 9:30 am
Exam 2: October 13 (Mon), 9:30 am
Final Exam: December 10, 11:15 am [ Schedule from the Office of the Registrar ]
Student responsibility statement: It is the responsibility of the student to plan class schedules to avoid conflicts with final exams and regularly scheduled classes.
There are no practice tests. Teaching assistants will hold a review session before the final exam (but not the internal exams).
The midterm exams will be held at the usual lecture venue.
As a technical discussion forum, we will use Ed Discussion. The details will be provided to all students via an announcement on Brightspace. Everyone is expected to
use this platform responsibly, and maintain social decorum at all times, and
not use this platform for non-technical (especially non-course related) concerns.
Students are expected to attend every class, report for examinations, and submit graded coursework as scheduled. If a student is unable to report for any exam or complete major graded coursework as scheduled due to extenuating circumstances, the student must contact the instructor as soon as possible. Students may be requested to provide documentation to support their absence and/or may be referred to the Student Support Team for assistance.
In the instance of a missed lecture, the student is responsible for reviewing the lecture slides and staying up to date with the material covered in class.
There are no make-up options (e.g., by attending a different section) for missed recitations. However, there are at least 10 scheduled recitations throughout the semester, and the 8 best scores will be considered for the student's final grade.
There are no make-up options for a missed exam (subject to the university policies on Student Participation in University-Sponsored Activities and Final Exams). Please note that neither the final exam nor the internal tests for this course overlap with religious holidays, as per NY State Education Law 224-A.
Follow the communication decorum below as strictly as possible for effective and efficient communication with the instructor and the teaching assistants:
The most efficient form of communication is to use our discussion forum. This is typically much faster, since multiple members of the teaching staff and your peers are all involved in the Q&A.
Even though a discussion forum will be used, in-person Q&A during instructor or TA office hours are encouraged. All students should make use of these resources.
If there is a need for email communication (e.g., the conversation involves some personal information):
do not use any email address for the instructor other than the one provided in the introductory slides during the first lecture;
do not use any email address to communicate with a teaching assistant (TA) other than the one provided on the course website;
clearly state the course and subject matter in your email subject (for example, “CSE 216: …”); and
if there is an announcement that is sent to the entire class, do not hit reply! Send a separate email with a proper subject.
Follow announcements carefully. Emails asking for information already available in announcements or on the course site may not receive a response.
All assignments must be electronically submitted via Brightspace. Do not send any assignment via email! Submission instructions will be provided as part of each homework document. A few extremely important things to keep in mind:
Code that does not compile will receive no credit, no matter how minor the reason behind the compile error may be.
Do not send file timestamps screenshots as "evidence" of having done the assignment on time. File timestamps can be manipulated extremely easily, and the teaching staff will not consider such things for grading (and/or re-grading, grade disputes, etc.).
Make sure that you double-check what you are submitting. It is absolutely worth spending one extra minute to make sure that you are not submitting compiled binaries, for example. Always keep a time-window in mind, and do not submit in a hurry.
Make sure your submission process is complete. Otherwise, the teaching staff cannot see your files. As a result, it cannot be graded.
Late submission policy: All assignment submissions will incur a 10-point penalty per day for missing the submission deadline. This penalty will be imposed strictly, and without any further sub-division in the penalization. For example, if a homework assignment is due by 11:59 pm tonight, then a submission at 12:00 am or 12:01 am (i.e., just one or two minutes later) will be treated as delayed by one day. If you receive, say, 94/100 in that homework, your grade will thus become 84/100. A maximum of 3 late days are allowed for each assignment (with the 10-point late penalty per day).
Assignments: All assignments will be graded by our graduate teaching assistants. Once the grades are announced on Brightspace, a Google form will be available to the students. In case a student spots a grading error, a correction can be requested by using this form within 24 hours of the announcement on Brightspace. After this time window, the form will be closed, and such requests will no longer be considered.
Grade errors can only be reported once, so make sure you have thought carefully before submitting the form. The form can only be used once per homework by one person, and there is no "re-reporting"!
Reporting a grading error makes a member of the teaching staff go through the submitted assignment and its grading very carefully. It doesn't always mean that the score will increase. It can also result in a lower score!
Internal (Midterm) Exams: Results of the midterm exams will be announced on Brightspace. Students can request a regrade directly to the course instructor during any instructor office hour within a 7-day period. After that, students can come and see their exams during instructor office hours for the rest of the semester, but regrade requests will not be accepted.
Final Exam: For the final exam, there will be a special office hour designated to resolve any grade disputes. This will be announced after the final exam. Exams will not be scanned, emailed, or transferred in any other way for students not present during this office hour. This final chance for resolution is extremely time-sensitive, and the final grade will be calculated immediately after its conclusion.
The Pass/No Credit (P/NC) option is not available for this course.
This course will have three assignments, two midterm exams, and one comprehensive final exam. The grading schema is as follows:
Programming Assignments (3 assignments, 8 % each): 24 %
Midterm I and II: (18 % each): 36%
Final exam: 40 %
The final grade you receive in this class will reflect, as far as possible, the extent to which you have mastered the concepts and their applications. How much someone needs a grade, or how close they are to the next higher grade, will have no effect on the grade. As the instructor, I want everyone to do well in this course, and will make every reasonable effort to help you understand the material taught. However, the grades provided at the end of the semester are final, except for rare situations involving grade-entry errors. They will not be altered for any reason, so please do not ask me to do so. Any unethical request for grade change or a “bump” will be ignored, and may be reported to relevant authorities.
Numeric scores (out of 100) will be reported on Brightspace. Letter grades will only be available directly on SOLAR, after being finalized. Letter grades are not for discussion and/or dispute, except in cases of obvious error in data-entry. In particular, details such as the following will not be disclosed:
How the grading is done on a curve. E.g., "I have 78. Is that enough for B+?"
Where the exact cutoffs are. E.g., "what is/was the cutoff for B+?"
How far/near is the student to the next cutoff. E.g., "I got 83.5 but I got A-. How close was I to getting an A?"
Questions implied through comparative and/or accusatory remarks. E.g., "My best friend got 76.2 and I got 76, but it's unfair that they got B+ while I got B."
You may discuss the homework assignments and recitation problems in this course with anyone you like. Each submission (including written material and coding), however, must be the student's own work, and only their own work. Any evidence of written homework submissions or source code being copied, shared, or transmitted in any way between students (this includes using source code downloaded from the Internet or written by others in previous semesters or by an AI) will be regarded as evidence of academic dishonesty. Additionally, any evidence of sharing of information or using unauthorized information during an examination will also be regarded as evidence of academic dishonesty.
Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty are required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at:
If you have a physical, psychological, medical, or learning disability that may impact your course work, please contact Student Accessibility Support Center, 128 ECC Building, (631) 632-6748, or at sasc@stonybrook.edu. They will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.
Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and the Student Accessibility Support Center. For procedures and information go to the following website:
and search "Fire Safety and Evacuation and Disabilities".
Access to the discussion forum is not a mandatory component of this course. As such, disruptive behavior that compromises the safety of the learning environment, inhibits other students' ability to learn, or interrupts the ability of the teaching staff to constructively participate, will lead to the immediate removal of those responsible for such disruption.
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures.