| Lecture | MWF: 11:00 - 11:50 AM (ENGR 304 / Online) |
| Laboratory | M: 3:00 - 4:50 PM (ENGR 0312) |
| Lecturer |
Joseph Picone, Professor Office: ENGR 718 Office Hours: (MWF) 08:00 AM - 10:00 AM, other times by appointment Phone: 215-204-4841 (desk); 708-848-2846 (cell - preferred) Email: joseph.picone@temple.edu Zoom: joseph.picone@temple.edu or joseph.picone@gmail.com |
| Teaching Assistant(s) |
Anway Bose, PhD Student Office: ENGR 604A Office Hours: (T) 3:00 PM - 4:00 PM and (W) 11:00 AM - 1:00 PM Phone: 267-902-8745 (Zoom, email or text preferred in that order) Email: anyway.bose@temple.edu |
| Peer Mentor(s) |
Ellie Lutz, BS EE Student Office: ENGR 702 Office Hours: (M) 3:30 PM - 4:30 PM, (TR) 1:30 PM - 2:30 PM Phone: 484-681-0820 (Zoom, text or email preferred in that order) Email: elaina.lutz@temple.edu Damien Ortiz, BS EE Student Office: ENGR 702 Office Hours: (M) 3:00 PM - 5:00 PM Phone: 484-769-4322 (Zoom, email or text preferrred in that order) Email: damien.ortiz@temple.edu |
|
Help:
tu_ece1111_help@listserv.temple.edu
Communication: tu_ece1111@listserv.temple.edu |
|
| Website | http://www.isip.piconepress.com/courses/temple/ece_1111 |
| Textbook | In recent years, vibe coding has become the dominant way students learn to program. We will embrace tools such as Claude.Ai, ChatGPT, and Gemini. We expect you to use these tools not just to get answers quickly, but to explore those solutions to learn the details of how to program. A guiding principle in this course is "Don't submit code you don't understand." |
|
Reference Textbooks |
If you want an introduction into computer science and the basic
concepts it encompasses, this is a good place to start:
A more contemporary book that provides a nice overview of many relevant topics in computer science that electrical and computer engineers should be familiar with as programmers:
R. Sedgewick and K. Wayne
This book introduces you to the fundamentals of the Linux operating
system:
Computer Science - An Interdisciplinary Approach Addison-Wesley Professional; First Edition (June 25, 2016) 1168 pages ISBN: 978-0134076423 URL: Computer Science - An Interdisciplinary Approach
The O'Reilly Book Series is well known for its excellent presentations on most computer science and software topics. |
| Other Resources |
Internet-based resources play a major role in this course. We will
make extensive use of the Linux operating system, but will only have
time to scratch the surface on this topic. An excellent in-depth
training course can be found here:
Free Linux Online Training:
a wide range of Linux tutorials are available.
LearnPython.org: many excellent interactive tutorials. Learning how to use the Internet to problem solve is another very important skill you will learn in this course. We often describe this as "learning how to learn." An amazing resource that contains an answer to just about any computer question you can imagine is:
Stack Overflow:
where you can find answers to almost any programming question.
But you have to learn enough about terminology and computing to
know exactly what to search for. After a few weeks in the course,
such searches will become second nature.
Programming languages change so fast that today everyone learns using Internet resources. Nevertheless, there are times when you want to read a textbook that presents an organized and thoughtful view of a programming language. There are many open source books available to learn C: and C++: However, at some point, if you want to be respected as a C/C++ programmer, you need to have read this book:
B.W. Kernighan and D.M. Ritchie
It is considered one of the most influential programming books
ever written and is the definitive textbook on C
programming. It is especially strong on data types, pointers,
and bit-level programming.
The C Programming Language Prentice-Hall; Second Edition April 1, 1988, 272 pages ISBN: 978-0131103627 URL: The C Programming Language The C++ programming language has been evolving quite a bit recently. It is dangerous to invest in a textbook since they tend to lag changes in the language. Online resources are much better. However, this book is another classic, and presents an integrated view of C and C++. It is an excellent introduction to the C programming language as well as providing a very readable and pragmatic discussion of C++:
S.B. Lippman and J. Lajoie
I used the first edition of this book to learn C and C++ and
found it invaluable. I actually felt I learned C much better
after understanding the C++ programming language.
The C++ Primer Addison-Wesley Professional; Fifth Edition (August 16, 2012) 976 pages ISBN: 978-00321714114 URL: The C++ Primer (Fifth Edition) |
| Prerequisites | Minimum grade of C- in (MATH 1042 (may be taken concurrently), MATH 1942 (may be taken concurrently), 'Y' in MATW, or 'Y' in METW), (ENGR 1102 or 'Y' in ENGW), (PHYS 1062 (may be taken concurrently) or PHYS 1962 (may be taken concurrently)), ENGR 2011 (may be taken concurrently), ENGR 2013 (may be taken concurrently), and (ENGR 1001 (may be taken concurrently) or HNRS 1901 (may be taken concurrently)) |
| |
|
| Exam No. 1 | 5% |
| Exam No. 2 | 5% |
| Exam No. 3 | 5% |
| Final Exam | 10% |
| Homework Assignments | 25% |
| Quizzes | 25% |
| Laboratory (Labs 1-13) | 15% |
| Laboratory (Final) | 10% |
| TOTAL: | 100% |
| |
|
|
|
| |
|
Linux: Virtualization, Command Line Basics, and Shells |
|
| |
|
Linux: Command Line Programming |
|
| |
|
Linux: Scripts vs. Programs |
|
| |
|
Linux: The Bash Programming Language |
|
| |
|
Python: Scripts and Programs |
|
| |
|
Emacs: Advanced Text Editing |
|
| |
|
Linux: Clusters, Job Submission, Job Monitoring |
|
| |
|
Linux: Introduction to VSCode |
|
| |
|
C/C++: Compiling and Debugging Code in Linux |
|
| |
|
C: Basic Syntax |
|
| |
|
Exams: Exam No. 1 - Review |
|
| |
|
C/Python: Atomic Types |
|
| |
|
Exams: Exam No. 1 - Basic Linux Programming (Lectures 01-11) |
|
| |
|
C: Built-In Operators and Operator Precedence |
|
| |
|
C: Arrays and Strings |
|
| |
|
C: Function Calls and Scope |
|
| |
|
C: Pointers Revisited |
|
| |
|
C: Bitwise Operators |
|
| |
|
C: Function Pointers, Macros and Recursion |
|
| |
|
C: ASCII (Formatted) I/O |
|
| |
|
  C: Binary (Unformatted) I/O |
