This is the first programming course for Computer Science majors with a focus on object-oriented programming. The goal of the course is to develop skills such as program design and testing as well as the implementation of programs using a graphical IDE. All programming will be done in Java.
| Corequisite | MATH140 |
|---|---|
| Credits | 4 |
| Name | Office |
|---|---|
| Nelson Padua-Perez | AVW 1203 |
| Pedram Sadeghian | AVW 3251 |
For office hours and other contact information, visit the staff link.
| Title | Authors | ISBN | Type |
|---|---|---|---|
| Java Foundations, Third Edition | Lewis | 9780133370461 | Recommended (You don't need to buy it) |
Final grades will be computed according the following weights:
| 25% | Projects |
|---|---|
| 15% | Quizzes / Lab Work |
| 30% | Midterms (12% and 18%) |
| 30% | Final Exam |
Once we have graded any class material (e.g., exams, projects, etc.) we will post an announcement and a deadline by which you must submit any regrade request (if necessary). It is your responsibility to submit regrade requests by the specified deadline; no regrade requests will be processed afterwards.
Office hours get extremely busy the day before a project deadline. Therefore do not wait to start your projects. Regarding office hours and the TA Room:
You need to keep backups of your projects as you develop them. No extensions will be granted because you accidentally erased your project. Feel free to use the submit server as a backup tool by submitting often. You can also use tools like git, etc. Do not post code in any online system that is accessible to others (e.g., github).
Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.
It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu
The following are examples of academic integrity violations:
We will be using (Piazza) for class communication. Regarding Piazza:
Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall:
Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings) or for a Major Scheduled Grading Event, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the time frame that the student was unable to meet academic responsibilities. No diagnostic information shall be given. The Major Scheduled Grading Events for this course include midterm(s) and final exam.
It is also the student's responsibility to inform the instructor of any intended absences from exams for religious observances in advance. Notice should be provided as soon as possible, but no later than the Monday prior to the exam for both the midterm(s) and the final.
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide a letter of accommodation from the Office of Disability Support Services within the first two weeks of the semester.
All course materials are copyright UMCP, Department of Computer Science © 2015. All rights reserved. Students are permitted to use course materials for their own personal use only. Course materials may not be distributed publicly or provided to others (excepting other students in the course), in any way or format.
This schedule is tentative and subject to change. Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Slides/Column | Work |
|---|---|---|---|
| CMSC131 Schedule | |||
| Week #1 (Aug 31) |
Course Intro, Computer Systems, Software Tools, Object-Oriented Teminology, Rules for Java Identifiers, Assignment, Primitive Types, Simple Output |
Course-Intro.pdf CompOrgEclipseIntro.pdf JavaIntro.pdf JavaVariablesTypes.pdf JavaVariablesTypesCode.zip |
P1 Out (Fri) |
| Week #2 (Sep 7) |
Strings, Operators, Comparison, Input (Scanner), Conditionals, Logical Operators Block Statements, Style, Symbolic Constants |
StringCompScanner.pdf StringCompScannerCode.zip CondBlockStmtStyle.pdf CondBlockStmtStyleCode.zip |
Q1 (Wed) |
| Week #3 (Sep 14) |
Loops (while/do while), Input (JOptionPane), Loops (for), Nesting of Loops, Assignment Operators |
LoopsWhileDoWhile.pdf LoopsWhileDoWhileCode.zip ForNestedLoops.pdf ForNestedLoopsCode.zip AdditionalExamplesCode.zip |
P1 Due (Tue) P2 Out (Wed) |
| Week #4 (Sep 21) |
Precedence Rules, Short-circuiting, Static Methods, Intro to Design, Intro to Classes |
PrecAssocStaticMethods.pdf PrecAssocStaticMethodsCode.zip ClassesIntroI.pdf ClassesIntroICode.zip Design.pdf FlagMakerLecture.java |
Q2 (Mon) P2 Due (Thu) P3 Out (Thu) |
| Week #5 (Sep 28) |
Memory Organization (stack/heap), equals method, Class/Method Declaration, Parameter Passing, Static vs. Non-Static methods, Constructors |
ClassesIntroII.pdf ClassesIntroIII.pdf ClassesIntroIIICode.zip ClassesIntroIV.pdf ClassesIntroIVCode.zip |
Q3 (Mon) |
| Week #6 (Oct 5) |
Access Specifiers, Get/Set/equals/toString methods |
ClassesIntroV.pdf ClassesIntroVCode.zip ClassesIntroVI.pdf ClassesIntroVICode.zip |
P3 Due (Mon) Midterm #1 (Wed) P4 Out (Fri) |
| Week #7 (Oct 12) |
Call Stack, Memory Maps, Copy Constructor, Java Keyword (this), Visibility, Encapsulation, Round-off Errors |
MemMapsPassingValues.pdf MemMapsPassingValuesCode.zip CopyConstructorsThisRef.pdf CopyConstructorsThisRefCode.zip MathBreakContinue.pdf MathBreakContinueCode.zip |
|
| Week #8 (Oct 19) |
Switch statement, Round-off Errors, Java Packages/libraries, Exception Handling, Mutability, StringBuffer |
SwitchLibraries.pdf SwitchLibrariesCode.zip ExceptionsI.pdf ExceptionsICode.zip ExceptionsII.pdf ExceptionsIICode.zip |
Q4 (Wed) P4 Due (Thu) Early Warning Grades Due (Thu) |
| Week #9 (Oct 26) |
Arrays Intro, Eclipse Debugger, Testing |
ArraysIntro.pdf ArraysIntroCode.zip TestingDebugging.pdf TestingDebuggingCode.zip |
P5 Out (Tue) |
| Week #10 (Nov 2) |
Arrays Cont., Privacy Leaks, Copying Objects |
Arrays.pdf ArraysCode.zip RosterExample.zip CopyingObjects.pdf CopyingObjectsCode.zip ModifiedPrivacyLeakExample.zip |
Q5 (Mon) P5 Due (Thu) |
| Week #11 (Nov 9) |
Two-Dimensional Arrays |
TwoDimArraysI.pdf TwoDimArraysICode.zip TwoDimArraysII.pdf TwoDimArraysIICode.zip |
Midterm #2 (Wed) P6 Out (Wed) |
| Week #12 (Nov 16) |
Wrappers(lab), Stack(lab), Method Overloading (lab), ArrayList Interfaces, Intro Polymorphism, Inheritance, Iterators, MVC, Overriding |
ArrayListInterfaces.pdf ArrayListInterfacesCode.zip WrappersOverloading.pdf WrappersOverloadingCode.zip InheritanceIIterators.pdf InheritanceIIteratorsCode.zip InheritanceII.pdf InheritanceIICode.zip |
P6 Due (Fri) P7 Out (Thu) |
| Week #13 (Nov 23) |
Object Class, Early/Late Binding |
InheritanceIII.pdf ReviewExample.zip |
Q6 (Mon) Thanksgiving |
| Week #14 (Nov 30) |
Up/Down Casting, equals method, Inheritance vs. Composition, Uses of Interfaces, Command Line Arguments, jar files |
InheritanceIV.pdf InheritanceIVCode.zip InheritanceV.pdf InheritanceVCode.zip CmdLineArgsLoops.pdf CmdLineArgsLoopsCode.zip |
P8 Out (Mon) P7 Due (Tue) |
| Week #15 (Dec 7) |
Sorting/Algorithm Analysis, Miscellaneous, Review |
SortingAlgAnalysis.pdf ReviewI.pdf ReviewICode.zip ReviewII.pdf ReviewIICode.zip |
P8 Due (Wed) Last Day of Classes (Fri Dec 11) Final Exam (Tue Dec 15 4pm - 6pm) |
| Name | Nelson Padua-Perez |
|---|---|
| Office | AVW 1203 |
| Office Hours | Mon → 2:30 pm - 3:30 pm Thu 11 am → 12 pm |
| nelson [AT] cs [DOT] umd [DOT] edu |
| Name | Pedram Sadeghian |
|---|---|
| Office | AVW 3251 |
| Office Hours | Mon, Wed, Fri → 1 pm - 2 pm |
| pedram [AT] cs [DOT] umd [DOT] edu |
Please see Office Hours Guidelines
All TA office hours take place in AVW 1112.
| Name | Pic | |
|---|---|---|
| Alejandro Flores Velazco | alejandroflores.af [AT] gmail [DOT] com | ![]() |
| Baris Gokpinar | webbaris [AT] hotmail [DOT] com | ![]() |
| Yue Hei (Joe) Ng (Grader) | yueng [AT] cs.umd [DOT] edu | ![]() |
| Liang He (Grader) | edigahe [AT] gmail [DOT] com | ![]() |
| Manaswi Saha | manaswi [AT] cs.umd [DOT] edu | ![]() |
| Andrew Jordan | ajordan0 [AT] terpmail.umd [DOT] edu | ![]() |
| Zehua Zeng (Grader) | fiona.zehua.zeng [AT] gmail [DOT] com | ![]() |
| Ahmed Ghoneim | elgohary [AT] cs.umd [DOT] edu | ![]() |
| Brian Brubach | bbrubach [AT] cs.umd [DOT] edu | ![]() |
| Shuo Li (Grader) | li3shuo1 [AT] gmail [DOT] com | ![]() |
| Khanh Nguyen (Grader) | nguyenxuankhanhm [AT] gmail [DOT] com | ![]() |
| Huijing Gong | gong [AT] cs.umd [DOT] edu | ![]() |
| Saurabh Kumar | kumarsa [AT] cs.umd [DOT] edu | ![]() |
| Jake Sandler | jsandler18 [AT] gmail [DOT] com | ![]() |
| Anupam Guha | aguha [AT] cs.umd [DOT] edu | ![]() |
| Xiyang Dai (Grader) | xiyang.dai [AT] gmail [DOT] com | ![]() |
| Karthik Abhinav Sankaraman | kabinav [AT] cs.umd [DOT] edu | ![]() |
| Xing Niu (Grader) | xingniu [AT] cs.umd [DOT] edu | ![]() |
| Hui Li (Grader) | huili [AT] umd [DOT] edu | ![]() |
| Name | Nelson Padua-Perez |
|---|---|
| Office | AVW 1203 |
| Office Hours | Mon → 2:30 pm - 3:30 pm Thu 11 am → 12 pm |
| nelson [AT] cs [DOT] umd [DOT] edu |
| Name | Pedram Sadeghian |
|---|---|
| Office | AVW 3251 |
| Office Hours | Mon, Wed, Fri → 1 pm - 2 pm |
| pedram [AT] cs [DOT] umd [DOT] edu |
Please see Office Hours Guidelines
All TA office hours take place in AVW 1112.
| Name | Pic | |
|---|---|---|
| Alejandro Flores Velazco | alejandroflores.af [AT] gmail [DOT] com | ![]() |
| Baris Gokpinar | webbaris [AT] hotmail [DOT] com | ![]() |
| Yue Hei (Joe) Ng (Grader) | yueng [AT] cs.umd [DOT] edu | ![]() |
| Liang He (Grader) | edigahe [AT] gmail [DOT] com | ![]() |
| Manaswi Saha | manaswi [AT] cs.umd [DOT] edu | ![]() |
| Andrew Jordan | ajordan0 [AT] terpmail.umd [DOT] edu | ![]() |
| Zehua Zeng (Grader) | fiona.zehua.zeng [AT] gmail [DOT] com | ![]() |
| Ahmed Ghoneim | elgohary [AT] cs.umd [DOT] edu | ![]() |
| Brian Brubach | bbrubach [AT] cs.umd [DOT] edu | ![]() |
| Shuo Li (Grader) | li3shuo1 [AT] gmail [DOT] com | ![]() |
| Khanh Nguyen (Grader) | nguyenxuankhanhm [AT] gmail [DOT] com | ![]() |
| Huijing Gong | gong [AT] cs.umd [DOT] edu | ![]() |
| Saurabh Kumar | kumarsa [AT] cs.umd [DOT] edu | ![]() |
| Jake Sandler | jsandler18 [AT] gmail [DOT] com | ![]() |
| Anupam Guha | aguha [AT] cs.umd [DOT] edu | ![]() |
| Xiyang Dai (Grader) | xiyang.dai [AT] gmail [DOT] com | ![]() |
| Karthik Abhinav Sankaraman | kabinav [AT] cs.umd [DOT] edu | ![]() |
| Xing Niu (Grader) | xingniu [AT] cs.umd [DOT] edu | ![]() |
| Hui Li (Grader) | huili [AT] umd [DOT] edu | ![]() |
This schedule is tentative and subject to change. Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Slides/Column | Work |
|---|---|---|---|
| CMSC131 Schedule | |||
| Week #1 (Aug 31) |
Course Intro, Computer Systems, Software Tools, Object-Oriented Teminology, Rules for Java Identifiers, Assignment, Primitive Types, Simple Output |
Course-Intro.pdf CompOrgEclipseIntro.pdf JavaIntro.pdf JavaVariablesTypes.pdf JavaVariablesTypesCode.zip |
P1 Out (Fri) |
| Week #2 (Sep 7) |
Strings, Operators, Comparison, Input (Scanner), Conditionals, Logical Operators Block Statements, Style, Symbolic Constants |
StringCompScanner.pdf StringCompScannerCode.zip CondBlockStmtStyle.pdf CondBlockStmtStyleCode.zip |
Q1 (Wed) |
| Week #3 (Sep 14) |
Loops (while/do while), Input (JOptionPane), Loops (for), Nesting of Loops, Assignment Operators |
LoopsWhileDoWhile.pdf LoopsWhileDoWhileCode.zip ForNestedLoops.pdf ForNestedLoopsCode.zip AdditionalExamplesCode.zip |
P1 Due (Tue) P2 Out (Wed) |
| Week #4 (Sep 21) |
Precedence Rules, Short-circuiting, Static Methods, Intro to Design, Intro to Classes |
PrecAssocStaticMethods.pdf PrecAssocStaticMethodsCode.zip ClassesIntroI.pdf ClassesIntroICode.zip Design.pdf FlagMakerLecture.java |
Q2 (Mon) P2 Due (Thu) P3 Out (Thu) |
| Week #5 (Sep 28) |
Memory Organization (stack/heap), equals method, Class/Method Declaration, Parameter Passing, Static vs. Non-Static methods, Constructors |
ClassesIntroII.pdf ClassesIntroIII.pdf ClassesIntroIIICode.zip ClassesIntroIV.pdf ClassesIntroIVCode.zip |
Q3 (Mon) |
| Week #6 (Oct 5) |
Access Specifiers, Get/Set/equals/toString methods |
ClassesIntroV.pdf ClassesIntroVCode.zip ClassesIntroVI.pdf ClassesIntroVICode.zip |
P3 Due (Mon) Midterm #1 (Wed) P4 Out (Fri) |
| Week #7 (Oct 12) |
Call Stack, Memory Maps, Copy Constructor, Java Keyword (this), Visibility, Encapsulation, Round-off Errors |
MemMapsPassingValues.pdf MemMapsPassingValuesCode.zip CopyConstructorsThisRef.pdf CopyConstructorsThisRefCode.zip MathBreakContinue.pdf MathBreakContinueCode.zip |
|
| Week #8 (Oct 19) |
Switch statement, Round-off Errors, Java Packages/libraries, Exception Handling, Mutability, StringBuffer |
SwitchLibraries.pdf SwitchLibrariesCode.zip ExceptionsI.pdf ExceptionsICode.zip ExceptionsII.pdf ExceptionsIICode.zip |
Q4 (Wed) P4 Due (Thu) Early Warning Grades Due (Thu) |
| Week #9 (Oct 26) |
Arrays Intro, Eclipse Debugger, Testing |
ArraysIntro.pdf ArraysIntroCode.zip TestingDebugging.pdf TestingDebuggingCode.zip |
P5 Out (Tue) |
| Week #10 (Nov 2) |
Arrays Cont., Privacy Leaks, Copying Objects |
Arrays.pdf ArraysCode.zip RosterExample.zip CopyingObjects.pdf CopyingObjectsCode.zip ModifiedPrivacyLeakExample.zip |
Q5 (Mon) P5 Due (Thu) |
| Week #11 (Nov 9) |
Two-Dimensional Arrays |
TwoDimArraysI.pdf TwoDimArraysICode.zip TwoDimArraysII.pdf TwoDimArraysIICode.zip |
Midterm #2 (Wed) P6 Out (Wed) |
| Week #12 (Nov 16) |
Wrappers(lab), Stack(lab), Method Overloading (lab), ArrayList Interfaces, Intro Polymorphism, Inheritance, Iterators, MVC, Overriding |
ArrayListInterfaces.pdf ArrayListInterfacesCode.zip WrappersOverloading.pdf WrappersOverloadingCode.zip InheritanceIIterators.pdf InheritanceIIteratorsCode.zip InheritanceII.pdf InheritanceIICode.zip |
P6 Due (Fri) P7 Out (Thu) |
| Week #13 (Nov 23) |
Object Class, Early/Late Binding |
InheritanceIII.pdf ReviewExample.zip |
Q6 (Mon) Thanksgiving |
| Week #14 (Nov 30) |
Up/Down Casting, equals method, Inheritance vs. Composition, Uses of Interfaces, Command Line Arguments, jar files |
InheritanceIV.pdf InheritanceIVCode.zip InheritanceV.pdf InheritanceVCode.zip CmdLineArgsLoops.pdf CmdLineArgsLoopsCode.zip |
P8 Out (Mon) P7 Due (Tue) |
| Week #15 (Dec 7) |
Sorting/Algorithm Analysis, Miscellaneous, Review |
SortingAlgAnalysis.pdf ReviewI.pdf ReviewICode.zip ReviewII.pdf ReviewIICode.zip |
P8 Due (Wed) Last Day of Classes (Fri Dec 11) Final Exam (Tue Dec 15 4pm - 6pm) |
After any class material is graded, you have a period to address any grading concerns. Unfortunately we will not be able to address any grading concerns after the specified deadline.
| Class Material | Grading Concerns Deadline |
|---|---|
| Quiz #1 | Mon Sep 21 |
| Project #1 | Wed Sep 23 |
| Quiz #2 | Mon Oct 5 |
| Project #2 | Mon Oct 12 |
| Quiz #3 | Mon Oct 12 |
| Quiz #4 | Tue Nov 3 |
| Quiz #5 | Wed Nov 18 |
| Midterm #2 | Mon Nov 23 |
| Project #5 | Mon Nov 23 |
| Project #6 | Mon Dec 7 |
| Quiz #6 | Mon Dec 7 |
| Project #7 | Wed Dec 9 |
| Project #8 | Thu Dec 17 |
The planned dates when projects will be handed out and due is given in the course schedule. Beware that the exact dates are subject to change, but we will try to give you fair notice of any changes.
| Project | Due Date |
|---|---|
| Hello World | Tue Sep 15 |
| Money Id Program | Thu Sep 24 |
| Flags | Mon Oct 5 |
| Name Class | Thu Oct 22 |
| Photo Processing | Thu Nov 5 |
| Poker | Fri Nov 20 |
| Marquee | Tue Dec 1 |
| Media Rental Manager | Wed Dec 9 |
A few days prior to each quiz we plan to post a worksheet on this page. The dates for the quizzes are given in the course schedule. Beware that the exact dates are subject to change, but we will try to give you fair notice of any changes.
Worksheets are not turned in and they are not graded. The problems on the worksheet are for your own benefit and are designed to prepare you for the quiz. We will not be giving answers to the worksheet problems, but if you have a question you can talk to the course TA(s).
| Worksheet | Quiz Date |
|---|---|
| Worksheet #1 | Wed Sep 9 |
| Worksheet #2 | Mon Sep 21 |
| Worksheet #3 | Mon Sep 28 |
| Worksheet #4 | Wed Oct 21 |
| Worksheet #5 | Mon Nov 2 |
| Worksheet #6 | Mon Nov 23 |
This page provides information regarding course exams.
| Exam | Date |
| Midterm I | Wed Oct 7 |
|---|---|
| Midterm II | Wed Nov 11 |
| Final | Tue Dec 15 |
We will be using (Piazza) for class communication. Regarding Piazza:
This is the first programming course for Computer Science majors with a focus on object-oriented programming. The goal of the course is to develop skills such as program design and testing as well as the implementation of programs using a graphical IDE. All programming will be done in Java.
© 2015 University of Maryland College Park, MD 20742