Course grades will be computed using the following weights.
| A+ | A | A- | B+ | B | B- | C+ | C | C- | D, F |
| >97 | 93-96.99 | 90-92.99 | 87-89.99 | 83-86.99 | 80-82.99 | 77-79.99 | 73-76.99 | 65-72.99 | Below 64.99 |
There will be two in class exams and one final exam. The in class exams will be during the usual lecture time and place and you must attend the lecture for which you are registered. No makeup tests will be given. In the event of a missed in class exam, the final exam score on the corresponding content will be used to replace the exam score.
The final exam will be cumulative and will cover all material from the whole term.
You may not use calculators on any exams but you may use handwritten notes, double-sided on half a sheet of letter-sized paper (or smaller sized index card).
You must have a passing score on the final exam in order to pass the course.
Each week, homework assignments will help you work towards mastery of the course concepts and techniques.
All homework submissions must be typed and your name(s) and PID(s) must be clearly visible on the first page of the submission. Resources for mathematical typesetting language are available. Homework is turned in through Gradescope by 11pm on the day they are due. Illegible assignments or submissions with upload errors will not be graded. If working with a partner, submit only one submission per pair: one partner uploads the submission through their Gradescope account and then adds the other partner to the Gradescope submission by selecting their name in the "Add Group Members" dialog box; it's not enough to just list their names on the page. For step-by-step instructions on scanning and uploading your homework, see this handout.
Late homeworks will not be accepted. Submit early drafts well before the deadline to make sure partial work is graded.
For homework help, consult your textbook, class notes and podcast, lecture slides, instructors, TAs, and tutors. It is considered a violation of the policy on academic integrity to:
Homework solutions will be posted on Piazza after the submission deadline.
There are multiple toos to help you visualize and test finite state machines. We will support two tools in this class: JFLAP and flap.js. JFLAP was developed starting in the 1990 by a team lead by Susan Rodger (RPI, then Duke). It is now a mature tool with a lot of functionality, however some of the conventions and notation it uses differ from the course textbook for CSE 105. flap.js is a webapp under development by a group of UCSD students and is being piloted in CSE 105 for the first time this quarter. It is being customized for use in this class.
For those who already have Java Virtual Machine installed. NOTE: you should be able to install JFLAP on systems with JVM even if you don't have install/Administrator rights.
You'll need to get the JVM in order to run JFLAP. You will need install/Administrator rights to do this. To install:
Regular Expressions Do not use whitespace in your regular expressions unless a space is a valid symbol in the alphabet. JFLAP uses a + symbol instead of the U used in the textbook to indicate union.
Start and Accept States Don't forget to specify these when drawing your automata!
Multiple Transitions If you need multiple possible inputs for the same arrow in your diagram (e.g. if you can move between states on either a 0 or a 1), this is done by creating separate edges in JFLAP for each input symbol. JFLAP will combine these into one arrow on your diagram. Automata with transitions labeled with a comma (e.g. "0,1") are not equivalent, because those transitions will not be followed unless "0,1" actually appears in your input string.
Empty String In class and in the text, we use ε (epsilon) to denote the empty string. The instructions above help you change the JFLAP default λ (lambda) to match our conventions. If you need a state transition (or a stack symbol for PDA's) for ε, do not enter any characters into the text box for that transition and ε will appear. Entering a space does not work; that transition will be followed only if the input string has a space on it. Similarly, entering E or "epsilon" will not work because JFLAP will try to match those exact symbols in your input string for the transition.
Push Down Automata Each transition has three labels: an input symbol, a stack symbol to pop, and a stack symbol to push. JFLAP uses the semicolon (;) instead of a right arrow to separate the stack symbols. Any of the three labels can be the empty string. Settings: Your PDAs should be "Single Character Input" (this option appears when you first create an automaton), and they should accept by final state, not by empty stack.
Context Free Grammars If you have a production rule of the form "S -> A | B", enter it as two rules "S -> A" and "S -> B".
All submitted homework for this class must be typed. You can use a word processing editor if you like (Microsoft Word, Open Office, Notepad, Vim, Google Docs, etc.) but you might find it useful to take this opportunity to learn LaTeX. LaTeX is a markup language used widely in computer science and mathematics. The homework assignments are typed using LaTeX and you can use the source files as templates for typesetting your solutions.
If you have never used LaTeX, we recommend cloud resources (e.g. Overleaf) that don't require you to download and install LaTeX on your local machine.
Alternatively, you can install a version of LaTeX on your computer e.g. TeXworks.
An open source LaTeX reference is here, and you can Google for many templates and examples to get you started.
We highly recommend actively engaging with the class material consistently throughout the quarter. To facilitate this, you will earn credit for participating in class, attending discussion, and completing weekly review quizzes. You can earn a maximum of 4 participation points each week. If you earn 30 participation points during the quarter, you will get all 5% participation credit available.
| >= 30 points | 5% |
| 27-29 points | 4% |
| 24-26 points | 3% |
| 22-24 points | 2% |
| 20-22 points | 1% |
| <20 points | 0% |
Each weekly review quiz will be worth at most 3 points and will be counted for credit if it is submitted before 11pm on Sunday night. You can submit the quiz as many times as you like before the deadline. The last score before the deadline will be counted for credit.
Lecture attendance (each lecture = 1 points) and discussion attendance (1 point) also earn credit. You can attend any lecture or discussion section for credit, but you will earn at most one credit for each day. In lectures, attendance will be recorded by Clicker participation. Clicker questions will be graded for participation only and not correctness of the response. Full credit for clicker points for a given day will be awarded for clicking in at least 80% of the time that day. Forgetting your clicker counts as missing a class, so please remember to bring it; register your clicker here. Sign in on the class roster when you enter the discussion section room to record your attendance.
Do not attempt to falsify iClicker or discussion participation or review quiz submissions. This would be considered a violation of academic integrity.
You will complete and submit review quizzes online. You can submit as many times as you like. The last submission before 11pm on Sunday will count towards your participation score.The review quiz must be completed independently and individually. You may refer to your textbook and class notes and slides but not other references. You may not share information about the review quiz with others, take the review quiz in someone else's name, or ask anyone for prior knowledge about the review quiz. But, you can try out the answers as many times as you like and you will get immediate feedback on correct and incorrect responses.
We want you to do well in the class and also to get excited about the material. Outside the class and discussion time, we encourage you to attend office hours to ask questions and talk about the class.
Drop-in group office hours: Each of the instructors, the TAs, and the tutors will hold office hours each week where you can drop by and ask questions about the homework, key concepts, or the class in general. See the Google calendar on the main page for times and locations of these office hours.
One-on-one tutoring sessions: TAs and tutors will be available for one-on-one sessions to catch up or dig deeper on tough concepts. These half-hour sessions must be booked in advance (booking procedure TBA) and cannot focus on the current HW assignment.
Students requesting accommodations for this course due to a disability must provide a current Authorization for Accommodation (AFA) letter issued by the Office for Students with Disabilities (OSD) which is located in University Center 202 behind Center Hall. Students are required to present their AFA letters to Faculty (please make arrangements to contact me privately) and to the OSD Liaison in the department in advance (by the end of week 2, if possible) so that accommodations may be arranged. For more information, see here.
The Jacobs School of Engineering code of Academic Integrity is here. Academic integrity violations will be taken seriously and reported to the campus-wide Academic Integrity Office. Ignorance of the rules will not excuse you from any violations. Key facts about academic integrity related to CSE 105:
This class is participating in research to understand an array of specific classroom and learning experience that students have in response to the pedagogical and curricular decisions instructors make and to address the following research questions:
For details on this research and to understand the consent process, please see this document. In particular, if you consent to participate in this study, no action is needed. If you DO NOT consent to participate in this study, or you choose to opt-out at any time during the quarter, please submit this form online. Your instructor will not have access to the list of students who opted out until after grades are posted. Note that you must separately opt-out of the study for each course involved in this study.