|
| |
|
C: Control Flow |
|
| |
|
C: Structures |
|
| |
|
Exams: Exam No. 2 - Review |
|
| |
|
C: Math Functions and Libraries |
|
| |
|
Exams: Exam No. 2 - C Programming (Lectures 12-24) |
|
| |
|
C++/Python: Anatomy of a Class |
|
| |
|
C++/Python: Constructors, Destructors, Member Functions and Memory Management |
|
| |
|
C++/Python: Type Declarations |
|
| |
|
C++/Python: Templates and Inheritance |
|
| |
|
C++/Python: Advanced Syntax |
|
| |
|
C/C++/Python: Linked Lists |
|
| |
|
C++/Python: Exception Handling and Multithreading |
|
| |
|
C/C++/Python: Data Structures and Functional Programming |
|
| |
|
C++/Python: Unit Testing |
|
| |
|
Python: Object-Oriented Program Design (Part I) |
|
| |
|
Review: Exam No. 3 |
|
| |
|
C++/Python: Object-Oriented Program Design (Part II) |
|
| |
|
Exam No. 3: C++ Programming (Lectures 25-37) |
|
| |
|
Python: GUI Programming and Application Development |
|
| |
|
Rust: Emerging Languages |
|
| |
|
Professional Development: Phuykong Meng, Software Engineer, Amazon Retail Store (BS CS, Temple: Spring 2025) |
|
| |
|
Final Exam (10:30 AM - 12:30 PM): Python Programming |
|
| |
|
|
| |
|
Cloud Computing |
| |
|
Scripting in Linux |
| |
|
Python Programs |
| |
|
Formatted I/O and Make Files |
| |
|
Basic Math Operations and Numerical Precision |
| |
|
Array and String Manipulations |
| |
|
Bitwise Operators, Masking and Character String Conversions |
| |
|
Formatted and Binary I/O |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
|
| |
|
Infrastructure |
| |
|
Linux Command Line Programming |
| |
|
Basic Shell Programming and File Manipulations |
| |
|
Introduction to Tinkercad |
| |
|
Streaming and Plotting Data in Tinkercad |
| |
|
Random Number Generation |
| |
|
Mixing Data Streams in C |
| |
|
Data Communications in C |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |
| |
|
TBD |